Developers/Rate Limits

Rate Limits

Understand rate limits per plan, how headers work, and strategies to stay within limits.

Limits by plan

Every API key is associated with a plan that determines your daily request allowance. Here are the current limits:

Free
100 requests/day
Pro
1,000 requests/day
Enterprise
50,000 requests/day

Limits reset daily at midnight UTC. Unused requests do not roll over to the next day.

Rate limit headers

Every API response includes headers that tell you where you stand against your limit:

  • X-RateLimit-Limit — Your daily request limit.
  • X-RateLimit-Remaining — Requests remaining today.
  • X-RateLimit-Reset — UTC timestamp of the next reset.

Example response headers:

http
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 2026-03-12T00:00:00Z

You can read these headers programmatically to monitor your usage:

javascript
const res = await fetch(url, { headers: { "X-API-Key": key } });
const remaining = res.headers.get("X-RateLimit-Remaining");
console.log(`${remaining} requests left today`);

Rate limit exceeded

When you exceed your daily limit, the API responds with a 429 status code and the following body:

json
{
  "error": "Rate limit exceeded. Upgrade your plan for higher limits.",
  "code": "RATE_LIMITED",
  "limit": 100,
  "resetAt": "2026-03-12T00:00:00Z"
}

The resetAt field tells you when your limit will reset and you can resume making requests.

Strategies to stay within limits

*

Tips to minimize API calls

  • Cache responses locally — many endpoints return slow-changing data that does not need to be fetched on every request.
  • Use per_page=100 — fetch more data per request to reduce the total number of calls.
  • Check X-RateLimit-Remaining — inspect the header before making requests to avoid hitting the limit unexpectedly.
  • Use conditional requests — when possible, leverage caching headers to avoid re-fetching unchanged data.

GET responses are already cached server-side to reduce load: 60 seconds for programs, 5 minutes for categories, and 2 minutes for reviews and organizations. Take advantage of this by spacing out repeated requests for the same resource.

Upgrading your plan

If you are consistently hitting your rate limit, consider upgrading your plan. You can upgrade directly from your Dashboard under the Developer tab, or visit the Pricing page to compare plans.