Rate limits
The BIDEX API applies a rate limit per client IP address to protect the service.
| Setting | Value |
|---|---|
| Limit | 100 requests per rolling 60-second window |
| Scope | Per client IP address (from the x-forwarded-for header) |
| Applies to | All requests to /api/v1/bidex/products, including rejected ones |
When the limit is exceeded
Requests above the limit receive HTTP 429 with:
{
"err": {
"name": "BidexRateLimitError",
"message": "Rate limit exceeded. Too many requests.",
"status": 429,
"requestId": "..."
}
}
The response also includes a Retry-After header with the number of seconds remaining in the current window:
Retry-After: 37
Wait that long and resend the same request. The feed is read-only: retrying is always safe and never causes duplicate changes.
Tips for integrations
- Prefer few, large requests. A single CSV request downloads the complete catalog in one go, which is more efficient than many small JSON pages.
- For JSON pagination, download pages one after another instead of in parallel bursts, and stay well below 100 requests per minute.
- Handle
429automatically. ReadRetry-After, wait, and retry; treat the value as a minimum. - Cache downloads locally. Product data changes at most a few times per day; schedule your download accordingly instead of polling continuously.