StableDomains gives you DNS management for the domains you register (A, AAAA, CNAME, MX, TXT), free one-call DNS templates and free 301 URL forwarding. StableDomains does not host mailboxes or forward email; a mail provider handles that. Here's how to set up two common providers.
Option 1: Zoho Mail (template)
- Create a Zoho Mail account and add your domain. Zoho shows a verification TXT record. See the Zoho domain verification docs.
- Apply the free template. It writes
mx.zoho.com(10),mx2.zoho.com(20),mx3.zoho.com(50) andv=spf1 include:zoho.com ~all, and keeps your website records:
curl -X POST "/api/v1/domains/example.com/dns/template" \
-H "Authorization: Bearer $KEY" -H "content-type: application/json" -d '{"template":"zoho-mail"}'
Zoho's MX hosts depend on your data centre (for example .eu or .com.au). Pass "params":{"region":"eu"} (or in, com.au), and compare with what Zoho's Admin Console shows under Tools & Configurations. See Zoho: configure email delivery.
- Add Zoho's verification TXT and DKIM TXT without touching anything else:
curl -X PATCH "/api/v1/domains/example.com/dns" \
-H "Authorization: Bearer $KEY" -H "content-type: application/json" \
-d '{"records":[{"type":"TXT","name":"@","value":"<zoho-verification=... from Zoho>"},
{"type":"TXT","name":"<selector>._domainkey","value":"<DKIM value from Zoho>"}]}'
MCP: apply_dns_template with zoho-mail, then set_dns with mode: "merge".
Option 2: ImprovMX (manual records)
ImprovMX forwards you@example.com to an inbox you already have. ImprovMX's DNS configuration guide lists these records:
| Type | Host | Value | Priority |
|---|---|---|---|
| MX | @ | mx1.improvmx.com | 10 |
| MX | @ | mx2.improvmx.com | 20 |
| TXT | @ | v=spf1 include:spf.improvmx.com ~all | — |
ImprovMX asks you to delete the old MX records. Use the merge PATCH with remove. Your website A and CNAME records stay in place:
curl -X PATCH "/api/v1/domains/example.com/dns" \
-H "Authorization: Bearer $KEY" -H "content-type: application/json" \
-d '{"remove":[{"type":"MX","name":"@"}],
"records":[
{"type":"MX","name":"@","value":"mx1.improvmx.com","priority":10},
{"type":"MX","name":"@","value":"mx2.improvmx.com","priority":20},
{"type":"TXT","name":"@","value":"v=spf1 include:spf.improvmx.com ~all"}
]}'
A domain should have one SPF record. If you already have one, remove it in the same call ({"type":"TXT","name":"@","value":"<old spf>"}) or combine the includes into one record. Always check the values in your ImprovMX dashboard.
PATCH vs PUT
PATCH /api/v1/domains/{domain}/dns(MCPset_dnswithmode: "merge"): adds or updates the records you send, deletesremovematches, and keeps everything else.PUT /api/v1/domains/{domain}/dns(MCPset_dns, defaultmode: "replace"): replaces the full record set. Records you leave out are deleted.
Add DMARC
Add a TXT record at _dmarc, for example v=DMARC1; p=none; rua=mailto:you@example.com, then tighten the policy later.
Check it
Run the free DNS + SPF/DKIM/DMARC checker or MCP dns_email_check. It grades your setup A to F and lists fixes.
FAQ
Does StableDomains forward email itself?
No. It offers free URL forwarding (set_url_forward) and DNS management. Use a provider such as Zoho Mail or ImprovMX for mail.
Which DNS templates exist? vercel, netlify, github-pages, google-workspace, microsoft-365 and zoho-mail.
Will adding MX records break my website?
No, if you use PATCH, set_dns mode merge, or a template. With PUT, include your A and CNAME records.
Can my AI agent do this? Yes, via the MCP server at /api/mcp (37 tools, including get_dns, set_dns, apply_dns_template and dns_email_check).
How do I pay for a domain? USDC or USDT on 7 chains. See pay with crypto.