Rate limits & access
Access is by API key on a paid subscription, on one of two plans. Two rate limits apply to every key, and rate-limit headers on every response tell you exactly where you stand.
Plans & access
Access is by paid subscription — see the API access pageto subscribe. Both plans cover live prices and the full GPU & provider catalogue; the Pro plan adds historical price data and a higher quota.
| Plan | Daily quota | Burst limit | Price history |
|---|---|---|---|
| Developer | 250 / day | 60 / min | — |
| Pro | 1,000 / day | 120 / min | Included |
FORBIDDEN error. Every other endpoint works on both plans.Rate-limit headers
Every response carries your current standing, so you can throttle proactively rather than waiting to be rejected. The bare RateLimit-* headers describe the most constrained window; the per-window variants report the minute and day budgets explicitly.
| Header | Description |
|---|---|
| RateLimit-Limit | Request ceiling for the most-constrained window. |
| RateLimit-Remaining | Requests left in that window. |
| RateLimit-Reset | Seconds until that window resets. |
| RateLimit-*-Minute | Limit / Remaining / Reset for the per-minute burst window. |
| RateLimit-*-Day | Limit / Remaining / Reset for the daily quota window. |
| Retry-After | On a 429 only — seconds to wait before retrying. |
HTTP/1.1 200 OK
Content-Type: application/json
RateLimit-Limit: 120
RateLimit-Remaining: 117
RateLimit-Reset: 43
RateLimit-Limit-Minute: 120
RateLimit-Remaining-Minute: 117
RateLimit-Reset-Minute: 43
RateLimit-Limit-Day: 1000
RateLimit-Remaining-Day: 863
RateLimit-Reset-Day: 51840When you hit a limit
A throttled request returns 429 with a RATE_LIMITED error and a Retry-After header. Back off for that many seconds, then retry — ideally with exponential backoff and jitter.
{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded"
}
}