Лимиты
Rate limits, HTTP-коды и повтор запросов.
На этой странице
Rate limits
| Эндпоинт | Аноним | С API-ключом |
|---|---|---|
GET / POST /v1/companies | 30/мин | 120/мин |
POST /v1/companies/export | — | 120/мин |
Заголовки: X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After.
limit поиска — максимум 1000. Жёсткого лимита на длину companyIds / exclude нет; на практике 5–15 тысяч ID за запрос работают.
При 429:
{"detail": "Слишком много запросов. Попробуйте позже."}HTTP-коды
| Код | Когда |
|---|---|
200 | Успех |
400 | Некорректное тело |
401 | Неверный или отозванный ключ |
402 | Недостаточно кредитов |
403 | Нет подписки или экспорт запрещён |
404 | Ничего не найдено, кредиты не списаны |
422 | Валидация (key, companyIds, columns) |
429 | Rate limit |
500 / 503 | Ошибка сервера или перегрузка |
Повтор при 429 / 5xx
import time
import requests
def api_get(url, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url)
if response.status_code == 200:
return response.json()
if response.status_code == 429:
wait = int(response.headers.get("Retry-After", 2 ** attempt))
time.sleep(wait)
continue
if response.status_code >= 500:
time.sleep(2 ** attempt)
continue
response.raise_for_status()
raise RuntimeError(f"Failed after {max_retries} retries")