Overview
The data comes from the open top-level-domain-names dataset on GitHub, which lists each TLD with its type and sponsoring organization. A scheduled job downloads it weekly, refuses the update if it parses fewer than 1,000 entries, and stores the result; the API loads that copy and keeps it in memory.
`tld` is lowercased, trimmed and stripped of one leading dot, so `.COM`, `com` and `Com` all match, and the response echoes the normalized value. Send only the TLD: a full domain such as `example.com` is looked up as that literal string and returns `found: false`. Internationalized TLDs can be sent in Unicode or in their punycode `xn--` form and resolve to the same record; direction marks around right-to-left names are ignored.
`type` is the dataset's classification, for example `generic`, `country-code` or `sponsored`. `organization` is the sponsoring organization recorded for the TLD. Where the source lists the sponsor as "Not assigned", `organization` is null while `found` stays true, so check both fields before treating an extension as active.
An unknown TLD still returns 200, with `found: false` and null `type` and `organization`, which keeps validation code simple. Matching is by exact key only: there is no fuzzy matching or suggestion, and a second-level suffix such as `co.uk` is not a TLD and will not match.
Live Test TLD Lookup Skill Skill →
The tool
Once your client is connected to the VerveKit server, this appears in its tool list as TLDLookupSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.
{
"name": "TLDLookupSkill",
"arguments": {
"tld": "com"
}
}You do not name the tool yourself; the model picks it. Asking about com in the terms this skill covers is enough for it to reach for TLDLookupSkill on its own — naming it explicitly also works, and is the way to force the call.
Connecting
One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.
{
"mcpServers": {
"vervekit": {
"url": "https://api.vervekit.com/v1/mcp"
}
}
}https://api.vervekit.com/v1/mcpPer-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.
Arguments
These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.
| Argument | Type | Description |
|---|---|---|
tldRequired | string | The top-level domain to look up (with or without leading dot) |
What the model gets back
The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.
{
"status": "ok",
"error": null,
"data": {
"tld": "com",
"found": true,
"type": "generic",
"organization": "VeriSign Global Registry Services"
}
}
Response fields
Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.
| Field | Type | Example | Description |
|---|---|---|---|
tld | string | com | The top-level domain requested in normalized form |
found | boolean | true | Whether the TLD is registered with IANA |
type | string | generic | TLD type: generic, country-code, sponsored, infrastructure |
organization | string | VeriSign Global Registry Services | Organization responsible for managing the TLD |
Failure modes
Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.
| Status | What it means |
|---|---|
400 / 422 | The arguments did not validate. The message names the offending one. |
401 | The OAuth session is invalid or expired — reconnect the server. |
403 | Blocked by a key restriction or an IP allow-list. Never a bad identity. |
404 | This skill is not part of VerveKit. Check the catalog. |
429 | Out of credits, or a brief rate limit. The message tells them apart. |
A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.
Use cases
- Domain Validation
- Verify that a TLD is valid and registered with IANA before processing user-submitted domains
- Phishing Detection
- Identify domains using unusual or newly-created TLDs that may indicate phishing attempts
- Domain Analysis
- Understand the type and ownership of domain extensions for research and compliance purposes
- Registrar Tools
- Look up TLD information to determine registration requirements and managing organizations
Other ways to use TLD Lookup Skill
Set up TLD Lookup Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.
Related
More in Networking: