Custom Domains
Add and verify custom sending domains with DKIM, SPF, and DMARC
Custom domains let you send email from your own domain (e.g. [email protected]) with proper DKIM signing for improved deliverability. Each domain must pass DNS verification before it can be used.
Authentication
All domain endpoints require an API key with the domains scope. Base URL: https://api.misar.io/mail.
Plan Limits
| Plan | Custom Domains |
|---|---|
| Free | 0 |
| Pro | 3 |
| Max | 10 |
| Enterprise | Unlimited |
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v1/domains | List custom domains |
POST | /api/v1/domains | Add a domain |
GET | /api/v1/domains/:id | Get domain status and DNS records |
POST | /api/v1/domains/:id/verify | Trigger DNS verification |
DELETE | /api/v1/domains/:id | Remove a domain |
List domains
/mail/v1/domainsList all custom domains for the authenticated account.
Response fields
successbooleantrue when the request succeeded.
domainsArray<Domain>The custom domains. Each includes id, domain, status, dkim_status, spf_status, dmarc_status, and created_at.
curl https://api.misar.io/mail/v1/domains \
-H "Authorization: Bearer msk_YOUR_API_KEY"{
"success": true,
"domains": [
{
"id": "dom_abc123",
"domain": "yourdomain.com",
"status": "verified",
"dkim_status": "valid",
"spf_status": "valid",
"dmarc_status":"valid",
"created_at": "2026-02-10T08:00:00Z"
}
]
}Add a domain
/mail/v1/domainsAdd a new custom domain. Returns the DNS records to configure.
Request body
domainstringbodyrequiredRoot domain or subdomain (e.g. mail.yourdomain.com).
Response fields
successbooleantrue when the domain was added.
domainobjectThe created domain, including id, domain, status, and a dns_records object with dkim, spf, dmarc, and mx entries to publish.
curl -X POST https://api.misar.io/mail/v1/domains \
-H "Authorization: Bearer msk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "yourdomain.com" }'{
"success": true,
"domain": {
"id": "dom_abc123",
"domain": "yourdomain.com",
"status": "pending",
"dns_records": {
"dkim": {
"type": "TXT",
"host": "mm._domainkey.yourdomain.com",
"value": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb..."
},
"spf": {
"type": "TXT",
"host": "yourdomain.com",
"value": "v=spf1 include:spf.misar.io ~all"
},
"dmarc": {
"type": "TXT",
"host": "_dmarc.yourdomain.com",
"value": "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
},
"mx": {
"type": "MX",
"host": "yourdomain.com",
"value": "mail.misar.io",
"priority": 10
}
}
}
}DNS changes can take up to 48 hours to propagate. Call POST /mail/v1/domains/:id/verify once records are published to trigger an immediate check.
Get a domain
/mail/v1/domains/:idGet the current status and DNS record details for a domain.
Path parameters
idstringpathrequiredID of the domain to retrieve.
curl https://api.misar.io/mail/v1/domains/dom_abc123 \
-H "Authorization: Bearer msk_YOUR_API_KEY"Domain status values
| Status | Meaning |
|---|---|
pending | Added but DNS not yet verified |
verified | All DNS records valid — domain ready to send |
failed | One or more DNS records missing or invalid |
Verify a domain
/mail/v1/domains/:id/verifyTrigger an immediate DNS verification check. Use this after publishing DNS records to avoid waiting for the automatic daily check.
Path parameters
idstringpathrequiredID of the domain to verify.
Response fields
successbooleantrue when the check completed.
domainobjectThe domain with updated status, dkim_status, spf_status, and dmarc_status.
curl -X POST https://api.misar.io/mail/v1/domains/dom_abc123/verify \
-H "Authorization: Bearer msk_YOUR_API_KEY"{
"success": true,
"domain": {
"id": "dom_abc123",
"domain": "yourdomain.com",
"status": "verified",
"dkim_status": "valid",
"spf_status": "valid",
"dmarc_status": "valid"
}
}Remove a domain
/mail/v1/domains/:idRemove a custom domain. Existing campaigns that reference this domain will fall back to the default MisarMail sending domain.
Path parameters
idstringpathrequiredID of the domain to remove.
Response fields
successbooleantrue when the domain was removed.
curl -X DELETE https://api.misar.io/mail/v1/domains/dom_abc123 \
-H "Authorization: Bearer msk_YOUR_API_KEY"{ "success": true }Required DNS Records
| Record | Type | Purpose |
|---|---|---|
mm._domainkey.yourdomain.com | TXT | DKIM signing key |
yourdomain.com | TXT | SPF — authorizes MisarMail IPs |
_dmarc.yourdomain.com | TXT | DMARC policy |
yourdomain.com | MX | Routes replies to MisarMail inbox |
If you already have an SPF record, add include:spf.misar.io to it rather than replacing it. Multiple SPF records on one host will cause failures.