1
Enrol the domain
POST /v1/domains returns the records to publish.2
Publish the DNS, then poll
GET /v1/domains/{id} reports outstanding — how many records are still
missing. Zero means it is done.3
Create addresses
POST /v1/mailboxes works once status is verified.Enrol a domain
dns array is the point of this endpoint. Enrolling is the easy half;
publishing DNS is the work, and an answer that said only "pending" would leave
you with nothing to do next. Write those records to your DNS provider verbatim.
satisfied: false with last_checked_at: null means “not looked at yet”,
not “missing”. They are different facts and only the second is a problem.DKIM records appear once Amazon SES has issued them, which is why a freshly
enrolled domain lists four records and a checked one usually lists six.Watch it verify
outstanding fall to zero. DNS
propagation is minutes to hours depending on your provider and TTL; there is no
webhook for it yet, so poll on a sensible interval rather than a tight loop.
Two verification timestamps are reported separately, because they fail for
different reasons and are fixed by different records:
A domain can be owned and still unable to receive. Collapsing the two into one
“verified” flag would send you looking at the wrong record.
The ownership token is returned on
GET /v1/domains/{id} for as long as the
challenge is live — so losing the POST response is recoverable, rather than
forcing you to delete the domain and enrol it again.
Remove a domain
Create an address
local_part is lowercase letters, digits, dot, hyphen and underscore, starting
and ending alphanumeric, no consecutive dots, at most 64 characters. No plus
— plus-addressing is a suffix on an existing mailbox, not a name to own.
The domain must be verified and not suspended. Reserved addresses — postmaster,
abuse and the other RFC-mandated names — are refused, and the first mailbox on
a domain automatically gets postmaster and abuse aliases pointing at it.
Plan limits are the real ceiling
Every plan caps mailboxes and domains, and the database enforces it — so a key cannot create a sixth mailbox on a five-mailbox plan however it asks:GET /v1/usage before a batch rather
than discovering the ceiling halfway through one.
Not available yet
Suspending or deleting a mailbox. Both take an address out of service with mail still in it, and the recovery path differs depending on why. They stay in the dashboard. Changing a domain. Nothing about an enrolled domain is editable: the name is its identity, and the status is decided by what is in DNS rather than by anybody asserting it. Remove and re-enrol. Triggering a DNS check. Checks run on a schedule. There is no way to demand one, because a caller in a loop would spend the rate limit re-asking a question whose answer changes with DNS propagation, not with asking.Errors
See Errors for the full response shape.