# MailDNS > MailDNS is one API for all your registrars. Registrar accounts are connected once; a MailDNS key then manages A, AAAA, CNAME, MX and TXT records on the domains and hosts it was issued for, in any of six API styles copied from real registrars: Dynadot (https://api.maildns.io/api3.json), Spaceship (https://api.maildns.io/api/v1), Cloudflare (https://api.maildns.io/client/v4), GoDaddy (https://api.maildns.io/v1), Porkbun (https://api.maildns.io/api/json/v3) and Namecheap (https://api.maildns.io/xml.response). Existing code for any of them works by changing only the base URL and the key. Keys never change nameservers. Rules an agent must follow: - Use one style per script. All six share the key and reach the same records. - Add records with the style's add call (Dynadot `set_dns2` with `add_dns_to_current_setting=1`, Spaceship `PUT`, Cloudflare `POST`, GoDaddy `PATCH`, Porkbun `dns/create`). Replace calls (Dynadot `set_dns2` without the add flag, GoDaddy `PUT`, Namecheap `setHosts`) leave each host they mention with exactly the records sent. - Nameservers can never be changed, in any style: the answer is always "This API key doesn't work for nameservers." Do not retry it. - Before asking Google or Microsoft to verify, poll `dns_status` until `Live` is `yes`. - Write only at or under the hosts your key lists. When a host is a name inside a domain (`advisor.example.com`), never write records on the root domain (`example.com`). - Everything below in one file: https://maildns.io/llms-full.txt ## Docs - [Overview](https://maildns.io/docs.md): What MailDNS is, the six API styles side by side, the registrars you can connect, and where to start. - [Quickstart](https://maildns.io/docs/quickstart.md): From a new key to a live TXT record in five calls. - [Keys and limits](https://maildns.io/docs/keys.md): What a key can reach and read, auth in each style, IP locks, rate limits, record limits, and why nameservers are never available. - [Hosts](https://maildns.io/docs/hosts.md): The two ways to address a host in each style, which records are yours, and which calls replace records. - [Dynadot style](https://maildns.io/docs/dynadot.md): Reference for /api3.json: every command, its parameters and a full JSON reply. - [Spaceship style](https://maildns.io/docs/spaceship.md): Reference for /api/v1: hosts, DNS records (list, add, delete) and the status check. - [Cloudflare style](https://maildns.io/docs/cloudflare.md): Reference for /client/v4: token check, zones, DNS records (list, create, replace, delete) and errors. - [GoDaddy style](https://maildns.io/docs/godaddy.md): Reference for /v1/domains: hosts, records by type and name, add, replace, delete, and errors. - [Porkbun style](https://maildns.io/docs/porkbun.md): Reference for /api/json/v3: ping, domains, DNS create, retrieve, edit and delete, by id or by name and type. - [Namecheap style](https://maildns.io/docs/namecheap.md): Reference for /xml.response: getList, getHosts and setHosts with full XML replies. - [Checking propagation](https://maildns.io/docs/propagation.md): When a change is live, how dns_status decides, and a polling loop to run before you verify. - [Errors](https://maildns.io/docs/errors.md): How errors look in each style, every error text, what caused it and what to do, and what is safe to retry. - [For AI agents](https://maildns.io/docs/agents.md): How to hand MailDNS to an AI agent: llms.txt, llms-full.txt, markdown pages and a briefing to paste. ## Recipes - [Google Workspace on a subdomain](https://maildns.io/docs/google-workspace.md): Google Workspace on a subdomain host: verification, MX, SPF, DKIM and DMARC, a complete Python script, and step 1 in all six styles. - [Microsoft 365 on a subdomain](https://maildns.io/docs/microsoft-365.md): Microsoft 365 on a subdomain host: the records it asks for and the calls that add them. ## Optional - [Privacy](https://maildns.io/privacy): what is recorded about website visits and API calls. - [Terms](https://maildns.io/terms): the terms for using the website and API.