Developers
API & MCP
One set of lookups, three ways in: a REST API for your code, MCP for AI assistants, and a Skill for Claude.
Start in three steps
- 01
Sign up, then create a key under API & MCP in your account.
- 02
Send Authorization: Bearer tsk_your_key with each request.
- 03
Call the endpoints below, or add the MCP URL to your AI assistant.
REST API
Every endpoint returns JSON. The x-quota-remaining header shows the units left today; going over the quota or rate returns 429 with retry-after.
https://tldsweep.com/api/v1
| Method | Path | What it does | Cost |
|---|---|---|---|
| GET | /me | Plan, quotas and today's usage for the key's account | Free |
| GET | /check?domain=example.com | Look up one full domain: status, registrar, creation and expiry dates | 1 units |
| POST | /check | Look up to 50 full domains at once | 1 unit per domain |
| POST | /scans | Scan one name across a TLD group (async) | 1 unit per TLD |
| GET | /scans/{id}?status=available | Scan progress and results, filter with status | Free |
| GET | /scans | Your scans | Free |
| GET | /scopes | Available TLD groups and their sizes | Free |
| GET | /tlds/{tld} | TLD details: registry, type, RDAP / WHOIS servers | Free |
| GET | /tlds?type=cctld&q= | TLD list, filter with type and q | Free |
| POST | /names/suggest | AI name ideas (availability not checked) | 5 units |
| GET / POST | /watches | List, or add (POST), watched domains | Free / 1 units |
| DELETE | /watches/{id} | Stop watching a domain | Free |
curl -s "https://tldsweep.com/api/v1/check?domain=example.com" \ -H "Authorization: Bearer tsk_your_key"
{
"domain": "example.com",
"tld": "com",
"status": "taken",
"method": "rdap",
"registrar": "RESERVED-Internet Assigned Numbers Authority",
"created": "1995-08-14T04:00:00Z",
"expires": "2027-08-13T04:00:00Z",
"statuses": ["client delete prohibited", "..."],
"nameservers": ["a.iana-servers.net", "b.iana-servers.net"],
"checked_at": 1793121034262
}curl -s https://tldsweep.com/api/v1/check \
-H "Authorization: Bearer tsk_your_key" \
-H "content-type: application/json" \
-d '{"domains": ["acme.com", "acme.io", "acme.ai"]}'import os, requests
API = "https://tldsweep.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['TLDSWEEP_API_KEY']}"}
r = requests.post(f"{API}/check", headers=H, json={"domains": ["acme.com", "acme.io"]})
for row in r.json()["results"]:
print(row["domain"], row["status"], row.get("expires"))# Scan a name across popular TLDs, then poll for results
curl -s https://tldsweep.com/api/v1/scans \
-H "Authorization: Bearer tsk_your_key" \
-H "content-type: application/json" \
-d '{"name": "acme", "scope": "hot"}'
curl -s "https://tldsweep.com/api/v1/scans/123?status=available,likely" \
-H "Authorization: Bearer tsk_your_key"Status values
- available
- Available
- taken
- Registered
- reserved
- Reserved / not open for registration
- likely
- The registry has no lookup service and DNS has no delegation, so it is probably available; confirm at a registrar
- unknown
- Could not be determined right now
- error
- Lookup failed
MCP for AI assistants
A remote MCP server (Streamable HTTP), nothing to install. Assistants can check domains, run scans, brainstorm names and manage watches.
https://tldsweep.com/api/mcp
claude mcp add --transport http tldsweep https://tldsweep.com/api/mcp \ --header "Authorization: Bearer tsk_your_key"
{
"mcpServers": {
"tldsweep": {
"url": "https://tldsweep.com/api/mcp",
"headers": {
"Authorization": "Bearer tsk_your_key"
}
}
}
}Replace tsk_your_key with a key from above. If your client cannot send custom headers, append the key to the URL as ?key=tsk_… (keep that URL private).
Tools
check_domainCheck whether a single domain name is registered, available or reserved, using live DNS, RDAP and WHOIS. Returns status, registrar, creation and expiry dates. Costs 1 unit.
check_domainsCheck up to 50 full domain names in one call (any mix of TLDs). Costs 1 unit per domain.
scan_nameCheck one name (without TLD) across a group of TLDs, e.g. every popular TLD or every TLD for a given industry. Starts an async scan and waits up to wait_seconds for it to finish, then returns the available domains found so far plus the scan id for get_scan. Costs 1 unit per TLD. Call list_scopes to see the groups.
get_scanFetch progress and results of a scan started with scan_name. status filters results: available, likely, taken, reserved, unknown, error, or all.
list_scopesList the TLD groups usable as scope in scan_name, with how many TLDs each contains.
tld_infoRegistry, type (generic / country / new gTLD), RDAP and WHOIS servers and registration policy link for one TLD.
suggest_namesBrainstorm brandable names for a project and return candidate domains for the requested TLDs. Availability is NOT checked; pass the domains to check_domains next. Costs 5 units.
list_watchesList domains on the account's watch list with their last known status and expiry.
watch_domainAdd a domain to the watch list. The account owner gets email alerts before expiry, when it drops or gets registered, and on registrar / nameserver changes.
unwatch_domainRemove a domain from the watch list by its watch id (see list_watches).
account_usageShow the account's plan, daily unit quota and how much has been used today.
If your client only supports local (stdio) MCP servers, download the bridge script and run it with Node.js 18+:
Download tldsweep-mcp.mjs{
"mcpServers": {
"tldsweep": {
"command": "node",
"args": [
"/path/to/tldsweep-mcp.mjs"
],
"env": {
"TLDSWEEP_API_KEY": "tsk_your_key",
"TLDSWEEP_URL": "https://tldsweep.com"
}
}
}
}Claude Skill
A Skill is a playbook plus scripts for Claude. Once installed, Claude uses TLDSweep whenever you talk about naming or domains, so answers are based on live lookups across every TLD.
- 01
Download the Skill zip.
- 02
Claude web / desktop: Settings → Capabilities → Skills, upload the zip. Claude Code: unzip into ~/.claude/skills/.
- 03
Set TLDSWEEP_API_KEY to your key (Claude Code), or give Claude the key in the conversation.
Quotas
Quotas follow your plan. See and upgrade on the pricing page.