Runbase применяет ограничения на частоту запросов для каждого API-ключа, чтобы обеспечить справедливое использование и стабильность платформы.
Ограничения по умолчанию
| Область | Лимит |
|---|---|
| API key (runs endpoints) | 20 запросов за 10 секунд |
| Auth endpoints | 5 запросов за 60 секунд |
| Session check | 60 запросов за 60 секунд |
Ограничение частоты запросов для runs endpoints применяется к POST /api/v1/runs и GET /api/v1/runs/:id вместе, для каждого API-ключа.
Ответ при превышении лимита
Когда вы превышаете лимит, API возвращает HTTP 429:
{
"error": {
"message": "Rate limit exceeded",
"code": "RATE_LIMITED"
}
}Обработка ограничений частоты запросов
Реализуйте экспоненциальную задержку при повторных попытках, когда получаете ответ 429:
import time
import requests
def create_run(api_key, model, input_data, max_retries=3):
url = "https://runbase.net/api/v1/runs"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
body = {"model": model, "input": input_data}
for attempt in range(max_retries):
response = requests.post(url, json=body, headers=headers)
if response.status_code == 429:
wait = 2 ** attempt
time.sleep(wait)
continue
return response.json()
raise Exception("Rate limit exceeded after retries")Советы
- Используйте отдельные ключи для разных сервисов или воркеров, чтобы не делить один лимит
- Опрос выполняйте с разумными интервалами при проверке статуса запуска — для большинства моделей достаточно каждые 1–2 секунды
- Пакетируйте задачи, а не отправляйте много запросов одновременно
- Не повторяйте запрос сразу после 429 — всегда ждите перед повторной попыткой
Нужны более высокие лимиты?
Свяжитесь с support@runbase.net, если вашему случаю использования нужны более высокие ограничения на частоту запросов.

