Misar Docs
MisarMailMisar.BlogMisarReachMisarPostMisar.DevMisar PlatformMisar IdentityMisar Posts API
Api Reference

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

PlanCustom Domains
Free0
Pro3
Max10
EnterpriseUnlimited

Endpoints

MethodPathDescription
GET/api/v1/domainsList custom domains
POST/api/v1/domainsAdd a domain
GET/api/v1/domains/:idGet domain status and DNS records
POST/api/v1/domains/:id/verifyTrigger DNS verification
DELETE/api/v1/domains/:idRemove a domain

List domains

GET/mail/v1/domains

List all custom domains for the authenticated account.

Response fields

successboolean

true 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

POST/mail/v1/domains

Add a new custom domain. Returns the DNS records to configure.

Request body

domainstringbodyrequired

Root domain or subdomain (e.g. mail.yourdomain.com).

Response fields

successboolean

true when the domain was added.

domainobject

The 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

GET/mail/v1/domains/:id

Get the current status and DNS record details for a domain.

Path parameters

idstringpathrequired

ID 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

StatusMeaning
pendingAdded but DNS not yet verified
verifiedAll DNS records valid — domain ready to send
failedOne or more DNS records missing or invalid

Verify a domain

POST/mail/v1/domains/:id/verify

Trigger an immediate DNS verification check. Use this after publishing DNS records to avoid waiting for the automatic daily check.

Path parameters

idstringpathrequired

ID of the domain to verify.

Response fields

successboolean

true when the check completed.

domainobject

The 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

DELETE/mail/v1/domains/:id

Remove a custom domain. Existing campaigns that reference this domain will fall back to the default MisarMail sending domain.

Path parameters

idstringpathrequired

ID of the domain to remove.

Response fields

successboolean

true 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

RecordTypePurpose
mm._domainkey.yourdomain.comTXTDKIM signing key
yourdomain.comTXTSPF — authorizes MisarMail IPs
_dmarc.yourdomain.comTXTDMARC policy
yourdomain.comMXRoutes 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.