Docs/Guides

Order new email accounts

Order new domains and pre-warmed Google email accounts through the API, and Emailchaser sets them up and connects them for you. It is the same done-for-you order as in the app, in four calls.

An order charges your card. Domains and the first month of the email accounts are charged to the card on file when you order, and the accounts join your monthly bill. If the order can't be set up, it is refunded automatically. Use a Read & write key.

1. Add your billing details once

Domain registration needs a contact, so set the workspace's billing profile before the first order:

Shell
curl -X PUT "https://api.emailchaser.com/r/space/billing-profile" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "company": "Acme",
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLineOne": "100 Main Street",
  "city": "Austin",
  "state": "TX",
  "postalCode": "78701",
  "country": "US",
  "phoneCc": "1",
  "phone": "4155550100"
}'

country is a two-letter code. Without a billing profile, the order fails with missing billing details.

2. Find available domains

Shell
curl "https://api.emailchaser.com/r/dfy/domains/search?query=acme&tlds=com,org&limit=10" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY"

The answer lists available .com and .org domains with their price. To check names you already have in mind, call GET /dfy/domains/check?domain=acme-outreach.com, or POST /dfy/domains/check with up to 100 domains at once. Checking is free and works with a read-only key.

3. Place the order with an Idempotency-Key

List the domains, and the email accounts to create on them. Every domain in the order needs at least one email account, and every email account must sit on a domain in the order or one you already own through Emailchaser.

Shell
curl -X POST "https://api.emailchaser.com/r/dfy/orders" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f1c2d4e-8a3b-4c5d-9e7f-0a1b2c3d4e5f" \
  -d '{
  "domains": [{ "domainName": "acme-outreach.com" }],
  "mailboxes": [
    { "username": "jane", "firstName": "Jane", "lastName": "Doe", "domainName": "acme-outreach.com" },
    { "username": "j.doe", "firstName": "Jane", "lastName": "Doe", "domainName": "acme-outreach.com" }
  ],
  "forwardingDomain": "acme.com"
}'
  • username is the part before the @. It must be lowercase, valid for Google and unique in the order.
  • forwardingDomain is optional: the new domains redirect their visitors to it, usually your main website.
  • profilePicture on an email account is optional.
  • One order holds up to 100 domains and 500 email accounts, within your plan's email account limit.

The answer is 202 with the order and its status. Domains are registered for a year; email accounts are billed monthly.

Always send an Idempotency-Key, such as a new UUID per order. The call can take up to two minutes, so set your client timeout to at least 130 seconds. If it times out or answers 502, the order may still be going through: send the same request with the same key, and you get the first order back instead of a second charge. The same key with a different body answers 409, and so does a copy of an order that is still in progress, with its existingOrderId.

4. Wait for the order to finish

Poll GET /dfy/orders/{id}, or register a DfyOrderCompleted webhook and get told. The status moves through created, pending_approval and processing to one of:

StatusWhat it means
completedEvery domain and email account is set up and connected.
partially_completedPart of the order is set up. GET /sender-emails shows the email accounts that arrived.
failedNothing could be set up, and the charge was refunded. failureReason says why.
canceledThe order was canceled.

Once an order completes, its email accounts appear in GET /sender-emails. Attach them to a campaign with POST /campaigns/{id}/sender-emails.

Questions about the API? Email support@emailchaser.com.