Skip to main content

Overview

AgentScore applies rate limits per API key to ensure fair usage and API stability. Limits vary by plan tier and endpoint.

Rate limits by tier

TierReputation (single)Reputation (batch)Stats / Health
Free60 req/minNot available60 req/min
Starter300 req/min30 req/min120 req/min
Growth600 req/min60 req/min120 req/min
Scale1,200 req/min120 req/min120 req/min
EnterpriseCustomCustomCustom

Monthly API call limits

In addition to per-minute rate limits, each plan includes a monthly call allowance:
TierIncluded calls/month
Free5,000
Starter100,000
Growth500,000
Scale5,000,000
EnterpriseUnlimited
Batch requests count as one call per address in the batch.

Response headers

Every response includes rate limit headers:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Rate limit exceeded

When you exceed the rate limit, the API returns:
HTTP/2 429 Too Many Requests
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Try again in 12 seconds."
  }
}
The Retry-After header indicates how many seconds to wait before retrying.

Best practices

  • Cache responses — Reputation scores change slowly. Cache results for the ttl_seconds value returned in each response (60-300 seconds depending on tier).
  • Use batch for bulk lookups — A single batch request is more efficient than many individual calls.
  • Monitor usage — Check your remaining quota from the dashboard or response headers.
  • Implement backoff — On 429 responses, wait for the Retry-After duration before retrying.

Legacy endpoints

Legacy endpoints (/api/v1/x402/*, /api/v1/erc8004/*) have separate rate limits:
EndpointLimit
/api/v1/x402/stats60 req/min
/api/v1/x402/wallet/:address120 req/min
/api/v1/x402/browse60 req/min
/api/v1/x402/identified60 req/min
/api/v1/erc8004/stats60 req/min
/api/v1/erc8004/browse60 req/min