AggKnowledge enforces rate limits on every API request to keep the service fast and reliable for all customers. Limits are applied per endpoint and scale with your service tier, so higher-traffic workloads can scale up by upgrading rather than by working around per-account caps.
This page summarizes the limits in effect today. If you need higher throughput than what's listed here, please reach out.
How rate limits work
Each request you make is counted against two rolling windows:
- A per-second budget (RPS), which protects against sudden bursts.
- A per-hour budget (RPH), which governs sustained throughput.
Both budgets must have capacity for a request to succeed. If either is exhausted, the API returns 429 Too Many Requests along with an X-Rate-Limit-Retry-After-Seconds header indicating how long to wait before retrying. We recommend implementing exponential backoff in your client to handle these responses gracefully.
Limits are applied independently to each endpoint, grouped by tier. Hitting the limit on one endpoint does not affect your budget on another.
Limits by service tier
Per-endpoint rate limits for each service tier.
| Service Tier | Tier 1 | Tier 2 | Tier 3 | Tier 4 |
|---|---|---|---|---|
| Enterprise | 100 RPS 10,000 RPH | 100 RPS 10,000 RPH | 200 RPS 25,000 RPH | 500 RPS 50,000 RPH |
| Growth | 25 RPS 2,500 RPH | 50 RPS 5,000 RPH | 50 RPS 25,000 RPH | 100 RPS 50,000 RPH |
| Starter | 10 RPS 1,000 RPH | 10 RPS 1,000 RPH | 10 RPS 1,000 RPH | 10 RPS 1,000 RPH |
RPS = requests per second. RPH = requests per hour.
Endpoint tiers (1–4) reflect the relative cost of the underlying operation. Lightweight reads typically fall into Tier 1, while complex aggregations or large result sets fall into Tier 3 or 4.
Best practices
A few things that help avoid hitting limits in production:
- Cache aggressively. Many aggregate queries are stable for minutes or hours — cache results client-side where you can.
- Batch where possible. Endpoints that accept multiple identifiers in a single call count as one request against your rate limit, regardless of how many items you send. Note that billing is separate — these endpoints are billed per item, not per request.
- Respect the retry header. When you receive a 429, wait at least
X-Rate-Limit-Retry-After-Secondsbefore retrying. - Monitor your remaining budget. Successful responses include
X-Rate-Limit-Remainingso you can pace your traffic before hitting a limit.
