Skip to main content

check_availability

Checks whether domains can be registered. It is the NameBeta search box as a tool: a full domain such as kettlory.com is checked on its own, and a bare label such as kettlory is expanded across the default TLD set and the domain hacks the search page shows.

Read-only · Open world

Ask your assistant​

Paste this into a chat with NameBeta connected:

Which TLDs are still free for brewlab? Of the taken ones, which are for sale?

Your assistant calls check_availability with brewlab, and the answer should mix all three states — the Example shows what the tool returned on 2026-09-29.

Input​

FieldTypeRequiredConstraints
domainsstring[]Yes1–20 items; each 1–253 characters

Output​

Returned as structuredContent, and repeated as JSON in a text content block.

FieldTypeRequiredConstraints
resultsobject[]Yes
results[].domainstringYes
results[].statusstringYesOne of available, taken, unknown, forsale, reserved, tld, sld, publicsuffix
results[].urlstringYesFormat uri

Behavior​

  • Each entry in domains is handled separately, and the results are concatenated in input order.
  • An entry with a dot is checked as one domain and yields one result.
  • An entry without a dot is a bare label. It yields one result per default TLD (.com, .net, .org, .io, .ai and others), followed by domain hacks such as ke.tt. One label typically yields 10–20 results.
  • Characters that cannot appear in a domain name — spaces, !, _ and other punctuation apart from dots and hyphens — are removed before an entry is parsed, and the rest is lower-cased. my startup! is checked as the bare label mystartup, without an error. The domain field of each result shows what was actually checked.
  • status comes from a live DNS delegation check, the same signal as the search box on namebeta.com. One exception: a WHOIS lookup of a domain — through lookup_whois or the WHOIS tool on namebeta.com, by any user — records that domain's status for 1 hour, and during that hour check_availability returns the recorded status instead of checking again. Use lookup_whois to confirm before you register.
  • url opens the domain's page on namebeta.com, with prices and WHOIS.

Status values​

statusMeaning
availableCan be registered now
takenAlready registered
forsaleRegistered, but listed for sale
reservedHeld by the registry and not open for normal registration
unknownThe DNS check got no definite answer, usually a nameserver timeout; retry
tldThe input is a top-level domain itself, such as com
sldThe input is a second-level suffix such as co.uk, not a registrable domain
publicsuffixThe input is on the Public Suffix List and cannot be registered as a domain

Example​

Arguments:

{ "domains": ["brewlab"] }

Result of a call on 2026-09-29, complete:

{
"results": [
{
"domain": "brewlab.com",
"status": "taken",
"url": "https://namebeta.com/search/brewlab.com"
},
{
"domain": "brewlab.net",
"status": "taken",
"url": "https://namebeta.com/search/brewlab.net"
},
{
"domain": "brewlab.org",
"status": "taken",
"url": "https://namebeta.com/search/brewlab.org"
},
{
"domain": "brewlab.info",
"status": "available",
"url": "https://namebeta.com/search/brewlab.info"
},
{
"domain": "brewlab.io",
"status": "taken",
"url": "https://namebeta.com/search/brewlab.io"
},
{
"domain": "brewlab.co",
"status": "forsale",
"url": "https://namebeta.com/search/brewlab.co"
},
{
"domain": "brewlab.xyz",
"status": "forsale",
"url": "https://namebeta.com/search/brewlab.xyz"
},
{
"domain": "brewlab.ai",
"status": "taken",
"url": "https://namebeta.com/search/brewlab.ai"
},
{
"domain": "brewlab.online",
"status": "available",
"url": "https://namebeta.com/search/brewlab.online"
},
{
"domain": "brewlab.dev",
"status": "taken",
"url": "https://namebeta.com/search/brewlab.dev"
},
{
"domain": "brew.la",
"status": "taken",
"url": "https://namebeta.com/search/brew.la"
},
{
"domain": "brw.lb",
"status": "available",
"url": "https://namebeta.com/search/brw.lb"
},
{
"domain": "b.re",
"status": "available",
"url": "https://namebeta.com/search/b.re"
},
{
"domain": "b.rw",
"status": "taken",
"url": "https://namebeta.com/search/b.rw"
}
]
}

The first ten results are the default TLDs, in this order; the last four are domain hacks. Statuses change as domains are registered and dropped, so the same call made later can return a different mix.

Quota​

Which bucket a call counts against depends on its input: if any entry in domains is a bare label, the call counts against query, the same bucket as a search on the website; if every entry is a full domain, it counts against check.

ToolBucketFree (hour / day)Pro (hour / day)Business (hour / day)Enterprise (hour / day)
check_availability with any bare labelquery90 / 450360 / 1,800600 / 3,000Unlimited
check_availability with full domain names onlycheck45 / 135120 / 360300 / 900Unlimited

To check many specific names cheaply, send them as full domains in one call of up to 20.

Errors​

Errors specific to this tool. Errors covers the rest, including how each kind reaches your client.

Malformed entries rarely fail: stray characters are removed first, as described under Behavior.

SituationResult
An entry is empty once invalid characters are removed, or is a full name with a TLD NameBeta does not knowTool error Invalid domain format; no results are returned for the call
Empty array, or more than 20 entriesTool error MCP error -32602: Input validation error: …

See also​