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
| Tier | Reputation (single) | Reputation (batch) | Stats / Health |
|---|---|---|---|
| Free | 60 req/min | Not available | 60 req/min |
| Starter | 300 req/min | 30 req/min | 120 req/min |
| Growth | 600 req/min | 60 req/min | 120 req/min |
| Scale | 1,200 req/min | 120 req/min | 120 req/min |
| Enterprise | Custom | Custom | Custom |
Monthly API call limits
In addition to per-minute rate limits, each plan includes a monthly call allowance:| Tier | Included calls/month |
|---|---|
| Free | 5,000 |
| Starter | 100,000 |
| Growth | 500,000 |
| Scale | 5,000,000 |
| Enterprise | Unlimited |
Response headers
Every response includes rate limit headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Rate limit exceeded
When you exceed the rate limit, the API returns:Retry-After header indicates how many seconds to wait before retrying.
Best practices
- Cache responses — Reputation scores change slowly. Cache results for the
ttl_secondsvalue 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-Afterduration before retrying.
Legacy endpoints
Legacy endpoints (/api/v1/x402/*, /api/v1/erc8004/*) have separate rate limits:
| Endpoint | Limit |
|---|---|
/api/v1/x402/stats | 60 req/min |
/api/v1/x402/wallet/:address | 120 req/min |
/api/v1/x402/browse | 60 req/min |
/api/v1/x402/identified | 60 req/min |
/api/v1/erc8004/stats | 60 req/min |
/api/v1/erc8004/browse | 60 req/min |