Domains API

Register custom domains, configure DNS, and verify ownership.

GET /v1/domains

GET/v1/domains

List all registered domains. Requires full-access key.

response — 200 OK
{
  "domains": [
    {
      "id": "dom_abc123",
      "domain": "example.com",
      "status": "VERIFIED",
      "mxVerified": true,
      "spfVerified": true,
      "dkimVerified": true,
      "dmarcVerified": true,
      "createdAt": "2026-03-11T00:00:00.000Z"
    }
  ]
}

POST /v1/domains

POST/v1/domains

Register a new custom domain. Requires full-access key and paid plan. Returns the DNS records you need to configure.

Request body

NameTypeDescription
domain*stringDomain name (e.g. example.com)
response — 201 Created
{
  "domain": {
    "id": "dom_abc123",
    "domain": "example.com",
    "status": "PENDING_VERIFICATION"
  },
  "dnsRecords": [
    { "type": "MX", "name": "example.com", "value": "10 mx.robotomail.com" },
    { "type": "TXT", "name": "example.com", "value": "v=spf1 include:amazonses.com ~all" },
    { "type": "CNAME", "name": "abc._domainkey.example.com", "value": "abc.dkim.amazonses.com" },
    { "type": "CNAME", "name": "def._domainkey.example.com", "value": "def.dkim.amazonses.com" },
    { "type": "CNAME", "name": "ghi._domainkey.example.com", "value": "ghi.dkim.amazonses.com" },
    { "type": "TXT", "name": "_dmarc.example.com", "value": "v=DMARC1; p=quarantine; adkim=s; aspf=s" }
  ]
}

Errors

  • 400 — Invalid domain format
  • 403 — Email not verified, or free plan (custom domains require paid)
  • 409 — Domain already registered

GET /v1/domains/:id

GET/v1/domains/:id

Get domain details including current verification status and DNS records. Requires full-access key.

POST /v1/domains/:id/verify

POST/v1/domains/:id/verify

Trigger a DNS verification check. A background job also runs every 5 minutes, but you can call this to verify immediately after configuring DNS.

response — 200 OK
{
  "domain": { "id": "dom_abc123", "status": "VERIFIED" },
  "verification": {
    "mx": true,
    "spf": true,
    "dkim": true,
    "dmarc": true,
    "allVerified": true
  }
}

See Custom domain guide for a step-by-step walkthrough.

DELETE /v1/domains/:id

DELETE/v1/domains/:id

Remove a domain. Mailboxes on this domain will stop receiving email. Requires full-access key.

response — 200 OK
{ "deleted": true }