Domains
Add, verify, configure and remove sending domains.
A domain gets three DNS records: DKIM on iresendly._domainkey, and an MX and an SPF record on the send subdomain. Domains your account already verified for Marketing or Business Email are imported as verified. See Domains for the full setup.
Add a domain
/domainsAdds a domain or subdomain and returns its DNS records. URLs and email addresses are reduced to the host. Returns 409 conflict if you've already added it, 409 domain_in_use if another account holds it, and 403 plan_limit_reached at your plan's limit (1, 10 or 1,000).
namestringrequiredThe domain, e.g.
acme.comormail.acme.com.
curl -X POST 'https://api.iresendly.com/domains' \
-H 'Authorization: Bearer irs_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d '{
"name": "acme.com"
}'{
"object": "domain",
"id": "d91cd9bd-1176-453e-8fc1-35364d380206",
"name": "acme.com",
"status": "pending",
"origin": "created",
"region": "eu-north-1",
"open_tracking": false,
"click_tracking": false,
"created_at": "2026-11-07T10:00:00.000Z",
"verified_at": null,
"records": [
{
"record": "DKIM",
"name": "iresendly._domainkey",
"type": "TXT",
"ttl": "Auto",
"status": "pending",
"value": "p=MIGfMA0GCSqGSIb3DQEB…"
},
{
"record": "SPF",
"name": "send",
"type": "MX",
"ttl": "Auto",
"status": "pending",
"value": "feedback-smtp.eu-north-1.amazonses.com",
"priority": 10
},
{
"record": "SPF",
"name": "send",
"type": "TXT",
"ttl": "Auto",
"status": "pending",
"value": "v=spf1 include:amazonses.com ~all"
}
]
}Retrieve a domain
/domains/{id}The domain with its records. status is pending, verified or failed.
idstringrequiredThe domain id.
curl -X GET 'https://api.iresendly.com/domains/{id}' \
-H 'Authorization: Bearer irs_xxxxxxxxx'{
"object": "domain",
"id": "d91cd9bd-1176-453e-8fc1-35364d380206",
"name": "acme.com",
"status": "verified",
"origin": "created",
"records": [
"…"
]
}Verify a domain
/domains/{id}/verifyChecks the DNS records now. Pending domains are also re-checked automatically.
idstringrequiredThe domain id.
curl -X POST 'https://api.iresendly.com/domains/{id}/verify' \
-H 'Authorization: Bearer irs_xxxxxxxxx'{
"object": "domain",
"id": "d91cd9bd-1176-453e-8fc1-35364d380206",
"status": "pending"
}Update tracking
/domains/{id}Turns open and click tracking on or off for the domain. Both are off by default.
idstringrequiredThe domain id.
open_trackingbooleanAdd an invisible open pixel.
click_trackingbooleanRewrite links to count clicks.
curl -X PATCH 'https://api.iresendly.com/domains/{id}' \
-H 'Authorization: Bearer irs_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d '{
"open_tracking": true,
"click_tracking": true
}'{
"object": "domain",
"id": "d91cd9bd-1176-453e-8fc1-35364d380206"
}curl -X GET 'https://api.iresendly.com/domains' \
-H 'Authorization: Bearer irs_xxxxxxxxx'{
"object": "list",
"has_more": false,
"data": [
{
"object": "domain",
"id": "d91cd9bd-1176-453e-8fc1-35364d380206",
"name": "acme.com",
"status": "verified"
}
]
}Remove a domain
/domains/{id}Removes the domain from the Developer API and from any keys restricted to it. If Marketing or Business Email still use it, it stays verified there.
idstringrequiredThe domain id.
curl -X DELETE 'https://api.iresendly.com/domains/{id}' \
-H 'Authorization: Bearer irs_xxxxxxxxx'{
"object": "domain",
"id": "d91cd9bd-1176-453e-8fc1-35364d380206",
"deleted": true
}