GuidesRate limits & quotas

Rate limits & quotas

Per-minute rate limits and monthly credit quotas by plan, response headers, and how to handle 429s.

HTTP/1.1 429 Too Many Requests
Retry-After: 24
X-RateLimit-Limit: 15
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1731600060

Chuger applies two independent limits on top of credits:

  1. Rate limits — how many requests per minute / hour / day you can make to each endpoint
  2. Monthly quota — the credit balance attached to your plan, which resets every month

Both limits are scoped to your account, not to individual API tokens. Spreading traffic across several tokens does not raise the cap.

Rate limits by plan

Per-minute limits per endpoint:

EndpointBasicProBusiness
/v1/scrape515150
/v1/content515150
/v1/serp310100
/v1/serp/content310100
/v1/prompt2875

Per-hour and per-day limits scale roughly proportionally — for example, on Pro: scrape allows 300/hour and 2,000/day; on Business: 5,000/hour and 50,000/day. Endpoints that aren't billed (such as /v1/credits/*) are not rate-limited.

If you hit a rate limit you get 429 Rate limit exceeded with a JSON body and a Retry-After header — see Errors.

Monthly credit quota

Every plan ships with a monthly credit allowance that resets on the first of the month:

PlanMonthly credits
Basic6,000
Pro20,000
Business90,000

Different endpoints cost different amounts of credits — see Credits for the breakdown. When you have insufficient credits Chuger returns 402 Insufficient Credits.

You can top up between renewals by purchasing additional credits.

Response headers

Every successful API response includes these headers:

X-RateLimit-Limitinteger
Required

Your per-minute limit for this endpoint.

X-RateLimit-Remaininginteger
Required

Requests left in the current minute window.

X-RateLimit-Resetinteger
Required

Unix timestamp when the minute window resets.

X-Monthly-Quotainteger
Required

Total credits available this month.

X-Monthly-Remaininginteger
Required

Credits remaining this month.

X-Monthly-Resetinteger
Required

Unix timestamp when the monthly quota resets.

When you cross the 80% threshold Chuger also returns:

X-RateLimit-Warningstring

Present when you're approaching the per-minute rate limit. Value: "Approaching rate limit".

X-Monthly-Quota-Warningstring

Present when you're approaching the monthly credit quota. Value: "Approaching monthly quota".

These warning headers are advisory — your request still succeeds. Treat them as a cue to back off or alert your team.

Handling 429

When you exceed the per-minute rate limit Chuger returns:

Wait for the Retry-After seconds before resending. See Concurrency & best practices for retry strategies.

Handling quota exhaustion

When your monthly credits run out you get 429 Quota exceeded (during the rate-limit check) or 402 Insufficient Credits (when the action is about to be performed):

{
  "error": "Insufficient Credits",
  "message": "Insufficient credits. Required: 10, Available: 4",
  "code": "INSUFFICIENT_CREDITS"
}

Options:

Tips for staying under the limits

  • Cache results locally when scraping the same URLs repeatedly
  • Use /v1/credits/preview-cost before launching bulk operations
  • For high-volume jobs, prefer /v1/content/bulk over many serial /v1/content calls — it handles pacing for you and delivers results asynchronously
  • Honor Retry-After and the warning headers in your client code — see Concurrency & best practices