Skip to main content
The application’s sending domains can be managed from your code as well as from Email → Setup. Every call needs a live key of the application; the writes need the explicit email:manage (Email Send and manage on the key), which a full-access key does not hold. A test key answers 403 live_key_required, a partner key 403 application_key_required. Each write takes an Idempotency-Key, and a change is recorded on the account’s trail as the key. The domain.created, domain.verified, domain.failed and domain.removed webhooks follow each change.

The domain object

state is pending, verified or failed; a removed domain answers 404 not_found. records are the DNS records to add at your DNS host, each with what the last check saw. authentication says how the domain’s mail authenticates, as the console shows it. tracking is there while tracking is on. receiving is the receiving address on a subdomain of the domain, { "address_id", "domain", "state" }, or null when it has none; it is read here and added or changed in the console or the Account API.

Errors

Beyond the shared checks: 422 domain_invalid, domain_public or domain_tawked on an add; 409 domain_taken (another application holds it, verified) or domain_limit; 409 domain_not_verified on a change before the domain is verified; 409 tracking_unavailable, 422 tracking_subdomain_invalid and 409 tracking_subdomain_taken on tracking; 429 rate_limited past ten adds or six checks a minute for an application; 503 email_unavailable when the sending service cannot be reached. Errors has each one.
Last modified on October 20, 2026