Rate Limits
Rate limits защищают и стабильность сервиса, и ваш токен-баланс от случайных utility-багов. Лимиты считаются per-API-ключ.
Дефолтные значения
| Лимит | Значение | Скоуп |
|---|---|---|
| RPM (requests per minute) | 60 | per-ключ |
| RPH (requests per hour) | 1 000 | per-ключ |
| Concurrent WS sessions | 10 | per-ключ |
GET /api/v1/voices | 120/мин | per-ключ (кэш 60 сек) |
Per-key configurable. Если нужно больше — напишите на info@zowy.ai с описанием use-case и ожидаемого RPS.
Headers ответа
HTTP/1.1 200 OK
x-ratelimit-limit-requests: 60
x-ratelimit-remaining-requests: 47
x-ratelimit-reset-requests: 23s
| Header | Описание |
|---|---|
| x-ratelimit-limit-requests | Текущий лимит RPM для этого ключа |
| x-ratelimit-remaining-requests | Сколько запросов осталось в окне |
| x-ratelimit-reset-requests | Через сколько окно обнулится |
Что приходит при превышении
HTTP/1.1 429 Too Many Requests
retry-after: 12
{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit reached: 60 requests per minute",
"type": "rate_limit_error"
}
}
Best practice — exponential backoff
Python
import time, random, requests
def post_with_backoff(url, headers, body, max_attempts=5):
for attempt in range(max_attempts):
r = requests.post(url, headers=headers, json=body, timeout=60)
if r.status_code != 429:
return r
wait = int(r.headers.get("retry-after", 2 ** attempt))
wait += random.uniform(0, 0.5) # jitter
time.sleep(wait)
return r
Архитектурные советы
- Один ключ = одна интеграция. Не шарьте ключ между сервисами — у каждого свой счётчик
- Кэшируйте ответы где возможно (особенно для повторяющихся запросов с одинаковым промптом)
- Используйте streaming для длинных ответов — это уменьшит концентрацию запросов
- Батчируйте на уровне приложения — несколько вопросов в одном запросе если позволяет
Voice WebSocket — отдельные лимиты
Для WSS-сессий лимит — 10 одновременных подключений на один ключ. Hard-cap длительности сессии — 15 минут (см. Voice WebSocket).
Запрос увеличения лимитов
Напишите на info@zowy.ai с указанием:
- API-ключ (последние 4 символа)
- Текущий и желаемый RPM / RPH
- Описание use-case (продакшн? batch processing? voice бот?)
- Ожидаемый объём (запросов в день / месяц)