Rate Limits & Quotas
How JDay rate limits and monthly quotas work — per-key rate limits, account-level quotas, and relevant headers.
JDay has two layers of usage control:
- Per-key rate limits — enforced per second at the key level.
- Account-level monthly quota — shared across all keys on an account.
Per-Key Rate Limits
Rate limits are enforced at the API key level. Each plan has different limits:
| Plan | Requests/second per key |
|---|---|
| Free | 2 |
| Starter | 20 |
| Pro | 50 |
| Enterprise | Custom (no default limit) |
Rate Limit Headers
When applicable, responses include RFC 9333 headers:
RateLimit-Limit: 20
RateLimit-Remaining: 19
RateLimit-Reset: 0RateLimit-Resetis delta-seconds until at least one token is available, rounded up to the next whole second.- Rate-limit headers are only emitted when the key has a concrete per-key limit. Enterprise/custom accounts without an effective limit emit no rate-limit headers.
When exceeded, the API returns 429 rate_limited.
Account Monthly Quota
Monthly quota is tracked at the account level, shared across all keys:
| Plan | Requests/month |
|---|---|
| Free | 1,000 |
| Starter | 25,000 |
| Pro | 200,000 |
| Enterprise | Custom / unlimited |
Creating more keys does not increase monthly quota.
What Counts Against Quota
A request consumes quota only after all of these pass:
- Key verification succeeds
- Per-key rate limit passes
- Request parameters are valid
- Country and region validation succeeds
- Entitlement checks pass
These responses do not consume quota:
401 unauthorized- Any
400error (missing_parameter,invalid_date,invalid_year,invalid_days,invalid_country,invalid_region,date_out_of_range) 403 plan_upgrade_required429 rate_limited
Monthly Limit Reached
When the account quota is exhausted:
{
"error": {
"code": "monthly_limit_reached",
"message": "Account monthly quota exhausted."
},
"request_id": "018f7d1a-3a51-7f4b-9c78-830f8b6ce220"
}This response includes a Retry-After header with delta-seconds until the billing period resets.
Renewal
- Paid plans reset on the Stripe billing cycle.
- Free plans reset every 30 days from account activation.