Skip to content

Rate Limits

Rate limits protect the API from abuse and ensure fair usage. Limits are applied per IP address or per wallet, depending on the endpoint.

Endpoint groupLimitWindowKey
Search (GET /domains/search)60 requests1 minuteIP address
Registration & Renewal (POST /domains/register, POST /domains/renew)10 requests1 dayIP address
DNS operations (GET/POST/PUT/DELETE /dns/*)100 requests1 hourWallet address
Account (GET /account/*, POST /auth/revoke)30 requests1 minuteWallet address
Auth (GET /auth/nonce, POST /auth/verify, POST /auth/refresh)30 requests1 minuteIP address

All rate-limited endpoints include these headers:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

You’ll receive a 429 Too Many Requests response:

{
"error": "Too many requests",
"message": "Rate limit exceeded. Try again in 45 seconds.",
"code": "RATE_LIMITED"
}

Wait until the X-RateLimit-Reset timestamp before retrying.

These endpoints have no rate limits:

  • GET /health
  • GET /.well-known/agent-card.json
  • GET /domains/pricing
  • GET /domains/pricing/{tld}
  • GET /domains/status/{jobId}
  • GET /domains/{domain}