Domains

You can only send email froma domain you've added and verified. Add a domain, publish three DNS records, then verify — usually a five-minute round trip.

Auto-generated DKIM keys

A 2048-bit RSA keypair is generated per domain the moment you add it — no manual key management.

DNS provider detection

We detect your domain's nameservers and offer one-click record push if you're on Cloudflare.

Enforced at send time

POST /v1/email/send rejects with DOMAIN_NOT_VERIFIED if 'from' isn't on a verified domain you own.

POST
/v1/email/domains
Bash
curl -X POST 'https://api.sendexa.co/v1/email/domains' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \
-d '{ "domain": "yourdomain.com" }'

Publish all three TXT records at your DNS provider, then call verify below. If supportsAutoConfigure is true (Cloudflare-hosted domains), you can push the records automatically instead — see auto-configure further down.

POST
/v1/email/domains/:domainId/verify

Checks the SPF TXT record over live DNS and flips the domain to VERIFIED if it's found and includes spf.sendexa.co.

JSON
{
"success": true,
"message": "Domain verified successfully",
"data": {
"id": "dom_abc123",
"domain": "yourdomain.com",
"status": "VERIFIED",
"verifiedAt": "2026-08-04T00:00:00.000Z",
"checks": { "spf": true, "soft": false }
}
}
POST
/v1/email/domains/:domainId/auto-configure
Cloudflare only

If your domain's nameservers are on Cloudflare, this pushes SPF, DKIM, DMARC, and tracking CNAME records directly via the Cloudflare API — no copy-pasting DNS records by hand.

Bash
curl -X POST 'https://api.sendexa.co/v1/email/domains/dom_abc123/auto-configure' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \
-d '{ "apiToken": "YOUR_CLOUDFLARE_API_TOKEN" }' # optional — falls back to a platform-level token if configured

Your Cloudflare token needs Zone:DNS:Edit and Zone:Read. If your domain is hosted elsewhere (Route 53, Google Cloud DNS, GoDaddy, etc.), supportsAutoConfigure will be falseand you'll need to add the three records manually.

GET
/v1/email/domains

List all domains on your account, with status.

DELETE
/v1/email/domains/:domainId

Deactivate a domain — sends using it will start failing DOMAIN_NOT_VERIFIED immediately.