An independent observatory of the global domain name system · Primary sources onlyworlddomainstats.com
World Domain Stats

World Domain Stats API & MCP

Two free ways into every number this site tracks — a versioned REST API and an MCP server for Claude & other AI clients. Registered-domain counts for every ICANN gTLD and the major country-code TLDs, with full monthly history, flow metrics, per-registrar breakdowns and registry activity. Primary sources only; every figure is traceable to the exact file it came from.

No key requiredCORS enabled 120 req/minCC BY 4.0 OpenAPI spec ↗ MCP server ↓

Base URL & response shape

Base URLhttps://YOUR_HOST/api/v1
AuthNone — free and open (read-only).
EnvelopeEvery JSON response is { meta, data }. meta carries generated_at, license and attribution so cited numbers stay traceable.
Rate limit120 requests / minute / IP. Headers: X-RateLimit-Limit/Remaining/Reset. Please cache — responses are Cache-Control: max-age=3600.
LicenseCC BY 4.0 — free to use with attribution to World Domain Stats and the underlying registries.

Endpoints

GET /api/v1/statsglobal totals + coverage
GET /api/v1/tldsall TLDs · ?type=gtld|cctld &sort=total|yoy|mom|tld &order &q &limit &offset
GET /api/v1/tlds/{tld}full monthly history + flows + activity + zone
GET /api/v1/tlds/{tld}/registrarsper-registrar breakdown (gTLDs)
GET /api/v1/registrarsfamilies + top individual registrars
GET /api/v1/registrars/{iana_id}one registrar's history + top TLDs
GET /api/v1/rankingsbiggest · fastest-growing · fastest-shrinking
GET /api/v1/sourcesprimary-source catalog
GET /api/v1/export/tlds.csvlatest snapshot, all TLDs (CSV)
GET /api/v1/export/tlds.xlsxlatest snapshot, all TLDs (Excel)
GET /api/v1/export/tlds/{tld}.csvfull monthly history for a TLD (CSV)
GET /api/v1/export/tlds/{tld}.xlsxfull monthly history for a TLD (Excel)
GET /api/v1/export/history.csvbulk — every TLD × every month (CSV)

Try it

# the .com monthly history, every figure with its source file
curl https://YOUR_HOST/api/v1/tlds/com

# the 20 fastest-growing TLDs year-over-year
curl https://YOUR_HOST/api/v1/rankings

# every TLD's latest count as a spreadsheet
curl https://YOUR_HOST/api/v1/export/tlds.csv

MCP server — for Claude, ChatGPT, Gemini & Copilot

Prefer to let an AI assistant query the data directly? The World Domain Stats MCP server exposes the whole dataset as Model Context Protocol tools (list_tlds, get_tld, get_rankings, compare_tlds, get_registrars, …) — the same source-anchored numbers as this API, usable straight from a conversation.

There are two ways to connect, depending on the client: a hosted (remote) endpoint for web/app clients, and a local command for desktop/CLI clients.

① Hosted / remote — for Claude apps, ChatGPT & other web clients

These clients add a custom connector by URL (they speak MCP over HTTP). Endpoint:

https://YOUR_HOST/mcp
Claude (web & desktop app)Settings → ConnectorsAdd custom connector → paste the URL above → Add. Then enable it in the chat's tools. (Availability depends on plan; the exact menu wording may differ by version.)
ChatGPTSettings → Connectors (enable Developer mode if shown) → Add a custom / remote MCP server → paste the URL. (Plus/Pro/Business/Enterprise; connector support is rolling out.)

Remote connectors require the site to be deployed over HTTPS; against a local dev server they'll only work if the client can reach localhost.

② Local (stdio) — for Claude Desktop/Code, Gemini CLI, VS Code Copilot

These run the server as a local process: node /path/to/worlddomainstats/mcp/server.js (point it at the data with DT_MCP_API_BASE, default http://localhost:3000).

Claude Code

claude mcp add worlddomainstats -- node /path/to/worlddomainstats/mcp/server.js
# or point Claude Code at the hosted endpoint instead:
claude mcp add --transport http worlddomainstats https://YOUR_HOST/mcp

Claude Desktopclaude_desktop_config.json:

{ "mcpServers": { "worlddomainstats": {
  "command": "node", "args": ["/path/to/worlddomainstats/mcp/server.js"],
  "env": { "DT_MCP_API_BASE": "https://YOUR_HOST" } } } }

Gemini CLI~/.gemini/settings.json (stdio, or "httpUrl" for remote):

{ "mcpServers": { "worlddomainstats": {
  "command": "node", "args": ["/path/to/worlddomainstats/mcp/server.js"] } } }

GitHub Copilot (VS Code).vscode/mcp.json:

{ "servers": { "worlddomainstats": {
  "command": "node", "args": ["/path/to/worlddomainstats/mcp/server.js"] } } }
// or remote:  { "servers": { "worlddomainstats": { "type": "http", "url": "https://YOUR_HOST/mcp" } } }

Full docs & source: mcp/ in the repository. Any MCP-compatible client works — these are just the common ones.

Attribution

Data compiled by World Domain Stats from ICANN Monthly Registry Reports, ICANN CZDS zone files and national ccTLD registries. When you use it, please credit World Domain Stats and, where practical, the underlying registry. Each TLD's exact source file is in its history[].source.