Docs
Connect an agent
Two endpoints
The Streamable HTTP transport, stateless. Send JSON-RPC over POST. No session header is required.
https://registrar-domains.com/mcp: open tools without anything; account tools withAuthorization: Bearer apex_….https://registrar-domains.com/mcp/oauth: the same tools. The app signs in to your account with OAuth 2.1. You approve it once in the browser.
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/oauthWith 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
check_domain— Is this exact domain available? Answers available, taken, or unknown.suggest_domains— Try one idea across the launch TLDs and rank by availability.get_price— First-year and renewal price in EUR for one TLD, next to our registrar costs.register_domain— Start a registration. Needs an API key or a signed-in connection. Answers an order with a payment link for the human; the domain is registered once payment clears.get_order— Follow an order: awaiting_payment, paid, registering, registered, failed, refunded.list_domains— The domains of your account, with state and expiry.list_orders— The orders of your account, newest first, from every key and connection.
REST mirror
Every tool has a plain HTTP route. Full schema at /openapi.json.
GET /api/check?domain=quietharbor.frGET /api/suggest?idea=quiet+harbor&tlds=com,fr,ioGET /api/price?tld=frorGET /api/pricefor the whole listPOST /api/registerwithAuthorization: Bearer apex_…and{ "domain": "…", "years": 1, "registrant": { … } }GET /api/orders/ord_…,GET /api/orders?limit=50andGET /api/domainswith the same key
Accounts and API keys
Checks and prices are open. register_domain, get_order, list_domains and list_orders 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, in EUR per year before tax. 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.
Limits
Thirty checks per minute per IP without a key. Over that you get a 429 with a retry-after header. Registration answers an order with a payment link. The domain is registered after the human pays.
For crawlers and agents
A plain-text summary lives at /llms.txt.