Главная/Начало работы/Лимиты запросов ENУКРРУС API-справочник (ReDoc) ↗

Лимиты запросов

Бюджеты на принципала по группам эндпоинтов, и как 429 просит вас притормозить.

Лимиты применяются после аутентификации, с ключом по проверенной identity — атакующий с плохим токеном не расходует ничего, а принципалы никогда не конкурируют друг с другом. Превышение бюджета отвечает 429 RATE_LIMITED с заголовком Retry-After, несущим секунды до следующего слота.

Бюджеты

Группа Применяется к По умолчанию Ключ
resolve POST /internal/v1/credentials/resolve 100 r/s, burst 200 сервисный client_id
чтение пользователя все GET пользовательской плоскости (каталог, credentials, статус) 120/мин sub токена
мутации пользователя POST/PATCH/DELETE пользовательской плоскости на credentials 30/мин sub токена
админ /v1/admin/* и /internal/v1/admin/* 60/мин sub, плюс метка X-Admin-Actor на сервисной плоскости
reveal POST .../credentials/{id}/reveal 10/мин sub + метка оператора
health /health/* без лимита

Числа — конфигурация развёртывания (лимит 0 отключает свою группу); значения выше — значения по умолчанию, и они приводятся для каждого эндпоинта в справочнике ReDoc.

Три детали, которые стоит знать:

  • Личные и организационные credentials делят один бюджет. Ключ — ваш sub, поэтому мутации на /v1/credentials и /v1/org-credentials черпают из одних и тех же 30/мин.
  • Операторы админ-панели не троттлят друг друга. На внутренней админ-плоскости ключ включает метку X-Admin-Actor, так что каждый названный оператор получает собственные 60/мин.
  • Reveal намеренно скуп. Десять reveal в минуту на оператора — это человек, инспектирующий ключи, а не скрипт, обходящий хранилище — в этом и смысл (Reveal).

Обработка 429

import time
import httpx

def call_with_backoff(request):
    while True:
        response = request()
        if response.status_code != 429:
            return response
        time.sleep(int(response.headers.get("Retry-After", "1")))

Бюджеты действуют на реплику и пополняются непрерывно; одного уважительно выдержанного Retry-After обычно достаточно.