Add a domain
POST/v1/domains
Registers a sending domain and returns the DNS records to add at your DNS provider. The three DKIM CNAME records are required; MAIL FROM and DMARC records are recommended. Each record carries a dns field showing whether we can see it in public DNS yet.
Required scope: domains:manage
Request body
| Field | Type |
|---|---|
domainoptional | string |
nameoptional | string |
regionoptional | string |
open_trackingoptional | boolean |
click_trackingoptional | boolean |
custom_return_pathoptional | string |
tlsoptional | "opportunistic" | "enforced" |
Unknown fields are rejected, so a typo never silently does nothing.
Example
curl -X POST 'https://api.sendsend.email/v1/domains' \
-H "Authorization: Bearer $SENDSEND_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"domain": "mail.acme.com"
}'Response 201
{
"id": "dom_DCdfxpkhLqMhmBdY",
"object": "domain",
"domain": "mail.acme.com",
"status": "pending",
"failure_reason": null,
"verified_at": null,
"last_checked_at": null,
"created_at": "2026-10-06T15:00:00.000Z",
"records": [
{
"purpose": "dkim",
"required": true,
"type": "CNAME",
"name": "abc123._domainkey.mail.acme.com",
"value": "abc123.dkim.amazonses.com",
"dns": "unchecked"
}
],
"dns_summary": {
"required_total": 3,
"required_found": 0,
"checked": false
}
}Errors
| Status | Code | When |
|---|---|---|
| 400 | validation_error | The request body or parameters are invalid. The message says which field. |
| 409 | domain_already_registered | Another project already registered this domain. |
| 403 | plan_limit_reached | Your plan’s domain limit is reached. |
| 401 | unauthorized | The API key is missing, invalid or revoked. |
| 403 | forbidden | The key does not have the scope this endpoint needs. |
Every error has the same shape. See Errors.