Лимиты

Rate limits, HTTP-коды и повтор запросов.

На этой странице

Rate limits

ЭндпоинтАнонимС API-ключом
GET / POST /v1/companies30/мин120/мин
POST /v1/companies/export120/мин

Заголовки: 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)
429Rate 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")