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
| Name | Type | Description |
|---|---|---|
| domain* | string | Domain 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 format403— 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 }