Rate limit tiers
Arbitrage enforces three distinct rate limit tiers. The tier that applies to your request depends on how you authenticate.
The burst value is the maximum number of requests you can send in a short burst before the per-minute window takes effect. API Key access provides the highest throughput — 600 requests per minute with a burst of 50 — making it the right choice for automated polling and data pipelines.
The Authenticated session tier (60 req/min) is lower than the Product read tier (120 req/min) because it is scoped to the Developer Console and operational routes. Use an API key for external integrations that need higher throughput.
Rate limit response headers
Every API response includes the following headers regardless of status code. Read these headers to track your remaining capacity and plan retries precisely.Reading headers with curl
The-i flag prints response headers alongside the body. Use it to inspect your current rate limit state:
curl
X-RateLimit-Reset is a Unix timestamp. Subtract the current time from it to calculate how many seconds remain before your window resets.
When you exceed the limit
When your request rate exceeds the allowed limit, the API returns a429 Too Many Requests status with the following response body:
message field includes a human-readable countdown to help with debugging. The X-RateLimit-Reset header on the 429 response tells you the exact Unix timestamp when you can resume.
Handling 429s in Python with exponential backoff
The safest approach is to checkX-RateLimit-Remaining proactively and pause before you hit zero. When you do receive a 429, read X-RateLimit-Reset from the response headers and wait until that timestamp before retrying. The example below combines both strategies with exponential backoff as a fallback:
python
Custom rate limits on API keys
When you create an API key in the Developer Console, you can set a customrate_limit field. This overrides the default 600 req/min ceiling for that specific key and can be set anywhere from 1 to 10,000 requests per minute:
X-RateLimit-Limit header on every response for that key.
