Basics
Rate limits
Limits protect the site for everyone. They apply per key.
| Limit | Default | Resets | Error |
|---|---|---|---|
| Per minute | 30 requests | Every minute | rate_limited |
| Per day | 2 000 requests | 00:00 Tashkent time (UTC+5) | daily_quota_exceeded |
| Bad keys per IP | 30 per 10 minutes | After 10 minutes | rate_limited |
If your app needs more, write to us from the dashboard with your numbers; we raise limits per app.
Headers
Successful and limited responses include:
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Requests allowed per minute for this key. |
X-RateLimit-Daily-Limit | Requests allowed per day. |
X-RateLimit-Daily-Remaining | Requests left today. |
Retry-After | On 429 only: seconds to wait. |
GET /v1/key also returns limits.used_today.
Usage alerts
We message you on Telegram, by email and in your site notifications when:
- a key reaches 80% of its daily limit (once a day per key),
- a key reaches its daily limit (once a day per key),
- a key gets 50 error responses within an hour (once an hour per key).
No setup needed. The alert links straight to the key in your dashboard.
Staying under the limit
- Cache catalog data. Products and prices change a few times a day, not every second.
- Use
limit=100when paging through lists instead of many small pages. - Poll slowly. Checking a balance once a minute is plenty.
- On
429, waitRetry-Afterseconds before the next call.
Keys that keep hitting their limits are flagged to us. Repeated abuse can get an app suspended (see API rules).