Необходимые cookie-файлы нужны для работы сайта. Аналитические cookie (Яндекс Метрика) — только с вашего согласия. Политика cookie-файлов

Тема оформления
Инструкции

Лимиты

Лимиты запросов и данных: заголовки RateLimit-*, Retry-After, ограничения на размер файла, страниц и полей схемы.

Заголовки RateLimit-* и Retry-After

Ответы вызовов, защищённых лимитом (это практически все вызовы с ключом API или сессией), несут заголовки лимита:

  • RateLimit-Limit — предел запросов в окне;
  • RateLimit-Remaining — сколько запросов в нём осталось;
  • RateLimit-Reset — через сколько секунд окно обнулится.

В обычном ответе это минутное окно лимита на ключ или пользователя (RateLimit-Limit: 3000). В ответе 429 заголовки описывают тот лимит, который отказал: например, RateLimit-Limit: 50, RateLimit-Remaining: 0, RateLimit-Reset: 1, если исчерпана секунда.

Заголовков может не быть — это не ошибка, а запасной режим: если ограничитель на стороне Typizer временно недоступен, часть маршрутов настроена пропускать запросы без подсчёта (fail open), вместо того чтобы отказывать всем подряд.

При превышении лимита ответ — 429 rate_limited с этими заголовками и дополнительно Retry-After — сколько секунд подождать перед следующей попыткой. Дождитесь именно этого времени: повтор раньше не ускорит обработку, а продлит ожидание другим вашим запросам.

Лимит на ключ API и пользователя

Каждый вызов /v1/* и /mcp с ключом API или сессией ограничен одинаково для всех организаций — платных и бесплатных:

КтоЛимит
Ключ API (у каждого ключа свой)50 запросов в секунду, 3000 в минуту
Пользователь в Кабинете (один лимит во всех его организациях)50 запросов в секунду, 3000 в минуту
Организация — все её ключи и пользователи вместе150 запросов в секунду, 9000 в минуту

Несколько ваших серверов с одним ключом делят один лимит ключа. Отдельные ключи для разных служб дают каждой свой лимит, но вместе они не превысят лимит организации. У организации может быть не больше 20 активных ключей API.

Лимиты на создание

Сверх общего лимита у дорогих операций — свои, на ключ API или пользователя (считаются отдельно от общего):

ОперацияЛимит
Новые прогоны: POST /v1/typizers/{id}/runs, POST /v1/extract, POST /v1/runs/{id}/retry и инструмент MCP extract — вместе20 в секунду
Пакеты: POST /v1/batches2 в секунду, 60 в минуту
Загрузка файлов: POST /v1/files20 в секунду

Много документов разом — отправляйте пакетом («Пакетная обработка»), а не отдельными прогонами. Кроме того, на организацию одновременно идут не больше 2 загрузок и 2 выгрузок, а тесты и повторы вебхуков — не больше 20 в минуту.

Общий лимит на IP-адрес

Все вызовы /v1 и /mcp с одного IP-адреса — с любыми ключами, сессиями и без них — вместе не больше 6000 в минуту. Это страховка от флуда; обычный офис или сеть мобильного оператора за одним адресом до неё не доходит. При превышении — 429 с RateLimit-Limit: 6000; в обычных ответах заголовков этого лимита нет.

Лимиты по IP-адресу на отдельных публичных маршрутах

У маршрутов, не требующих ключа API (вход в кабинет, согласия, демо-режим без входа, статус сервиса, сам документ OpenAPI), — свой собственный лимит по адресу:

МаршрутЛимит по IP
Начало входа (POST /v1/auth/start)20 в час (и не больше 5 писем в час на один адрес почты)
POST /auth/* (вход, выход и другие операции аккаунта через Better Auth, сверх её собственного ограничителя)30 в минуту
Неудачные попытки авторизации (любой маршрут)60 в минуту
Согласия (POST /v1/consents)120 в минуту
GET /v1/status600 в минуту
GET /v1/openapi.json600 в минуту
POST /v1/demo/runs (демо-режим без входа)30 запросов в минуту, не больше 3 прогонов в сутки по московскому времени
GET /v1/demo/runs/{id} (опрос демо-прогона)300 в минуту

429 без заголовков API

При очень большом потоке запросов край сети Typizer может ответить 429 сам, ещё до API: простым текстом, без RateLimit-* и без тела application/problem+json, с Retry-After: 1. Обрабатывайте его так же — подождите Retry-After и повторите. В браузере такой ответ приходит без заголовков CORS и выглядит как сетевая ошибка: безопасные запросы (GET, POST с Idempotency-Key) после короткой паузы можно повторить.

Размер файла, число страниц и число полей схемы

  • Один файл — не больше 50 МБ (MAX_FILE_BYTES). Больший файл — 413 file_too_large ещё до начала обработки;
  • документ — не больше 200 страниц (MAX_PAGES) за один прогон. Больше — too_many_pages; разбейте документ на части, см. «Большие файлы»;
  • схема — не больше 200 полей (MAX_SCHEMA_FIELDS), считая каждое использование $ref отдельно. Больше — invalid_schema; подробнее о допустимом подмножестве JSON Schema — «Поддерживаемый JSON Schema».

Что дальше