Registrar Domains.

Docs

Connect an agent

Step-by-step setup for Claude, ChatGPT and Cursor, with example prompts: the domain MCP server.

Two endpoints

The Streamable HTTP transport, stateless. Send JSON-RPC over POST. No session header is required.

Claude.ai, ChatGPT

Add a custom connector with the URL https://registrar-domains.com/mcp/oauth. The app opens a page where you sign in with your email and press Allow.

Claude Code

With sign-in:

claude mcp add --transport http registrar-domains https://registrar-domains.com/mcp/oauth

With a key from your dashboard:

claude mcp add --transport http registrar-domains https://registrar-domains.com/mcp --header "Authorization: Bearer apex_…"

Claude Desktop, Cursor, Windsurf, any MCP client

{
  "mcpServers": {
    "registrar-domains": {
      "type": "http",
      "url": "https://registrar-domains.com/mcp",
      "headers": {
        "Authorization": "Bearer apex_…"
      }
    }
  }
}

Tools

REST mirror

Every tool has a plain HTTP route. Full schema at /openapi.json.

Manage a domain

The tools above, over REST. Reads take a key or your signed-in session; every change takes a key. Add a DNS record:

curl -X POST https://registrar-domains.com/api/domains/ada.fr/dns \
  -H "Authorization: Bearer apex_…" -H "Content-Type: application/json" \
  -d '{"name": "www", "type": "A", "value": "203.0.113.10", "ttl": 3600}'

Renew for a year. The answer is an order with a checkoutUrl: give it to the human to pay. Nothing is charged until they do.

curl -X POST https://registrar-domains.com/api/domains/ada.fr/renew \
  -H "Authorization: Bearer apex_…" -H "Content-Type: application/json" \
  -d '{"years": 1}'

New records usually reach our nameservers within minutes. Resolvers that already looked up the name keep the old answer until its TTL runs out, and a TTL change can take the old TTL plus an hour. Changing nameservers or reading the transfer code emails the account owner.

Accounts and API keys

Checks and prices are open. register_domain, get_order, list_domains, list_orders and the domain tools work for an account: an API key, sent as Authorization: Bearer apex_… on /mcp and the REST routes, or a signed-in connection on /mcp/oauth. Every key and connection of one account sees the same orders and domains. Create a key in your dashboard after you sign in.

Prices

Prices are live from our registrar, per year and before VAT, in the currency of the answer: USD. Each answer shows our price and the registrar cost. Some TLDs need a minimum period; get_price returns minYears.

Answers

Availability is one of available, taken, or unknown. Unknown means the registry did not answer or the TLD has no public RDAP server. Treat unknown as "check again", never as free. A name we already sold, or one being registered after payment, is taken with source: "apex".

Limits

Thirty checks per minute per IP without a key. Over that you get a 429 with a retry-after header. Registration and renewal answer an order with a payment link. The domain is registered or renewed after the human pays.

Changes

For crawlers and agents

A plain-text summary lives at /llms.txt.