Custom Domains
Add and verify custom sending domains with DKIM, SPF, and DMARC
Custom Domains
Custom domains let you send email from your own domain (e.g. hello@yourdomain.com) with proper DKIM signing for improved deliverability. Each domain must pass DNS verification before it can be used.
Auth scope: domains
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 |
GET /api/v1/domains
List all custom domains for the authenticated account.
curl https://mail.misar.io/api/v1/domains \
-H "Authorization: Bearer msk_YOUR_API_KEY"Response
{
"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"
}
]
}POST /api/v1/domains
Add a new custom domain. Returns the DNS records to configure.
curl -X POST https://mail.misar.io/api/v1/domains \
-H "Authorization: Bearer msk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domain": "yourdomain.com" }'Request Fields
| Field | Type | Required | Notes |
|---|---|---|---|
domain | string | ✓ | Root domain or subdomain (e.g. mail.yourdomain.com) |
Response
{
"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:dmarc@mail.misar.io"
},
"mx": {
"type": "MX",
"host": "yourdomain.com",
"value": "mail.misar.io",
"priority": 10
}
}
}
}DNS changes can take up to 48 hours to propagate. Call POST /api/v1/domains/:id/verify once records are published to trigger an immediate check.
GET /api/v1/domains/:id
Get the current status and DNS record details for a domain.
curl https://mail.misar.io/api/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 |
POST /api/v1/domains/:id/verify
Trigger an immediate DNS verification check. Use this after publishing DNS records to avoid waiting for the automatic daily check.
curl -X POST https://mail.misar.io/api/v1/domains/dom_abc123/verify \
-H "Authorization: Bearer msk_YOUR_API_KEY"Response
{
"success": true,
"domain": {
"id": "dom_abc123",
"domain": "yourdomain.com",
"status": "verified",
"dkim_status": "valid",
"spf_status": "valid",
"dmarc_status": "valid"
}
}DELETE /api/v1/domains/:id
Remove a custom domain. Existing campaigns that reference this domain will fall back to the default MisarMail sending domain.
curl -X DELETE https://mail.misar.io/api/v1/domains/dom_abc123 \
-H "Authorization: Bearer msk_YOUR_API_KEY"Response
{ "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.