Skip to main content

Quotas and errors

How calls are counted​

MCP calls count against your NameBeta plan, in the same buckets as the website. A WHOIS lookup on namebeta.com and a lookup_whois call spend the same allowance, and both appear on the usage page of your account panel.

  • Only tools/call counts. initialize, tools/list, ping and other protocol requests are free.
  • One call counts once, whatever it contains. A check_availability call with 20 domains counts as one.
  • suggest_domains is free, as suggestions are on the website.
  • The call counts when it is accepted, before the tool runs. A call that ends in a tool error — an invalid domain, a WHOIS server that does not answer — still counts.
  • A rejected call does not count. When you are over a limit, the 429 response costs nothing.
  • Your plan decides the limits. MCP always runs as a signed-in user, so the anonymous limits of the website never apply.

Limits​

Each bucket has an hourly and a daily limit. A call has to fit within both.

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
compare_prices single150 / 2501,200 / 3,6002,000 / 8,000Unlimited
suggest_domains Not counted
lookup_whois whois5 / 1560 / 200150 / 500Unlimited
lookup_dns dns20 / 50200 / 400500 / 1,000Unlimited

check_availability lands in one of two buckets: query if any entry in domains is a bare label such as kettlory, and check if every entry is a full domain name. Plans and prices are on namebeta.com/pricing.

When limits reset​

:::warning Windows are in UTC

Quota windows are fixed and aligned to UTC, whatever your time zone:

  • Hourly limits reset at the start of every UTC hour: 13:00, 14:00, 15:00 UTC and so on.
  • Daily limits reset at 00:00 UTC. That is 08:00 in Beijing, 09:00 in Tokyo, and 16:00 or 17:00 the previous day in San Francisco.

:::

The windows are not rolling. Calls made at 13:59 UTC and 14:00 UTC fall into different hours, so a full hourly allowance becomes available again at the top of every UTC hour.

Over the limit: 429 and Retry-After​

A call over either limit is rejected at the HTTP level, before it reaches the tool:

HTTP/1.1 429 Too Many Requests
Retry-After: 1260
Content-Type: application/json

{
"jsonrpc": "2.0",
"error": {
"code": -32000,
"message": "MCP hourly quota exceeded.",
"data": { "retryAfter": 1260 }
},
"id": 7
}
PartValue
StatusAlways 429 Too Many Requests, for hourly and daily limits alike
Retry-After headerSeconds until the exceeded window resets: 1–3600 for hourly, 1–86400 for daily
error.code-32000
error.messageMCP hourly quota exceeded. or MCP daily quota exceeded.
error.data.retryAfterThe same number of seconds as Retry-After
idThe id of your request

The daily limit is checked first. When both limits are spent, the response reports the daily one, and Retry-After points at 00:00 UTC — retrying at the next hour would fail again.

What clients should do​

  • Wait at least Retry-After seconds before calling the same tool again. Retrying sooner is rejected with another 429.
  • Other buckets are unaffected. After lookup_whois hits its limit, lookup_dns and compare_prices keep working.
  • Tell the user when the limit resets rather than retrying in a loop. For a daily limit, the wait can be most of a day.

Error reference​

MCP clients can see three kinds of error. They arrive in different places, so handle each one where it appears.

HTTP errors​

The request never reaches the tool. The body is a JSON-RPC error with code -32000.

StatusWhenWhat to do
401No token, or the token is invalid or expiredFollow the WWW-Authenticate challenge; see Authorization
405GET or DELETE on the endpointSend POST. The endpoint has no SSE stream and no sessions
429A quota limit is exceededWait Retry-After seconds; see above

Tool errors​

The tool ran, or tried to, and failed. The response is a normal 200 with a tools/call result that has isError: true and the reason as text:

{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [{ "type": "text", "text": "Invalid domain format" }],
"isError": true
}
}
MessageCause
Input validation error: …The arguments do not match the tool's input schema — a missing field, a value out of range, a domain without a dot
Invalid domain formatThe input cannot be parsed as a domain name
Tool <name> not foundThe tool name is misspelled or does not exist
Any other messageThe lookup behind the tool failed, for example a WHOIS or DNS server that did not answer; it may succeed if retried later

A tool error still counts against your quota, except for an unknown tool name.

Malformed requests​

A request the MCP transport cannot accept is rejected with a 4xx status before any tool runs — for example 406 when the Accept header does not list both application/json and text/event-stream, or a JSON-RPC parse error (-32700) for a body that is not valid JSON-RPC. Fix the request rather than retrying it.

Service level​

:::caution No SLA

The NameBeta MCP server comes without a service level agreement. We do not commit to any availability, uptime, response time or support response time, and quotas, tools and response fields may change. Results come from live registry, WHOIS and DNS queries and can be incomplete or out of date.

:::