{"openapi":"3.1.0","info":{"title":"Typizer API","version":"1","description":"Typizer превращает документы (PDF, сканы, офисные файлы) в JSON по вашей схеме.\n\nАвторизация — ключом API (`Authorization: Bearer tz_live_…`) или, в Кабинете, cookie сессии.\nСессия, действующая от имени другой своей организации, указывает её в `Typizer-Organization`.\nОшибки — RFC 9457 `application/problem+json` со стабильным `code`; каждый ответ несёт `X-Request-Id`.\nPOST, поддерживающий `Idempotency-Key`, 24 часа повторяет свой первый результат.","contact":{"name":"Typizer","url":"https://typizer.ru"}},"servers":[{"url":"https://api.typizer.ru"}],"tags":[{"name":"Auth","x-displayName":"Вход","description":"Начало входа в Кабинет (остальные `/auth/*` — собственные маршруты Better Auth)."},{"name":"Account","x-displayName":"Аккаунт","description":"Вошедший пользователь."},{"name":"Organization","x-displayName":"Организация","description":"Организация, от имени которой выполняется запрос."},{"name":"API keys","x-displayName":"Ключи API","description":"Ключи для вызовов с сервера (`Authorization: Bearer`)."},{"name":"Files","x-displayName":"Файлы","description":"Загруженные исходные документы."},{"name":"Typizers","x-displayName":"Типизаторы","description":"Сохранённые схемы извлечения и их версии."},{"name":"Runs","x-displayName":"Прогоны","description":"Прогоны извлечения: один документ через типизатор или разовую схему."},{"name":"Batches","x-displayName":"Пакеты","description":"Много документов через один типизатор."},{"name":"Webhooks","x-displayName":"Вебхуки","description":"Конечные точки, получающие события прогонов и пакетов, и их доставки."},{"name":"Billing","x-displayName":"Биллинг","description":"Баланс страниц, расход, платежи и закрывающие документы."},{"name":"Agent","x-displayName":"Ассистент","description":"ИИ-ассистент Кабинета для построения схем (только сессия)."},{"name":"Demo","x-displayName":"Демо","description":"Демо на лендинге (без аккаунта; с лимитом на адрес)."},{"name":"Status","x-displayName":"Статус","description":"Состояние сервиса и плановые работы."},{"name":"Consents","x-displayName":"Согласия","description":"Необязательные согласия (аналитические cookie, маркетинг)."},{"name":"Meta","x-displayName":"Метаданные","description":"Это описание API."}],"components":{"schemas":{"LoginChallenge":{"type":"object","properties":{"object":{"type":"string","enum":["login_challenge"]},"expires_in":{"type":"integer"}},"required":["object","expires_in"]},"Problem":{"type":"object","properties":{"type":{"type":"string","format":"uri","example":"https://docs.typizer.ru/errors/not_found"},"title":{"type":"string","example":"Not found"},"status":{"type":"integer","example":404},"detail":{"type":"string","example":"Not found"},"code":{"type":"string","enum":["invalid_request","invalid_id","invalid_schema","unsupported_schema_feature","file_too_large","unsupported_file_type","too_many_pages","unauthorized","forbidden","insufficient_scope","not_found","conflict","idempotency_conflict","insufficient_balance","rate_limited","extraction_failed","document_unreadable","upstream_unavailable","internal_error"]},"param":{"type":"string","description":"Путь к ошибочному полю через точку"},"request_id":{"type":"string","description":"То же, что заголовок ответа `X-Request-Id`"},"doc_url":{"type":"string","format":"uri","example":"https://docs.typizer.ru/errors/not_found"},"batch_id":{"type":"string","description":"Частично созданный пакет (409 `conflict` на `POST /v1/batches`)"},"created":{"type":"integer","description":"Сколько прогонов в этом пакете (вместе с `batch_id`)"},"expected":{"type":"integer","description":"Сколько документов прислал запрос (вместе с `batch_id`)"},"retry_after":{"type":"integer","description":"Сколько секунд подождать перед повтором: только в результатах инструментов MCP, где нет заголовка `Retry-After`"}},"required":["type","title","status","detail","code","request_id","doc_url"]},"LoginStartRequest":{"type":"object","properties":{"email":{"type":"string","maxLength":254},"callback_url":{"type":"string","maxLength":2048},"consents":{"type":"object","properties":{"pd_processing":{"type":"object","properties":{"version":{"type":"string","minLength":1,"maxLength":32}},"required":["version"]}}}},"required":["email"]},"Checkout":{"type":"object","properties":{"payment_id":{"type":"string","example":"pay_…"},"payment_url":{"type":"string","format":"uri","description":"Платёжная форма банка; перенаправьте туда пользователя"}},"required":["payment_id","payment_url"]},"CheckoutRequest":{"type":"object","properties":{"package_code":{"type":"string","enum":["start","basic","business","pro","scale"],"example":"start"},"autotopup":{"type":"object","properties":{"consent":{"type":"boolean","enum":[true],"description":"Пользователь согласился с условиями автоплатежей (376-ФЗ); должно быть `true`"},"doc_version":{"type":"string","minLength":1,"maxLength":64,"description":"Версия документа об автоплатежах, с которой согласился пользователь (текущая)"},"threshold_pages":{"type":"integer","minimum":1,"maximum":1000000,"description":"Пополнять, когда баланс опустится ниже этого значения. По умолчанию — 20 % пакета"}},"required":["consent","doc_version"],"description":"Включить автопополнение этим платежом: карта (или T-Pay) сохраняется для повторных списаний за тот же пакет"}},"required":["package_code"]},"CompanyList":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/Company"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]},"Company":{"type":"object","properties":{"object":{"type":"string","enum":["company"]},"inn":{"type":"string"},"kpp":{"type":["string","null"]},"ogrn":{"type":["string","null"]},"name":{"type":"string"},"address":{"type":["string","null"]},"type":{"type":"string","enum":["legal","individual"]},"status":{"type":"string","enum":["active","liquidating","liquidated","bankrupt","reorganizing"]}},"required":["object","inn","kpp","ogrn","name","address","type","status"]},"BillingProfile":{"type":"object","properties":{"object":{"type":"string","enum":["billing_profile"]},"inn":{"type":["string","null"]},"kpp":{"type":["string","null"]},"ogrn":{"type":["string","null"]},"legal_name":{"type":["string","null"]},"address":{"type":["string","null"]},"docs_email":{"type":["string","null"]},"company_status":{"type":["string","null"],"description":"Статус в реестре на момент последнего сохранения (`ACTIVE`, `LIQUIDATED`, …), если известен"},"autotopup":{"type":"object","properties":{"enabled":{"type":"boolean"},"package_code":{"type":["string","null"]},"threshold_pages":{"type":["integer","null"]},"has_saved_card":{"type":"boolean"},"notice_at":{"type":["string","null"],"format":"date-time"},"consent_at":{"type":["string","null"],"format":"date-time"}},"required":["enabled","package_code","threshold_pages","has_saved_card","notice_at","consent_at"]},"inn_bonus_granted":{"type":"boolean","description":"GET: организация получила бонус за ИНН. PUT: бонус начислен этим запросом."}},"required":["object","inn","kpp","ogrn","legal_name","address","docs_email","company_status","autotopup","inn_bonus_granted"]},"UpdateBillingProfileRequest":{"type":"object","properties":{"inn":{"type":"string","example":"7707083893"},"kpp":{"type":["string","null"],"description":"Обязателен для 10-значного ИНН"},"ogrn":{"type":["string","null"]},"legal_name":{"type":"string","minLength":1,"maxLength":300},"address":{"type":"string","minLength":1,"maxLength":500},"docs_email":{"type":"string","maxLength":254,"format":"email"}},"required":["inn","legal_name","address","docs_email"]},"Payment":{"type":"object","properties":{"id":{"type":"string","example":"pay_…"},"object":{"type":"string","enum":["payment"]},"method":{"type":"string","enum":["card","invoice","autotopup"]},"status":{"type":"string","enum":["new","pending","authorized","confirmed","rejected","canceled","refunded","partial_refunded"]},"package_code":{"type":"string"},"pages":{"type":"integer"},"amount_kopecks":{"type":"integer"},"refunded_kopecks":{"type":"integer"},"payment_source":{"type":["string","null"],"description":"Способ оплаты, как его сообщает банк (`cards`, `qrsbp`, `TinkoffPay`, …); `null`, пока неизвестен"},"created_at":{"type":"string","format":"date-time"},"confirmed_at":{"type":["string","null"],"format":"date-time"},"invoice":{"type":["object","null"],"properties":{"id":{"type":"string","example":"inv_…"},"number":{"type":"string"},"status":{"type":"string","enum":["sent","paid","expired","canceled"]},"due_date":{"type":"string","format":"date"},"pdf_url":{"type":"string","format":"uri","description":"PDF счёта от банка"},"paid_at":{"type":["string","null"],"format":"date-time"}},"required":["id","number","status","due_date","pdf_url","paid_at"]},"act":{"type":["object","null"],"properties":{"id":{"type":"string","example":"act_…"},"number":{"type":"integer"},"issued_at":{"type":["string","null"],"format":"date-time"},"pdf_url":{"type":"string","example":"/v1/billing/acts/act_…/pdf"},"edo":{"type":["object","null"],"properties":{"status":{"type":"string"},"sent_at":{"type":["string","null"],"format":"date-time"},"signed_at":{"type":["string","null"],"format":"date-time"}},"required":["status","sent_at","signed_at"]}},"required":["id","number","issued_at","pdf_url","edo"]}},"required":["id","object","method","status","package_code","pages","amount_kopecks","refunded_kopecks","payment_source","created_at","confirmed_at","invoice","act"]},"CreateInvoiceRequest":{"type":"object","properties":{"package_code":{"type":"string","enum":["start","basic","business","pro","scale"],"example":"basic"}},"required":["package_code"]},"UpdateAutotopupRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"package_code":{"type":"string","enum":["start","basic","business","pro","scale"]},"threshold_pages":{"type":"integer","minimum":1,"maximum":1000000},"consent":{"type":"object","properties":{"doc_version":{"type":"string","minLength":1,"maxLength":64,"description":"Версия документа об автоплатежах, с которой согласился пользователь (текущая)"}},"required":["doc_version"],"description":"Обязательно при `enabled: true` (376-ФЗ)"}},"required":["enabled"]},"ContractRequest":{"type":"object","properties":{"id":{"type":"string","example":"crq_…"},"object":{"type":"string","enum":["contract_request"]},"status":{"type":"string","enum":["requested","generated","sent","signed","rejected"]},"number":{"type":["integer","null"]},"delivery":{"type":["string","null"],"enum":["edo","email",null],"description":"Как отправлен договор: через Диадок или письмом на адрес для документов"},"created_at":{"type":"string","format":"date-time"},"pdf_url":{"type":["string","null"],"example":"/v1/billing/contract_requests/crq_…/pdf"},"edo":{"type":["object","null"],"properties":{"status":{"type":"string"},"sent_at":{"type":["string","null"],"format":"date-time"},"signed_at":{"type":["string","null"],"format":"date-time"}},"required":["status","sent_at","signed_at"]}},"required":["id","object","status","number","delivery","created_at","pdf_url","edo"]},"ContractRequestList":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/ContractRequest"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]},"PaymentList":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/Payment"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]},"ConsentRequest":{"type":"object","properties":{"kind":{"type":"string","enum":["cookies_analytics","marketing"],"description":"`cookies_analytics` (баннер cookie на typizer.ru или docs.typizer.ru, аккаунт не нужен) или `marketing` (только сессия)"},"granted":{"type":"boolean","description":"`false` отзывает согласие"},"doc_version":{"type":"string","minLength":1,"maxLength":32,"description":"Текущая версия документа согласия (`cookies` или `marketing-consent`)","example":"1.0.0"},"site":{"type":"string","enum":["typizer.ru","docs.typizer.ru","my.typizer.ru"],"description":"Сайт, на котором принято решение. Необязательно: сервер всё равно определяет сайт по заголовку Origin и записывает его; если поле передано и не совпадает с Origin — 400.","example":"docs.typizer.ru"}},"required":["kind","granted","doc_version"],"additionalProperties":false},"DemoSampleList":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/DemoSample"}}},"required":["object","data"]},"DemoSample":{"type":"object","properties":{"id":{"type":"string","enum":["invoice","contract","upd"]},"title":{"type":"string"},"pages":{"type":"integer"},"prompt":{"type":"string"},"file_url":{"type":"string","description":"PDF образца на лендинге"}},"required":["id","title","pages","prompt","file_url"]},"DemoRun":{"type":"object","properties":{"id":{"type":["string","null"],"example":"run_…","description":"`null` у ответа из кеша"},"object":{"type":"string","enum":["demo_run"]},"status":{"type":"string","enum":["queued","processing","succeeded","failed"]},"cached":{"type":"boolean"},"schema":{"description":"Схема, сгенерированная по запросу"},"output":{"description":"Извлечённые данные — после успешного завершения (хранятся 1 ч)"},"fields":{},"pages":{"type":"object","properties":{"physical":{"type":["integer","null"]},"billed":{"type":"integer"}},"required":["physical","billed"]},"token":{"type":"string","description":"Нет у ответа из кеша: передайте его как `?token=` в `GET /v1/demo/runs/{id}`"},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"required":["id","object","status","cached","pages"]},"DemoRunRequest":{"type":"object","properties":{"sample":{"type":"string","enum":["invoice","contract","upd"],"description":"Один из образцов `GET /v1/demo/samples`"},"prompt":{"type":"string","minLength":1,"maxLength":500,"description":"Что извлечь, своими словами (1–500 символов)","example":"Номер и дата счёта, продавец с ИНН, итого"}},"required":["sample","prompt"],"additionalProperties":false},"Status":{"type":"object","properties":{"object":{"type":"string","enum":["status"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/MaintenanceEvent"}}},"required":["object","data"]},"MaintenanceEvent":{"type":"object","properties":{"id":{"type":"string","example":"mnt_…"},"object":{"type":"string","enum":["maintenance_event"]},"kind":{"type":"string","enum":["planned","incident"],"description":"`planned` — анонсированные плановые работы; `incident` — внеплановый сбой"},"title":{"type":"string"},"message_ru":{"type":"string","description":"Текст на русском, Markdown"},"components":{"type":"array","items":{"type":"string","enum":["api","processing","cabinet","web","docs","mcp"]},"description":"Затронутые части сервиса"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["scheduled","in_progress"]}},"required":["id","object","kind","title","message_ru","components","starts_at","ends_at","status"]},"Me":{"type":"object","properties":{"object":{"type":"string","enum":["me"]},"auth":{"type":"string","enum":["api_key","session"]},"organization":{"type":"object","properties":{"id":{"type":"string","example":"org_…"},"name":{"type":"string"}},"required":["id","name"]},"user":{"type":["object","null"],"properties":{"id":{"type":"string","example":"usr_…"},"email":{"type":"string"},"name":{"type":"string"},"two_factor_enabled":{"type":"boolean"}},"required":["id","email","name","two_factor_enabled"],"description":"`null` для ключа API"},"role":{"type":["string","null"],"enum":["owner","admin","member",null],"description":"Роль в текущей организации; `null` для ключа API"},"api_key":{"type":["object","null"],"properties":{"id":{"type":"string","example":"key_…"},"name":{"type":"string"},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/Scope"}}},"required":["id","name","scopes"],"description":"Вызывающий ключ; `null` для сессии"},"organizations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":"string","enum":["owner","admin","member"]}},"required":["id","name","role"]},"description":"Все организации, где состоит пользователь; только для сессии"},"features":{"type":"object","properties":{"billing_enabled":{"type":"boolean"},"edo_diadoc":{"type":"boolean"}},"required":["billing_enabled","edo_diadoc"],"description":"Флаги функций текущей организации"}},"required":["object","auth","organization","user","role","api_key","features"]},"Scope":{"type":"string","enum":["typizers:read","typizers:write","runs:read","runs:write","billing:read"]},"SignInList":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/SignIn"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"],"description":"50 последних входов. Без пагинации: `has_more` сообщает, что есть более старые, `next_cursor` всегда `null`."},"SignIn":{"type":"object","properties":{"object":{"type":"string","enum":["sign_in"]},"created_at":{"type":"string","format":"date-time"},"ip":{"type":["string","null"],"description":"Адрес, с которого выполнен вход; `null`, если неизвестен"},"user_agent":{"type":"string"}},"required":["object","created_at","ip","user_agent"]},"MyConsents":{"type":"object","properties":{"object":{"type":"string","enum":["consents"]},"marketing":{"$ref":"#/components/schemas/MarketingConsentState"}},"required":["object","marketing"]},"MarketingConsentState":{"type":"object","properties":{"granted":{"type":"boolean","description":"Последнее решение пользователя: `true` — согласие дано, `false` — отозвано или не давалось"},"version":{"type":["string","null"],"description":"Версия документа согласия в последнем решении; `null`, если решения не было","example":"1.0.0"},"updated_at":{"type":["string","null"],"format":"date-time","description":"Когда принято последнее решение; `null`, если решения не было"}},"required":["granted","version","updated_at"]},"ApiKey":{"type":"object","properties":{"id":{"type":"string","example":"key_…"},"object":{"type":"string","enum":["api_key"]},"name":{"type":"string"},"prefix":{"type":"string","description":"Первые 16 символов ключа, чтобы различать ключи","example":"tz_live_ab12cd34"},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/Scope"}},"last_used_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"created_by":{"type":"object","properties":{"id":{"type":"string","example":"usr_…"},"name":{"type":"string"},"email":{"type":"string"},"active":{"type":"boolean","description":"Создатель всё ещё состоит в организации и не заблокирован. Ключ работает, только пока его создатель активен."}},"required":["id","name","email","active"],"description":"Кто создал ключ"}},"required":["id","object","name","prefix","scopes","last_used_at","created_at","created_by"]},"CreatedApiKey":{"allOf":[{"$ref":"#/components/schemas/ApiKey"},{"type":"object","properties":{"secret":{"type":"string","description":"Сам ключ — в ответе на создавший его запрос и только там: его нет в списке и нет в ответе-повторе по `Idempotency-Key`.","example":"tz_live_…"}}}]},"CreateApiKeyRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[^\\p{Cc}]+$/u"},"scopes":{"type":"array","items":{"$ref":"#/components/schemas/Scope"},"description":"По умолчанию — все скоупы. Повторы отбрасываются."}},"required":["name"]},"DeletedApiKey":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["api_key"]},"deleted":{"type":"boolean","enum":[true]}},"required":["id","object","deleted"]},"Organization":{"type":"object","properties":{"id":{"type":"string","example":"org_…"},"object":{"type":"string","enum":["organization"]},"name":{"type":"string"},"settings":{"type":"object","properties":{"file_retention":{"type":"string","enum":["immediate","h24","d7","d30"],"description":"Сколько хранятся загруженные файлы: `immediate` (удаляются после прогона), 24 ч, 7 или 30 дней"},"output_retention":{"type":"string","enum":["none","d30","d90"],"description":"Сколько хранятся результаты прогонов: `none`, 30 или 90 дней"}},"required":["file_retention","output_retention"]}},"required":["id","object","name","settings"]},"UpdateOrganizationRequest":{"type":"object","properties":{"file_retention":{"type":"string","enum":["immediate","h24","d7","d30"],"description":"Сколько хранятся загруженные файлы: `immediate` (удаляются после прогона), 24 ч, 7 или 30 дней"},"output_retention":{"type":"string","enum":["none","d30","d90"],"description":"Сколько хранятся результаты прогонов: `none`, 30 или 90 дней"}},"additionalProperties":false},"File":{"type":"object","properties":{"id":{"type":"string","example":"file_…"},"object":{"type":"string","enum":["file"]},"filename":{"type":"string","description":"Имя, под которым файл загружен (очищенное)"},"mime":{"type":"string","description":"Тип, определённый по содержимому, — не по имени и не со слов клиента","example":"application/pdf"},"size_bytes":{"type":"integer"},"pages_estimate":{"type":["integer","null"],"description":"Сколько страниц прогон, по оценке, оплатит до старта; прогон оплачивает фактическое число"},"source":{"type":"string","enum":["api","my","mcp","demo","agent"]},"expires_at":{"type":["string","null"],"format":"date-time","description":"Когда файл будет удалён по сроку хранения файлов организации"},"created_at":{"type":"string","format":"date-time"}},"required":["id","object","filename","mime","size_bytes","pages_estimate","source","expires_at","created_at"]},"DeletedFile":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["file"]},"deleted":{"type":"boolean","enum":[true]}},"required":["id","object","deleted"]},"Typizer":{"type":"object","properties":{"id":{"type":"string","example":"tz_…"},"object":{"type":"string","enum":["typizer"]},"name":{"type":"string"},"description":{"type":["string","null"]},"version":{"type":"integer","description":"Текущая версия"},"schema":{"type":"object","additionalProperties":{},"description":"Схема текущей версии"},"instructions":{"type":"string"},"default_format":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"Формат выгрузки прогона, если формат не указан"},"mode":{"type":"string","enum":["standard","precise"],"description":"`precise` перепроверяет извлечение (оплачивается больше страниц)"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","object","name","description","version","schema","instructions","default_format","mode","created_at","updated_at"]},"CreateTypizerRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"schema":{"type":"object","additionalProperties":true,"description":"Подмножество JSON Schema (draft 2020-12) с корнем `object`: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата. Имена полей — буквы, десятичные цифры, `_` и `-`, начинаются с буквы или `_` (они становятся именами элементов XML). Порядок `properties` сохраняется: по нему идут столбцы результата, элементы XML и XSD."},"instructions":{"type":"string","maxLength":4000,"description":"Дополнительные указания для извлечения, передаются модели вместе со схемой"},"default_format":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"Формат выгрузки прогона, если формат не указан"},"mode":{"type":"string","enum":["standard","precise"],"description":"`precise` перепроверяет извлечение (оплачивается больше страниц)"}},"required":["name","schema"],"additionalProperties":false},"TypizerDraft":{"type":"object","properties":{"object":{"type":"string","enum":["typizer_draft"]},"name":{"type":"string"},"schema":{"type":"object","additionalProperties":{},"description":"Подмножество JSON Schema (draft 2020-12) с корнем `object`: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата. Имена полей — буквы, десятичные цифры, `_` и `-`, начинаются с буквы или `_` (они становятся именами элементов XML). Порядок `properties` сохраняется: по нему идут столбцы результата, элементы XML и XSD."},"instructions":{"type":"string"}},"required":["object","name","schema","instructions"]},"GenerateTypizerRequest":{"type":"object","properties":{"description":{"type":"string","maxLength":4000,"description":"Что это за документы и какие данные извлекать"},"file_id":{"type":"string","maxLength":64,"example":"file_…","description":"Документ-образец: модели показываются его первые 10 страниц"}},"additionalProperties":false},"UpdateTypizerRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"schema":{"type":"object","additionalProperties":true,"description":"Подмножество JSON Schema (draft 2020-12) с корнем `object`: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата. Имена полей — буквы, десятичные цифры, `_` и `-`, начинаются с буквы или `_` (они становятся именами элементов XML). Порядок `properties` сохраняется: по нему идут столбцы результата, элементы XML и XSD."},"instructions":{"type":"string","maxLength":4000,"description":"Дополнительные указания для извлечения, передаются модели вместе со схемой"},"default_format":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"Формат выгрузки прогона, если формат не указан"},"mode":{"type":"string","enum":["standard","precise"],"description":"`precise` перепроверяет извлечение (оплачивается больше страниц)"}},"additionalProperties":false},"DeletedTypizer":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["typizer"]},"deleted":{"type":"boolean","enum":[true]}},"required":["id","object","deleted"]},"TypizerVersion":{"type":"object","properties":{"id":{"type":"string","example":"tzv_…"},"object":{"type":"string","enum":["typizer_version"]},"typizer_id":{"type":"string","example":"tz_…"},"version":{"type":"integer"},"schema":{"type":"object","additionalProperties":{}},"instructions":{"type":"string"},"created_at":{"type":"string","format":"date-time"}},"required":["id","object","typizer_id","version","schema","instructions","created_at"]},"Run":{"type":"object","properties":{"id":{"type":"string","example":"run_…"},"object":{"type":"string","enum":["run"]},"status":{"type":"string","enum":["queued","processing","succeeded","failed"]},"typizer_id":{"type":["string","null"],"description":"`null` у прогонов `POST /v1/extract`"},"typizer_version":{"type":["integer","null"]},"mode":{"type":"string","enum":["standard","precise"]},"format":{"type":"string","enum":["json","xml","csv","xlsx"]},"source":{"type":"string","enum":["api","my","mcp","demo","agent"]},"pages":{"type":"object","properties":{"physical":{"type":["integer","null"]},"billed":{"type":["integer","null"]}},"required":["physical","billed"]},"output":{"description":"Извлечённые данные — после успешного завершения"},"fields":{"type":["object","null"],"additionalProperties":{}},"output_expired":{"type":"boolean"},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]},"file_id":{"type":"string"},"file":{"type":["object","null"],"properties":{"filename":{"type":"string"},"mime":{"type":"string"}},"required":["filename","mime"]},"batch_id":{"type":["string","null"]},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"created_at":{"type":"string","format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"}},"required":["id","object","status","typizer_id","typizer_version","mode","format","source","pages","fields","output_expired","error","file_id","file","batch_id","metadata","created_at","completed_at"]},"CreateRunRequest":{"type":"object","properties":{"file_id":{"type":"string","maxLength":64,"example":"file_…","description":"Файл, загруженный через `POST /v1/files`"},"url":{"type":"string","maxLength":2048,"description":"Публичный URL `http(s)`, с которого скачать документ (не больше 50 МиБ, 30 с)"},"webhook_url":{"type":"string","maxLength":2048,"description":"Публичный URL `https`, на который придёт вебхук `run.succeeded`/`run.failed` этого прогона. Если у организации нет конечной точки с этим URL, она создаётся (без подписки на другие события). 409 `conflict`, если конечная точка организации с этим URL отключена: включите её снова, чтобы использовать."},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Ваши собственные пары ключ/значение; возвращаются с прогоном и в его вебхуках: не больше 20 ключей длиной 1–40 символов, строковые значения не длиннее 500 символов","example":{"order_id":"12345"}},"format":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"По умолчанию — `default_format` типизатора"},"mode":{"type":"string","enum":["standard","precise"],"description":"По умолчанию — `mode` типизатора"}},"additionalProperties":false},"Batch":{"type":"object","properties":{"id":{"type":"string","example":"batch_…"},"object":{"type":"string","enum":["batch"]},"typizer_id":{"type":"string"},"status":{"type":"string","enum":["processing","completed"]},"total":{"type":"integer"},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"}},"required":["id","object","typizer_id","status","total","succeeded","failed","created_at","completed_at"]},"CreateBatchRequest":{"type":"object","properties":{"typizer_id":{"type":"string","maxLength":64,"example":"tz_…"},"file_ids":{"type":"array","items":{"type":"string","maxLength":64},"minItems":1,"maxItems":500,"description":"1–500 файлов, загруженных через `POST /v1/files`, по прогону на каждый, в этом порядке"},"format":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"`format` каждого прогона. По умолчанию — `default_format` типизатора"},"mode":{"type":"string","enum":["standard","precise"],"description":"`mode` каждого прогона. По умолчанию — `mode` типизатора"},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Передаётся каждому прогону","example":{"order_id":"12345"}}},"required":["typizer_id","file_ids"],"additionalProperties":false},"ExtractRequest":{"type":"object","properties":{"schema":{"type":"object","additionalProperties":true,"description":"Подмножество JSON Schema (draft 2020-12) с корнем `object`: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата. Имена полей — буквы, десятичные цифры, `_` и `-`, начинаются с буквы или `_` (они становятся именами элементов XML). Порядок `properties` сохраняется: по нему идут столбцы результата, элементы XML и XSD."},"instructions":{"type":"string","maxLength":4000,"description":"Дополнительные указания для извлечения, передаются модели вместе со схемой"},"file_id":{"type":"string","maxLength":64,"example":"file_…","description":"Файл, загруженный через `POST /v1/files`"},"url":{"type":"string","maxLength":2048,"description":"Публичный URL `http(s)`, с которого скачать документ (не больше 50 МиБ, 30 с)"},"webhook_url":{"type":"string","maxLength":2048,"description":"Публичный URL `https`, на который придёт вебхук `run.succeeded`/`run.failed` этого прогона. Если у организации нет конечной точки с этим URL, она создаётся (без подписки на другие события). 409 `conflict`, если конечная точка организации с этим URL отключена: включите её снова, чтобы использовать."},"metadata":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"description":"Ваши собственные пары ключ/значение; возвращаются с прогоном и в его вебхуках: не больше 20 ключей длиной 1–40 символов, строковые значения не длиннее 500 символов","example":{"order_id":"12345"}},"format":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"По умолчанию — `json`"},"mode":{"type":"string","enum":["standard","precise"],"description":"По умолчанию — `standard`"}},"required":["schema"],"additionalProperties":false},"WebhookEndpoint":{"type":"object","properties":{"id":{"type":"string","example":"whe_…"},"object":{"type":"string","enum":["webhook_endpoint"]},"url":{"type":"string"},"events":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"description":"События по подписке. У конечной точки, созданной для `webhook_url` прогона, подписок сначала нет: она получает только события таких прогонов."},"status":{"type":"string","enum":["active","disabled"],"description":"`disabled` — ничего не получает. Конечная точка, доставки на которую не удаются 72 часа, отключается."},"secret":{"type":["string","null"],"description":"Секрет подписи (`whsec_…`, Standard Webhooks). Показывается ключу или сессии со скоупом `runs:write`; иначе `null`, как и в ответе-повторе по `Idempotency-Key`."},"failing_since":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}},"required":["id","object","url","events","status","secret","failing_since","created_at"]},"WebhookEventType":{"type":"string","enum":["run.succeeded","run.failed","batch.completed","balance.low"],"description":"Событие вебхука: `run.succeeded` — прогон завершился успешно; `run.failed` — прогон завершился неудачей; `batch.completed` — все прогоны пакета закончены; `balance.low` — баланс страниц стал низким"},"CreateWebhookEndpointRequest":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"description":"Публичный URL `https:` (без имени пользователя и пароля; IP-адрес должен быть публичным). Хост разрешается и проверяется заново при каждой доставке.","example":"https://example.com/typizer/webhooks"},"events":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"minItems":1,"maxItems":16,"description":"События, которые получает конечная точка: непустое подмножество; повторы отбрасываются"}},"required":["url","events"],"additionalProperties":false},"UpdateWebhookEndpointRequest":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"description":"Публичный URL `https:` (без имени пользователя и пароля; IP-адрес должен быть публичным). Хост разрешается и проверяется заново при каждой доставке.","example":"https://example.com/typizer/webhooks"},"events":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"minItems":1,"maxItems":16,"description":"События, которые получает конечная точка: непустое подмножество; повторы отбрасываются"},"status":{"type":"string","enum":["active","disabled"],"description":"`active` также сбрасывает `failing_since`"}},"additionalProperties":false},"DeletedWebhookEndpoint":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","enum":["webhook_endpoint"]},"deleted":{"type":"boolean","enum":[true]}},"required":["id","object","deleted"]},"WebhookDelivery":{"type":"object","properties":{"id":{"type":"string","example":"whd_…"},"object":{"type":"string","enum":["webhook_delivery"]},"event_id":{"type":"string","example":"evt_…"},"event_type":{"type":"string"},"status":{"type":"string","enum":["pending","succeeded","failed"]},"attempt":{"type":"integer","description":"Номер текущей или следующей попытки, с 0. Неудачные попытки повторяются через 5 с, 5 мин, 30 мин, 2 ч, 5 ч и 10 ч (попытки 0–6); после последней доставка получает статус `failed`. Ручной повтор — ещё одна попытка."},"response_code":{"type":["integer","null"],"description":"HTTP-статус последней попытки; `null` до первой попытки или если ответ не пришёл"},"next_attempt_at":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"}},"required":["id","object","event_id","event_type","status","attempt","response_code","next_attempt_at","created_at"]},"Balance":{"type":"object","properties":{"object":{"type":"string","enum":["balance"]},"pages_available":{"type":"integer","description":"Страницы, доступные новым прогонам сейчас"},"pages_reserved":{"type":"integer","description":"Страницы, зарезервированные незавершёнными прогонами: списываются при успехе прогона (не больше оплачиваемых страниц), возвращаются при неудаче"},"lots":{"type":"array","items":{"$ref":"#/components/schemas/BalanceLot"},"description":"Лоты с остатком страниц в порядке расходования: сначала те, что истекают раньше, затем бессрочные"}},"required":["object","pages_available","pages_reserved","lots"]},"BalanceLot":{"type":"object","properties":{"source":{"type":"string","enum":["free","inn_bonus","purchase","adjustment"]},"pages_left":{"type":"integer"},"expires_at":{"type":["string","null"],"format":"date-time","description":"`null` у бессрочного лота (`free`, `inn_bonus`, `adjustment`)"}},"required":["source","pages_left","expires_at"]},"Usage":{"type":"object","properties":{"object":{"type":"string","enum":["usage"]},"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"group_by":{"type":"string","enum":["day","typizer","key"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/UsageRow"}},"has_more":{"type":"boolean","description":"Групп больше 1000; в `data` — самые крупные по оплаченным страницам"}},"required":["object","from","to","group_by","data","has_more"]},"UsageRow":{"type":"object","properties":{"key":{"type":["string","null"],"description":"`day`: дата по Москве (`YYYY-MM-DD`); `typizer`: `tz_…`, `null` для прогонов с разовой схемой; `key`: `key_…`, `null` для прогонов из Кабинета"},"runs":{"type":"integer"},"succeeded":{"type":"integer"},"failed":{"type":"integer"},"pages_billed":{"type":"integer","description":"Страницы, списанные за успешные прогоны. Неудачный прогон ничего не стоит (списание возвращается)."}},"required":["key","runs","succeeded","failed","pages_billed"]},"AgentThread":{"type":"object","properties":{"id":{"type":"string","example":"thr_…"},"object":{"type":"string","enum":["agent_thread"]},"typizer_id":{"type":["string","null"],"description":"Типизатор, который диалог редактирует или сохранил; `null` до сохранения"},"sample_file_id":{"type":["string","null"]},"draft_schema":{"type":["object","null"],"additionalProperties":{},"description":"Строящаяся схема; порядок её полей сохраняется"},"created_at":{"type":"string","format":"date-time"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/AgentMessage"},"description":"Последние 200 сообщений, старые первыми (только при чтении одного диалога)"}},"required":["id","object","typizer_id","sample_file_id","draft_schema","created_at"]},"AgentMessage":{"type":"object","properties":{"id":{"type":"string","example":"msg_…"},"object":{"type":"string","enum":["agent_message"]},"role":{"type":"string","enum":["user","assistant","tool"]},"content":{"type":"object","properties":{"text":{"type":"string","description":"Для сообщения `tool` — JSON, который инструмент вернул модели"},"truncated":{"type":"boolean","description":"Ответ оборван (остановлен)"}},"required":["text"]},"created_at":{"type":"string","format":"date-time"}},"required":["id","object","role","content","created_at"]},"CreateAgentThreadRequest":{"type":"object","properties":{"typizer_id":{"type":"string","maxLength":64,"example":"tz_…","description":"Редактировать этот типизатор: его текущая схема становится черновиком"},"sample_file_id":{"type":"string","maxLength":64,"example":"file_…","description":"Документ-образец (не больше 10 страниц) для пробных прогонов"}},"additionalProperties":false},"UpdateAgentThreadRequest":{"type":"object","properties":{"draft_schema":{"type":"object","additionalProperties":true,"description":"Подмножество JSON Schema (draft 2020-12) с корнем `object`: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата. Имена полей — буквы, десятичные цифры, `_` и `-`, начинаются с буквы или `_` (они становятся именами элементов XML). Порядок `properties` сохраняется: по нему идут столбцы результата, элементы XML и XSD."},"sample_file_id":{"type":["string","null"],"maxLength":64,"example":"file_…","description":"Документ-образец (не больше 10 страниц); `null` убирает его"}},"additionalProperties":false},"SaveAgentThreadRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120,"description":"Название нового типизатора (по умолчанию — `title` черновика, иначе «Новый типизатор»); существующий переименовывает"},"description":{"type":["string","null"],"maxLength":1000}},"additionalProperties":false},"CreateAgentMessageRequest":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":8000,"description":"Сообщение пользователя"},"file_id":{"type":"string","maxLength":64,"example":"file_…","description":"Документ-образец (не больше 10 страниц); становится `sample_file_id` диалога"}},"required":["content"],"additionalProperties":false}},"parameters":{"TypizerOrganization":{"name":"Typizer-Organization","in":"header","required":false,"description":"Организация, от имени которой выполняется запрос (`org_…`). По умолчанию сессия действует от имени своей активной организации; ключ API может указать только свою.","schema":{"type":"string"}},"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"description":"1–255 печатных символов ASCII, уникальных для каждой задуманной операции. Повтор с тем же ключом и тем же запросом в течение 24 часов возвращает первый результат (`Idempotent-Replayed: true`); тот же ключ с другим запросом или пока первый ещё выполняется — 409 `idempotency_conflict`.","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x20-\\x7E]+$"}},"IdempotencyKeyIgnored":{"name":"Idempotency-Key","in":"header","required":false,"description":"Принимается для единообразия клиентов и в этой операции игнорируется: ничего не блокируется и не повторяется (некорректное значение всё же может получить 400).","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x20-\\x7E]+$"}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Ключ API (`tz_live_…`). Если операция требует скоупы, они нужны ключу; у сессии есть все скоупы."},"sessionCookie":{"type":"apiKey","in":"cookie","name":"__Secure-better-auth.session_token","description":"Сессия Better Auth в Кабинете (только для браузеров; изменяющим запросам нужен доверенный `Origin`)."}},"headers":{"XRequestId":{"description":"Идентификатор этого запроса (собственный `X-Request-Id` клиента, если он корректен); он же `request_id` в теле ошибки","schema":{"type":"string"}},"TypizerMaintenance":{"description":"Есть, пока идут или анонсированы технические работы: `<mnt_id>; starts=<iso>; ends=<iso>` (подробности: `GET /v1/status`)","schema":{"type":"string"}},"RateLimitLimit":{"description":"Сколько запросов разрешено в текущем окне сработавшего лимита","schema":{"type":"integer"}},"RateLimitRemaining":{"description":"Сколько запросов осталось в этом окне","schema":{"type":"integer"}},"RateLimitReset":{"description":"Через сколько секунд окно сбросится","schema":{"type":"integer"}},"RetryAfter":{"description":"Сколько секунд подождать перед повтором","schema":{"type":"integer"}},"IdempotentReplayed":{"description":"`true`, если этот ответ повторяет более ранний запрос с тем же `Idempotency-Key`","schema":{"type":"string","enum":["true"]}}}},"paths":{"/v1/auth/start":{"post":{"operationId":"startLogin","tags":["Auth"],"summary":"Начать вход: отправить на почту одноразовый код и ссылку для входа","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginStartRequest"}}}},"responses":{"202":{"description":"Письмо отправляется","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginChallenge"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKeyIgnored"}],"description":"Доступ: публичный, без учётных данных."}},"/v1/billing/checkout":{"post":{"operationId":"createCheckout","tags":["Billing"],"summary":"Купить пакет страниц картой, через СБП или другим способом платёжной формы банка","description":"Создаёт платёж и возвращает платёжную форму банка. Страницы зачисляются, когда банк подтвердит платёж.\n\nДоступ: только сессия с ролью owner или admin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}}},"responses":{"201":{"description":"Платёж и его платёжная форма","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Checkout"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/v1/billing/companies/suggest":{"get":{"operationId":"suggestCompanies","tags":["Billing"],"summary":"Найти компании и ИП по названию, ИНН или ОГРН","parameters":[{"schema":{"type":"string","minLength":2,"maxLength":100,"description":"Часть названия, ИНН или ОГРН","example":"ромашка"},"required":true,"description":"Часть названия, ИНН или ОГРН","name":"q","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"До 10 совпадений","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyList"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"description":"Доступ: только сессия."}},"/v1/billing/companies/{inn}":{"get":{"operationId":"getCompany","tags":["Billing"],"summary":"Получить компанию или ИП по ИНН","parameters":[{"schema":{"type":"string","example":"7707083893"},"required":true,"name":"inn","in":"path"},{"schema":{"type":"string","description":"КПП филиала (необязательно)"},"required":false,"description":"КПП филиала (необязательно)","name":"kpp","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Компания","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Company"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"description":"Доступ: только сессия."}},"/v1/billing/profile":{"get":{"operationId":"getBillingProfile","tags":["Billing"],"summary":"Платёжные реквизиты организации и настройки автопополнения","responses":{"200":{"description":"Платёжный профиль","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingProfile"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: только сессия."},"put":{"operationId":"updateBillingProfile","tags":["Billing"],"summary":"Сохранить платёжные реквизиты организации (для счетов и закрывающих документов)","description":"ИНН, КПП и ОГРН проверяются; компания ищется в реестре. Разовый бонус за ИНН начисляется, когда организация оплатила пакет и её ИНН принадлежит действующей компании: при этом сохранении, если оплата уже была, иначе после первой оплаты.\n\nДоступ: только сессия с ролью owner или admin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBillingProfileRequest"}}}},"responses":{"200":{"description":"Сохранённый профиль","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingProfile"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}]}},"/v1/billing/acts/{id}/pdf":{"get":{"operationId":"getActPdf","tags":["Billing"],"summary":"Скачать акт оказанных услуг в PDF","description":"Всегда скачивание (Content-Disposition: attachment). Не больше 2 скачиваний одновременно на организацию (и на пользователя): сверх этого 429 с Retry-After.\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"act_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Акт","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}},"/v1/billing/invoices":{"post":{"operationId":"createInvoice","tags":["Billing"],"summary":"Запросить счёт на пакет страниц (для компаний и ИП)","description":"Нужен платёжный профиль с ИНН. Банк выставляет счёт и отправляет его на почту; страницы зачисляются после оплаты.\n\nДоступ: только сессия с ролью owner или admin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceRequest"}}}},"responses":{"201":{"description":"Платёж со счётом","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/v1/billing/autotopup":{"patch":{"operationId":"updateAutotopup","tags":["Billing"],"summary":"Включить автопополнение (с согласием) или выключить, сменить пакет или порог","description":"Для включения нужна карта, сохранённая при оплате с согласием на автопополнение (иначе 409). Выключение также удаляет сохранённую карту.\n\nДоступ: только сессия с ролью owner или admin.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAutotopupRequest"}}}},"responses":{"200":{"description":"Платёжный профиль","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingProfile"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}]}},"/v1/billing/contract_requests":{"post":{"operationId":"createContractRequest","tags":["Billing"],"summary":"Запросить подписанный договор (для компаний и ИП)","description":"Договор составляется по платёжному профилю и отправляется через Диадок или письмом на адрес для документов. Не больше 5 запросов на организацию в сутки. Новый запрос отклоняется, пока предыдущий в работе; договор, отправленный письмом, перестаёт считаться в работе через 30 дней.\n\nДоступ: только сессия с ролью owner или admin.","responses":{"201":{"description":"Запрос","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContractRequest"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]},"get":{"operationId":"listContractRequests","tags":["Billing"],"summary":"Запросы договоров организации, новые первыми","responses":{"200":{"description":"100 последних запросов; `has_more` показывает, есть ли более старые (без пагинации).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContractRequestList"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: только сессия."}},"/v1/billing/contract_requests/{id}/pdf":{"get":{"operationId":"getContractRequestPdf","tags":["Billing"],"summary":"Скачать запрошенный договор в PDF","description":"Всегда скачивание (Content-Disposition: attachment). Не больше 2 скачиваний одновременно на организацию (и на пользователя).\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"crq_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Договор","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}},"/v1/billing/payments":{"get":{"operationId":"listPayments","tags":["Billing"],"summary":"Платежи организации, новые первыми","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница платежей","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentList"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"description":"Доступ: только сессия."}},"/v1/billing/payments/{id}":{"get":{"operationId":"getPayment","tags":["Billing"],"summary":"Получить платёж со счётом и актом","parameters":[{"schema":{"type":"string","example":"pay_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Платёж","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"description":"Доступ: только сессия."}},"/v1/consents":{"post":{"operationId":"createConsent","tags":["Consents"],"summary":"Записать необязательное согласие (аналитические cookie, маркетинг)","description":"Записывает в журнал одно решение: согласие дано или отозвано. Вызывается с typizer.ru, docs.typizer.ru и из Кабинета, поэтому нужен собственный Origin; сайт, на котором принято решение, сервер определяет по Origin и записывает в журнал. Cookie сессии необязательна: с ней запись привязывается к аккаунту; для marketing она нужна (без неё 401). doc_version должна быть текущей версией документа. 120 запросов в минуту с одного адреса. Idempotency-Key игнорируется.\n\nДоступ: публичный; сессия необязательна (с ней запрос выполняется от имени её пользователя).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentRequest"}}}},"responses":{"204":{"description":"Записано","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKeyIgnored"}]}},"/v1/demo/samples":{"get":{"operationId":"listDemoSamples","tags":["Demo"],"summary":"Образцы для демо на лендинге","description":"Без авторизации. Синтетические документы-образцы и запрос, показываемый для каждого. Как и любой вызов /v1, входит в общий лимит запросов с одного адреса (429 с Retry-After).\n\nДоступ: публичный, без учётных данных.","responses":{"200":{"description":"Образцы","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoSampleList"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"}}}},"security":[]}},"/v1/demo/runs":{"post":{"operationId":"createDemoRun","tags":["Demo"],"summary":"Запустить демо на лендинге","description":"Без авторизации; вызывается с лендинга (нужен собственный Origin). JSON {sample, prompt} запускает образец: на его собственный запрос ответ приходит сразу из заранее посчитанного результата, на пресет галереи — из кеша или настоящим прогоном, на любой другой запрос — настоящим прогоном. Multipart (file, prompt, consent_pd, consent_version) запускает ваш PDF или изображение не больше 3 страниц; файл удаляется сразу после прогона, а результат хранится 1 ч. Прогоны, на которые нет ответа в кеше, ограничены 3 на адрес в сутки (по Москве) и общим дневным лимитом сервиса (429, Retry-After до полуночи); запросы — 30 в минуту с одного адреса. Idempotency-Key игнорируется. 200 с завершённым прогоном, иначе 202: опрашивайте GET /v1/demo/runs/{id}?token=.\n\nДоступ: публичный, без учётных данных.","parameters":[{"schema":{"type":["integer","null"],"minimum":0,"maximum":60,"example":60,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202."},"required":false,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202.","name":"wait","in":"query"},{"$ref":"#/components/parameters/IdempotencyKeyIgnored"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRunRequest"}},"multipart/form-data":{"schema":{"type":"object","required":["file","prompt","consent_pd","consent_version"],"properties":{"file":{"type":"string","format":"binary","description":"PDF или изображение не больше 3 страниц (52428800 байт)"},"prompt":{"type":"string","description":"1–500 символов"},"consent_pd":{"type":"string","enum":["true"],"description":"Согласие на обработку персональных данных для демонстрации (`pd-consent`, цель 2)"},"consent_version":{"type":"string","description":"Текущая версия документа `pd-consent`"}}}}}},"responses":{"200":{"description":"Ответ из кеша или завершённый прогон","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRun"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"202":{"description":"Прогон в очереди или обрабатывается","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRun"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `too_many_pages`: Слишком много страниц","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"415":{"description":"`unsupported_file_type`: Неподдерживаемый тип файла","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"422":{"description":"`document_unreadable`: Документ не читается; `extraction_failed`: Извлечение не удалось","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[]}},"/v1/demo/runs/{id}":{"get":{"operationId":"getDemoRun","tags":["Demo"],"summary":"Получить демо-прогон","description":"Без авторизации: нужен token прогона. Только демо-прогоны; что угодно другое или неверный token — 404. wait (0–60) держит запрос до завершения прогона.\n\nДоступ: публичный, без учётных данных.","parameters":[{"schema":{"type":"string","maxLength":64,"example":"run_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":60,"example":60,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202."},"required":false,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202.","name":"wait","in":"query"},{"schema":{"type":"string","maxLength":64,"description":"`token`, с которым создан прогон"},"required":false,"description":"`token`, с которым создан прогон","name":"token","in":"query"}],"responses":{"200":{"description":"Демо-прогон","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoRun"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[]}},"/v1/status":{"get":{"operationId":"getStatus","tags":["Status"],"summary":"Текущие и предстоящие работы и сбои","description":"Без авторизации. События в статусе in_progress и ещё не закончившиеся scheduled, по времени начала, ранние первыми. Список может отставать до 30 с (Cache-Control: public, max-age=30). Не больше 600 запросов в минуту с одного адреса. Во время работ, затрагивающих API, обработку или MCP, и за 24 ч до них каждый ответ /v1 и /mcp также несёт заголовок Typizer-Maintenance: <id>; starts=<iso>; ends=<iso>.\n\nДоступ: публичный, без учётных данных.","responses":{"200":{"description":"События","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Status"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[]}},"/v1/openapi.json":{"get":{"operationId":"getOpenApiDocument","tags":["Meta"],"summary":"Документ OpenAPI 3.1 этого API","parameters":[{"schema":{"type":"string","description":"`ETag` из прошлого ответа: 304, пока документ не изменился"},"required":false,"description":"`ETag` из прошлого ответа: 304, пока документ не изменился","name":"if-none-match","in":"header"}],"responses":{"200":{"description":"Документ OpenAPI","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"ETag":{"description":"Версия документа","schema":{"type":"string"}},"Cache-Control":{"description":"Всегда `public, max-age=300`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"304":{"description":"Не изменился: `ETag` из `If-None-Match` актуален","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[],"description":"Доступ: публичный, без учётных данных."}},"/v1/me":{"get":{"operationId":"getMe","tags":["Account"],"summary":"Кто вызывает: пользователь или ключ API, организация, флаги функций","responses":{"200":{"description":"Вызывающий","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Me"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: ключ API или сессия."},"delete":{"operationId":"deleteMe","tags":["Account"],"summary":"Удалить аккаунт и отозвать согласие на обработку персональных данных","description":"Только сессия, вход не раньше чем 10 минут назад (иначе 403 forbidden «recent sign-in required»: войдите заново).\n\nТак отзывается согласие на обработку персональных данных (pd-consent, п. 7.3): аккаунт\nобезличивается — удаляются почта, имя и фото, завершаются все сессии, способы входа, ключи API\nи членства, — а личная организация удаляется (файлы и результаты удаляют задачи хранения).\nОтзыв записывается в журнал согласий; платёжные записи хранятся, как требует налоговое\nзаконодательство.\n\nЕсли пользователь — единственный владелец другой организации, ничего не меняется и ответ —\n409 conflict: сначала передайте владение или удалите ту организацию.\n\nДоступ: только сессия.","responses":{"204":{"description":"Аккаунт удалён","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}]}},"/v1/me/sign_ins":{"get":{"operationId":"listSignIns","tags":["Account"],"summary":"Журнал входов текущего пользователя","responses":{"200":{"description":"Входы, новые первыми","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignInList"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: только сессия."}},"/v1/me/consents":{"get":{"operationId":"getMyConsents","tags":["Consents"],"summary":"Узнать, подписан ли пользователь на маркетинговые рассылки","description":"Только сессия: состояние согласия на маркетинговые рассылки по последнему решению текущего пользователя в журнале согласий (дать или отозвать его — POST /v1/consents). Без решений — granted равно false, version и updated_at равны null.\n\nДоступ: только сессия.","responses":{"200":{"description":"Согласия пользователя","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyConsents"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}]}},"/v1/api_keys":{"get":{"operationId":"listApiKeys","tags":["API keys"],"summary":"Активные ключи API организации","responses":{"200":{"description":"Активные ключи, новые первыми; не больше 20 (лимит на организацию). Без пагинации: `next_cursor` всегда `null`.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: только сессия с ролью owner или admin."},"post":{"operationId":"createApiKey","tags":["API keys"],"summary":"Создать ключ API (ключ показывается один раз)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}}},"responses":{"201":{"description":"Ключ с его `secret` — единственный раз, когда он показывается","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedApiKey"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"Доступ: только сессия с ролью owner или admin."}},"/v1/api_keys/{id}":{"delete":{"operationId":"deleteApiKey","tags":["API keys"],"summary":"Отозвать ключ API навсегда","parameters":[{"schema":{"type":"string","example":"key_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Отозван","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedApiKey"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"description":"Доступ: только сессия с ролью owner или admin."}},"/v1/organization":{"get":{"operationId":"getOrganization","tags":["Organization"],"summary":"Текущая организация и её сроки хранения","responses":{"200":{"description":"Организация","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: ключ API или сессия."},"patch":{"operationId":"updateOrganization","tags":["Organization"],"summary":"Изменить сроки хранения","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRequest"}}}},"responses":{"200":{"description":"Организация после изменения","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: только сессия с ролью owner или admin."},"delete":{"operationId":"deleteOrganization","tags":["Organization"],"summary":"Удалить организацию","description":"Только сессия владельца, вход не раньше чем 10 минут назад (иначе 403 forbidden «recent sign-in required»).\n\nОрганизация блокируется и обезличивается: её ключи API отзываются, конечные точки вебхуков\nотключаются, приглашения и чаты ассистента удаляются, типизаторы архивируются, а файлы и\nрезультаты прогонов в течение часа удаляют задачи хранения. Платёжные записи хранятся, как\nтребует налоговое законодательство. Личная организация отдельно не удаляется (409 conflict):\nона удаляется вместе с аккаунтом (DELETE /v1/me).\n\nДоступ: только сессия с ролью owner.","responses":{"204":{"description":"Организация удалена","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}]}},"/v1/files":{"post":{"operationId":"createFile","tags":["Files"],"summary":"Загрузить документ (multipart, поле file)","description":"Единственный способ загрузить файл, до 50 МиБ: тело всегда идёт через API. Не больше 2 загрузок одновременно на организацию (сверх этого 429 rate_limited); если сервис занят — 503. Оба ответа приходят с Retry-After: 1. Всё тело должно прийти за 120 с без пауз дольше 15 с (иначе 408). Не больше 20 загрузок в секунду на ключ API или пользователя (429). Поддерживает Idempotency-Key.\n\nДоступ: ключ API со скоупом runs:write или сессия.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Документ, не больше 52428800 байт (50 МиБ)"}}}}}},"responses":{"201":{"description":"Сохранён","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `too_many_pages`: Слишком много страниц","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"415":{"description":"`unsupported_file_type`: Неподдерживаемый тип файла","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"422":{"description":"`document_unreadable`: Документ не читается","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/v1/files/{id}":{"get":{"operationId":"getFile","tags":["Files"],"summary":"Получить файл","parameters":[{"schema":{"type":"string","example":"file_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Файл","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом runs:read или сессия."},"delete":{"operationId":"deleteFile","tags":["Files"],"summary":"Удалить файл сейчас","description":"Файл сразу пропадает для всех; его хранилище стирается сейчас или, если не вышло, при следующей очистке по сроку хранения. Повторный DELETE того же файла отвечает 404: клиент, повторяющий запрос после потерянного ответа, считает 404 удалением. 503 с Retry-After: 1, если файл на мгновение занят.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":"string","example":"file_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Удалён","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedFile"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/files/{id}/content":{"get":{"operationId":"getFileContent","tags":["Files"],"summary":"Скачать исходное содержимое файла","description":"Всегда скачивание (Content-Disposition: attachment), без отображения: содержимое — ровно то, что было загружено. Передача, сорвавшаяся на середине, обрывается, а не завершается раньше; сверяйте длину с Content-Length. HEAD отвечает теми же заголовками, не читая файл. Не больше 2 скачиваний одновременно на организацию (и на пользователя): сверх этого 429 с Retry-After.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"string","example":"file_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Содержимое; `Content-Type` — определённый `mime`","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/typizers":{"get":{"operationId":"listTypizers","tags":["Typizers"],"summary":"Список типизаторов, новые первыми","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница типизаторов","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/Typizer"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом typizers:read или сессия."},"post":{"operationId":"createTypizer","tags":["Typizers"],"summary":"Создать типизатор (версия 1)","description":"Поддерживает Idempotency-Key.\n\nДоступ: ключ API со скоупом typizers:write или сессия.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTypizerRequest"}}}},"responses":{"201":{"description":"Создан","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Typizer"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_schema`: Некорректная схема; `unsupported_schema_feature`: Неподдерживаемая возможность схемы; `invalid_request`: Некорректный запрос. У `invalid_schema` и `unsupported_schema_feature` `param` — это `schema#` и указатель RFC 6901 внутрь схемы (управляющие символы заменены, не больше 256 символов). Ограничения: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/v1/typizers/generate":{"post":{"operationId":"generateTypizer","tags":["Typizers"],"summary":"Составить черновик типизатора по описанию или документу-образцу","description":"Запрашивает у модели схему, название и инструкции; ничего не сохраняется (типизатор создаётся через POST /v1/typizers). Передайте description, file_id или оба. Каждый вызов расходует одну единицу дневной квоты ассистента (100 на организацию и 100 на пользователя, сутки по Москве) непосредственно перед обращением к модели; сверх квоты — 429 с Retry-After до полуночи по Москве. Конвертация образца: документ, который не удаётся сконвертировать, — 422 extraction_failed с param: \"file_id\" (не повторяйте; запоминается на 24 ч); занятый конвертер — 429 с Retry-After: 5; сверх 200 конвертаций на пользователя за сутки по Москве — 429 с Retry-After до полуночи по Москве; при исчерпанной квоте ассистента — 429 до любой конвертации; недоступный или слишком медленный конвертер или модель — 503 upstream_unavailable (повторите позже). Ответ модели, не являющийся корректной схемой, — 422 extraction_failed. Idempotency-Key принимается и игнорируется.\n\nДоступ: ключ API со скоупом typizers:write или сессия.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTypizerRequest"}}}},"responses":{"200":{"description":"Черновик","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypizerDraft"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"422":{"description":"`extraction_failed`: Извлечение не удалось","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKeyIgnored"}]}},"/v1/typizers/{id}":{"get":{"operationId":"getTypizer","tags":["Typizers"],"summary":"Получить типизатор с текущей версией","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Типизатор","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Typizer"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом typizers:read или сессия."},"patch":{"operationId":"updateTypizer","tags":["Typizers"],"summary":"Изменить типизатор","description":"Версии неизменяемы: изменённые schema или instructions создают новую версию, и она становится текущей. Перестановка поля внутри properties — это изменение (порядок полей — порядок результата); перестановка ключевого слова внутри поля — нет. Остальные поля меняются на месте.\n\nДоступ: ключ API со скоупом typizers:write или сессия.","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTypizerRequest"}}}},"responses":{"200":{"description":"Типизатор после изменения","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Typizer"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_schema`: Некорректная схема; `unsupported_schema_feature`: Неподдерживаемая возможность схемы; `invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор. У `invalid_schema` и `unsupported_schema_feature` `param` — это `schema#` и указатель RFC 6901 внутрь схемы (управляющие символы заменены, не больше 256 символов). Ограничения: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]},"delete":{"operationId":"deleteTypizer","tags":["Typizers"],"summary":"Архивировать типизатор","description":"Типизатор пропадает из списка и с этого момента отвечает 404; его версии сохраняются для прогонов, которые их использовали.\n\nДоступ: ключ API со скоупом typizers:write или сессия.","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Архивирован","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedTypizer"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/typizers/{id}/versions":{"get":{"operationId":"listTypizerVersions","tags":["Typizers"],"summary":"Версии типизатора, новые первыми","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница версий","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/TypizerVersion"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом typizers:read или сессия."}},"/v1/typizers/{id}/versions/{n}":{"get":{"operationId":"getTypizerVersion","tags":["Typizers"],"summary":"Получить версию типизатора","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":2147483647,"example":1},"required":true,"name":"n","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Версия","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypizerVersion"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом typizers:read или сессия."}},"/v1/typizers/{id}/xsd":{"get":{"operationId":"getTypizerXsd","tags":["Typizers"],"summary":"Скачать XSD текущей версии","description":"Описывает XML, который выгружает прогон этого типизатора (корень <document>); отдаётся как файл.\n\nДоступ: ключ API со скоупом typizers:read или сессия.","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Схема XSD","content":{"application/xml":{"schema":{"type":"string"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/typizers/{id}/runs":{"post":{"operationId":"createRun","tags":["Runs"],"summary":"Запустить типизатор на документе","description":"Передайте документ ровно одним способом: частью multipart file, полем file_id или url. Тело — JSON или multipart с остальными полями в виде текста (metadata — объект JSON). Страницы резервируются на балансе при создании прогона (402 insufficient_balance, если их не хватает) и списываются при его завершении. Загрузки: не больше 2 одновременно на организацию (429), всё тело за 120 с без пауз дольше 15 с (408). Не больше 20 новых прогонов в секунду на ключ API или пользователя (429; много документов — через пакеты). Поддерживает Idempotency-Key.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":"string","example":"tz_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":60,"example":60,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202."},"required":false,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202.","name":"wait","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunRequest"}},"multipart/form-data":{"schema":{"type":"object","required":[],"properties":{"file":{"type":"string","format":"binary","description":"Документ, не больше 52428800 байт (50 МиБ); или вместо него передайте `file_id` или `url`"},"file_id":{"type":"string"},"url":{"type":"string"},"format":{"type":"string","enum":["json","xml","csv","xlsx"]},"mode":{"type":"string","enum":["standard","precise"]},"webhook_url":{"type":"string"},"metadata":{"type":"string","description":"`metadata` как объект JSON"}}}}}},"responses":{"200":{"description":"Прогон завершился в пределах `wait`","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"202":{"description":"Прогон в очереди или обрабатывается","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"402":{"description":"`insufficient_balance`: Недостаточно баланса","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: Конфликт идемпотентности; `conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"415":{"description":"`unsupported_file_type`: Неподдерживаемый тип файла","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"422":{"description":"`document_unreadable`: Документ не читается","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/runs":{"get":{"operationId":"listRuns","tags":["Runs"],"summary":"Список прогонов, новые первыми","description":"Пагинация по курсору, новые первыми. В списке output и fields всегда null (output_expired всё равно показывает, хранится ли результат); за ними запросите прогон или его /output.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"schema":{"type":"string","enum":["queued","processing","succeeded","failed"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","maxLength":64,"example":"tz_…"},"required":false,"name":"typizer_id","in":"query"},{"schema":{"type":"string","maxLength":64,"example":"batch_…"},"required":false,"name":"batch_id","in":"query"},{"schema":{"type":"string","enum":["api","my","mcp","demo","agent"]},"required":false,"name":"source","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Только прогоны, созданные позже этого момента (не включая его)","example":"2026-10-01T00:00:00Z"},"required":false,"description":"Только прогоны, созданные позже этого момента (не включая его)","name":"created_after","in":"query"},{"schema":{"type":"string","format":"date-time","description":"Только прогоны, созданные раньше этого момента (не включая его)","example":"2026-10-01T00:00:00Z"},"required":false,"description":"Только прогоны, созданные раньше этого момента (не включая его)","name":"created_before","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница прогонов","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/Run"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/runs/{id}":{"get":{"operationId":"getRun","tags":["Runs"],"summary":"Получить прогон","description":"С output и fields, пока результат хранится (срок хранения результатов организации), затем там null и output_expired: true.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"string","example":"run_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Прогон","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/runs/{id}/output":{"get":{"operationId":"getRunOutput","tags":["Runs"],"summary":"Скачать результат прогона","description":"Результат успешного прогона в виде файла (Content-Disposition: attachment; filename=\"<run id>.<ext>\"). Столбцы и элементы идут в порядке свойств схемы. csv — один файл или zip из data.csv и отдельного файла на каждое поле-массив. В csv и xlsx текстовое значение, которое таблица могла бы выполнить как формулу (начинается с =, +, -, @, табуляции или перевода строки), записывается с ведущим '. 409, если прогон не завершился успешно; 404 «output expired», когда результат больше не хранится. Файл передаётся потоком по мере формирования (без Content-Length); сбой на середине обрывает передачу, а не завершает её раньше. xlsx отклоняется (413 file_too_large), если в таблице больше строк, чем вмещает лист (1 048 575). Не больше 2 выгрузок одновременно на организацию (429), 503, пока сервер занят; оба ответа с Retry-After.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"string","example":"run_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["json","xml","csv","xlsx"],"description":"По умолчанию — `format` прогона"},"required":false,"description":"По умолчанию — `format` прогона","name":"format","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Файл результата","content":{"application/json":{"schema":{"description":"`output` прогона"}},"application/xml":{"schema":{"type":"string","format":"binary"}},"text/csv":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/runs/{id}/retry":{"post":{"operationId":"retryRun","tags":["Runs"],"summary":"Повторить неудачный прогон","description":"Создаёт новый прогон с версией типизатора неудачного прогона (даже если типизатор с тех пор изменён или удалён) или его разовой схемой и инструкциями, файлом, format, mode и metadata, а также его webhook_url, пока у активной конечной точки вебхуков есть этот URL (но не у отключённой вами). Страницы резервируются как для любого прогона (402 insufficient_balance). 409, если прогон не завершился неудачей, если его файл больше не хранится («source file expired») или если прогон сделан ассистентом (запустите его снова из ассистента). Входит в лимит новых прогонов (20 в секунду на ключ API или пользователя, 429). Поддерживает Idempotency-Key; передавайте его: каждый вызов без ключа создаёт ещё один прогон и резервирует под него страницы.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":"string","example":"run_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"202":{"description":"Новый прогон в очереди","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"`invalid_id`: Некорректный идентификатор; `invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"402":{"description":"`insufficient_balance`: Недостаточно баланса","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/batches":{"post":{"operationId":"createBatch","tags":["Batches"],"summary":"Запустить типизатор на многих документах","description":"Один прогон на файл, у всех одна версия типизатора, format, mode и metadata: JSON с file_ids или multipart с частями files (одна из них может быть .zip). Сначала страницы всех прогонов сверяются с балансом (402 insufficient_balance, ничего не создаётся), затем резервируются по прогону. Всё или ничего: если прогон создать не удаётся (например, 402, потому что страницы тем временем израсходованы), запрос завершается этой ошибкой, ничего из пакета не запускается, а страницы возвращаются; уже созданные прогоны остаются в списке как неудачные в пакете completed. Пакет завершается, когда закончены все прогоны (вебхук batch.completed). Не больше 500 документов (.zip считается по числу файлов). Загрузки: не больше 2 одновременно на организацию (429), тело с .zip занимает обе; всё тело за 100 с без пауз дольше 15 с (408). На весь запрос — 100 с: пакет, который не удалось сохранить за это время, отклоняется с 503 «batch too large to process in one request; split it», и ничего из него не сохраняется. Поддерживает Idempotency-Key; повтор пакета, который из-за обрыва получил меньше прогонов, чем было прислано, — 409 conflict «batch was only partially created; create a new batch for the remaining documents» с batch_id, created и expected. Не больше 2 пакетов в секунду и 60 в минуту на ключ API или пользователя (429).\n\nДоступ: ключ API со скоупом runs:write или сессия.","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBatchRequest"}},"multipart/form-data":{"schema":{"type":"object","required":["typizer_id","files"],"properties":{"typizer_id":{"type":"string"},"files":{"type":"array","items":{"type":"string","format":"binary"},"description":"Документы, каждый не больше 50 МиБ, всё тело не больше 51 МиБ. Один из них может быть `.zip` (по имени): его файлы тоже становятся прогонами (всего не больше 500; папки, `__MACOSX` и файлы с точкой в начале имени пропускаются; вложенные архивы отклоняются)."},"format":{"type":"string","enum":["json","xml","csv","xlsx"]},"mode":{"type":"string","enum":["standard","precise"]},"metadata":{"type":"string","description":"`metadata` как объект JSON"}}}}}},"responses":{"201":{"description":"Пакет в обработке","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Пакет: `/v1/batches/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Batch"}}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"402":{"description":"`insufficient_balance`: Недостаточно баланса","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"408":{"description":"`invalid_request`: тело запроса не пришло вовремя","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: ключ занят или использован для другого запроса; `conflict`: пакет более раннего запроса с этим ключом создан лишь частично (с `batch_id`, `created`, `expected`)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"415":{"description":"`unsupported_file_type`: Неподдерживаемый тип файла","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"422":{"description":"`document_unreadable`: Документ не читается","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]},"get":{"operationId":"listBatches","tags":["Batches"],"summary":"Список пакетов, новые первыми","description":"Пагинация по курсору, новые первыми. Прогоны пакета: GET /v1/runs?batch_id=.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница пакетов","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/Batch"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/batches/{id}":{"get":{"operationId":"getBatch","tags":["Batches"],"summary":"Получить пакет","parameters":[{"schema":{"type":"string","example":"batch_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Пакет","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Batch"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом runs:read или сессия."}},"/v1/batches/{id}/export":{"get":{"operationId":"exportBatch","tags":["Batches"],"summary":"Скачать результаты пакета","description":"Результаты успешных прогонов пакета, которые ещё хранятся, в порядке создания прогонов (Content-Disposition: attachment; filename=\"<batch id>.<ext>\"). csv — одна таблица со столбцом run_id или zip из data.csv и отдельного файла на каждое поле-массив; xlsx — то же в виде листов; zip — по одному <run id>.json на прогон. В csv и xlsx текстовое значение, которое таблица могла бы выполнить как формулу, записывается с ведущим '. 409, пока пакет обрабатывается. Передаётся потоком по мере формирования (без Content-Length); сбой на середине обрывает передачу, а не завершает её раньше. xlsx отклоняется (413), если в таблице больше строк, чем вмещает лист. Не больше 2 выгрузок одновременно на организацию (429), 503, пока сервер занят; оба ответа с Retry-After.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"string","example":"batch_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","enum":["csv","xlsx","zip"]},"required":true,"name":"format","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Выгрузка","content":{"text/csv":{"schema":{"type":"string","format":"binary"}},"application/zip":{"schema":{"type":"string","format":"binary"}},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","format":"binary"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/extract":{"post":{"operationId":"extract","tags":["Runs"],"summary":"Извлечь данные по разовой схеме","description":"Прогон с разовой схемой, без сохранения типизатора (typizer_id равен null). Схема подчиняется правилам типизатора (см. POST /v1/typizers). Передайте документ ровно одним способом: частью multipart file, полем file_id или url. Тело — JSON или multipart с остальными полями в виде текста (metadata — объект JSON). Страницы резервируются на балансе при создании прогона (402 insufficient_balance, если их не хватает) и списываются при его завершении. Загрузки: не больше 2 одновременно на организацию (429), всё тело за 120 с без пауз дольше 15 с (408). Не больше 20 новых прогонов в секунду на ключ API или пользователя (429; много документов — через пакеты). Поддерживает Idempotency-Key.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":["integer","null"],"minimum":0,"maximum":60,"example":60,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202."},"required":false,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202.","name":"wait","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractRequest"}},"multipart/form-data":{"schema":{"type":"object","required":["schema"],"properties":{"file":{"type":"string","format":"binary","description":"Документ, не больше 52428800 байт (50 МиБ); или вместо него передайте `file_id` или `url`"},"file_id":{"type":"string"},"url":{"type":"string"},"format":{"type":"string","enum":["json","xml","csv","xlsx"]},"mode":{"type":"string","enum":["standard","precise"]},"webhook_url":{"type":"string"},"metadata":{"type":"string","description":"`metadata` как объект JSON"},"schema":{"type":"string","description":"Схема как объект JSON"},"instructions":{"type":"string"}}}}}},"responses":{"200":{"description":"Прогон завершился в пределах `wait`","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"202":{"description":"Прогон в очереди или обрабатывается","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"`invalid_schema`: Некорректная схема; `unsupported_schema_feature`: Неподдерживаемая возможность схемы; `invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц. У `invalid_schema` и `unsupported_schema_feature` `param` — это `schema#` и указатель RFC 6901 внутрь схемы (управляющие символы заменены, не больше 256 символов). Ограничения: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"402":{"description":"`insufficient_balance`: Недостаточно баланса","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: Конфликт идемпотентности; `conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"413":{"description":"`file_too_large`: Файл слишком большой","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"415":{"description":"`unsupported_file_type`: Неподдерживаемый тип файла","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"422":{"description":"`document_unreadable`: Документ не читается","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/webhook_endpoints":{"get":{"operationId":"listWebhookEndpoints","tags":["Webhooks"],"summary":"Список конечных точек вебхуков, новые первыми","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница конечных точек","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом runs:read или сессия."},"post":{"operationId":"createWebhookEndpoint","tags":["Webhooks"],"summary":"Создать конечную точку вебхуков","description":"Одна конечная точка на URL: URL, который у организации уже есть (в том числе созданный для webhook_url прогона или отключённый), — 409; вместо этого измените ту конечную точку. Не больше 50 активных конечных точек на организацию, включая созданные для прогонов (409). Доставки подписываются по Standard Webhooks (webhook-id, webhook-timestamp, webhook-signature) секретом конечной точки (secret). Поддерживает Idempotency-Key (в ответе-повторе secret: null).\n\nДоступ: ключ API со скоупом runs:write или сессия.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookEndpointRequest"}}}},"responses":{"201":{"description":"Создана, с её `secret`","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/v1/webhook_endpoints/{id}":{"get":{"operationId":"getWebhookEndpoint","tags":["Webhooks"],"summary":"Получить конечную точку вебхуков","parameters":[{"schema":{"type":"string","example":"whe_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Конечная точка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом runs:read или сессия."},"patch":{"operationId":"updateWebhookEndpoint","tags":["Webhooks"],"summary":"Изменить конечную точку вебхуков","description":"url, который уже есть у другой конечной точки организации, — 409; повторное включение конечной точки сверх лимита активных — 409.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":"string","example":"whe_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookEndpointRequest"}}}},"responses":{"200":{"description":"Конечная точка после изменения","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]},"delete":{"operationId":"deleteWebhookEndpoint","tags":["Webhooks"],"summary":"Удалить конечную точку вебхуков и журнал её доставок","parameters":[{"schema":{"type":"string","example":"whe_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Удалена","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedWebhookEndpoint"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"description":"Доступ: ключ API со скоупом runs:write или сессия."}},"/v1/webhook_endpoints/{id}/test":{"post":{"operationId":"testWebhookEndpoint","tags":["Webhooks"],"summary":"Отправить тестовое событие на конечную точку","description":"Событие run.succeeded с примером прогона (run_test, output: {\"example\": true}) только на эту конечную точку; повторяется, как любая доставка. Отключённая конечная точка — 409. Тесты и повторы: 20 в минуту на организацию (429). Поддерживает Idempotency-Key.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":"string","example":"whe_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"201":{"description":"Доставка","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDelivery"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор; `invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/webhook_endpoints/{id}/deliveries":{"get":{"operationId":"listWebhookDeliveries","tags":["Webhooks"],"summary":"Доставки конечной точки, новые первыми","description":"Статус, коды ответов, попытки и время; тело события не показывается.\n\nДоступ: ключ API со скоупом runs:read или сессия.","parameters":[{"schema":{"type":"string","example":"whe_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница доставок","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDelivery"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/webhook_deliveries/{id}/retry":{"post":{"operationId":"retryWebhookDelivery","tags":["Webhooks"],"summary":"Повторить неудачную доставку один раз","description":"Только доставка в статусе failed у активной конечной точки (иначе 409). Ещё одна попытка, сейчас; если она не удалась, доставка снова failed (без новых автоматических повторов). Тесты и повторы: 20 в минуту на организацию (429). Поддерживает Idempotency-Key.\n\nДоступ: ключ API со скоупом runs:write или сессия.","parameters":[{"schema":{"type":"string","example":"whd_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Доставка, ожидает отправки","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDelivery"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор; `invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/balance":{"get":{"operationId":"getBalance","tags":["Billing"],"summary":"Баланс страниц организации","responses":{"200":{"description":"Баланс","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Balance"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"}],"description":"Доступ: ключ API со скоупом billing:read или сессия."}},"/v1/usage":{"get":{"operationId":"getUsage","tags":["Billing"],"summary":"Прогоны и оплаченные страницы за период","description":"Прогоны, созданные в период [from, to] (целые дни по Москве), по дням, типизаторам или ключам API. Не больше 366 дней (иначе 400, param: to). Дни без прогонов не выводятся. Демо-прогоны не учитываются.\n\nДоступ: ключ API со скоупом billing:read или сессия.","parameters":[{"schema":{"type":"string","format":"date","description":"Первый день (по Москве), включительно. По умолчанию — 30 дней назад, считая `to`","example":"2026-10-01"},"required":false,"description":"Первый день (по Москве), включительно. По умолчанию — 30 дней назад, считая `to`","name":"from","in":"query"},{"schema":{"type":"string","format":"date","description":"Последний день (по Москве), включительно. По умолчанию — сегодня по Москве","example":"2026-10-01"},"required":false,"description":"Последний день (по Москве), включительно. По умолчанию — сегодня по Москве","name":"to","in":"query"},{"schema":{"type":"string","enum":["day","typizer","key"],"default":"day","example":"day"},"required":false,"name":"group_by","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Расход","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usage"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`insufficient_scope`: Недостаточно прав ключа; `forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}]}},"/v1/agent/threads":{"post":{"operationId":"createAgentThread","tags":["Agent"],"summary":"Начать диалог с ассистентом","description":"Только сессия (любая роль); диалог виден пользователю, который его начал. Поддерживает Idempotency-Key.\n\nДоступ: только сессия.","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentThreadRequest"}}}},"responses":{"201":{"description":"Диалог","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentThread"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}],"parameters":[{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}]},"get":{"operationId":"listAgentThreads","tags":["Agent"],"summary":"Ваши диалоги с ассистентом, новые первыми","description":"Только сессия (любая роль); диалог виден пользователю, который его начал.\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Элементов на странице, 1–100","example":20},"required":false,"description":"Элементов на странице, 1–100","name":"limit","in":"query"},{"schema":{"type":"string","description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора"},"required":false,"description":"`next_cursor` предыдущей страницы: список продолжается после этого идентификатора","name":"starting_after","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Страница диалогов","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"$ref":"#/components/schemas/AgentThread"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["object","data","has_more","next_cursor"]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}},"/v1/agent/threads/{id}":{"get":{"operationId":"getAgentThread","tags":["Agent"],"summary":"Получить диалог с сообщениями","description":"Только сессия (любая роль); диалог виден пользователю, который его начал.\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"thr_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"responses":{"200":{"description":"Диалог","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentThread"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]},"patch":{"operationId":"updateAgentThread","tags":["Agent"],"summary":"Изменить черновик схемы вручную или сменить образец","description":"Только сессия (любая роль); диалог виден пользователю, который его начал. draft_schema проверяется как схема типизатора (param — это draft_schema# и указатель).\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"thr_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAgentThreadRequest"}}}},"responses":{"200":{"description":"Диалог после изменения","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentThread"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_schema`: Некорректная схема; `unsupported_schema_feature`: Неподдерживаемая возможность схемы; `invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц. У `invalid_schema` и `unsupported_schema_feature` `param` — это `schema#` и указатель RFC 6901 внутрь схемы (управляющие символы заменены, не больше 256 символов). Ограничения: не больше 200 полей и 10 уровней схемы (core), 131072 байт (128 КиБ) в компактном JSON в UTF-8, 64 уровней вложенности JSON (включая `examples`), и ни в одной строке нет NUL или непарного суррогата.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}},"/v1/agent/threads/{id}/sample_runs":{"post":{"operationId":"createAgentSampleRun","tags":["Agent"],"summary":"Запустить черновик на образце (бесплатно)","description":"Только сессия (любая роль); диалог виден пользователю, который его начал. Запускает черновик схемы на образце диалога (source agent); страницы не резервируются и не списываются. Расходует одну единицу дневной квоты ассистента (100 на организацию и 100 на пользователя, сутки по Москве; сверх квоты 429 с Retry-After). 409 conflict без черновика или образца; 400 too_many_pages для образца больше 10 страниц. Отвечает так же, как создание прогона. Поддерживает Idempotency-Key.\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"thr_…"},"required":true,"name":"id","in":"path"},{"schema":{"type":["integer","null"],"minimum":0,"maximum":60,"example":60,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202."},"required":false,"description":"Сколько секунд (0–60) держать запрос до завершения прогона: 200 с завершённым прогоном или 202 с его текущим состоянием, когда время вышло. Если при создании прогона очередь была ненадолго недоступна, прогон автоматически ставится в очередь снова и стартует примерно в течение 15 минут; ожидание тогда просто заканчивается ответом 202.","name":"wait","in":"query"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Прогон завершился в пределах `wait`","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"202":{"description":"Прогон в очереди или обрабатывается","headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"},"Location":{"description":"Прогон: `/v1/runs/{id}`","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"400":{"description":"`invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц; `invalid_request`: Некорректный запрос","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}},"/v1/agent/threads/{id}/save":{"post":{"operationId":"saveAgentThread","tags":["Agent"],"summary":"Сохранить черновик как типизатор","description":"Только сессия (любая роль); диалог виден пользователю, который его начал. Диалог, связанный с типизатором, сохраняет его новую версию (200); иначе — если диалог ни разу не сохранялся или его типизатор с тех пор архивирован — создаётся новый типизатор (201), и диалог связывается с ним. 409 conflict без черновика. Поддерживает Idempotency-Key.\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"thr_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAgentThreadRequest"}}}},"responses":{"200":{"description":"Новая версия типизатора диалога","content":{"application/json":{"schema":{"type":"object","additionalProperties":{},"description":"Объект типизатора (см. `GET /v1/typizers/{id}`)"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"201":{"description":"Созданный типизатор","content":{"application/json":{"schema":{"type":"object","additionalProperties":{},"description":"Объект типизатора (см. `GET /v1/typizers/{id}`)"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния; `idempotency_conflict`: Конфликт идемпотентности","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}},"/v1/agent/threads/{id}/messages":{"post":{"operationId":"createAgentMessage","tags":["Agent"],"summary":"Отправить сообщение; ассистент отвечает потоком server-sent events","description":"Только сессия (любая роль); диалог виден пользователю, который его начал. Расходует одну единицу дневной квоты ассистента (100 на организацию и 100 на пользователя, сутки по Москве; сверх квоты 429 с Retry-After до открытия потока). Стоимость модели ассистента также ограничена на пользователя и на организацию за сутки по Москве: когда лимит исчерпан, 429 до открытия потока или событие error с 429, завершающее текущий ход. Одно сообщение за раз в диалоге: 409 conflict, пока ассистент отвечает на предыдущее. Ответ — text/event-stream с событиями message_start, text_delta, tool_call, tool_result, schema_updated, sample_run, ask_user, error (ошибка в формате problem) и последним message_end (stop_reason: end_turn, ask_user, max_steps или aborted); комментарий : ping каждые 15 с. Ход длится не больше 300 с. Idempotency-Key принимается и игнорируется.\n\nДоступ: только сессия.","parameters":[{"schema":{"type":"string","example":"thr_…"},"required":true,"name":"id","in":"path"},{"$ref":"#/components/parameters/TypizerOrganization"},{"$ref":"#/components/parameters/IdempotencyKeyIgnored"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentMessageRequest"}}}},"responses":{"200":{"description":"Ответ в виде server-sent events","content":{"text/event-stream":{"schema":{"type":"string"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"400":{"description":"`invalid_request`: Некорректный запрос; `invalid_id`: Некорректный идентификатор; `too_many_pages`: Слишком много страниц","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"401":{"description":"`unauthorized`: Не авторизовано","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"403":{"description":"`forbidden`: Доступ запрещён","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"404":{"description":"`not_found`: Не найдено","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"409":{"description":"`conflict`: Конфликт состояния","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"429":{"description":"`rate_limited`: Превышен лимит запросов","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"500":{"description":"`internal_error`: Внутренняя ошибка","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"}}},"503":{"description":"`upstream_unavailable`: Сервис обработки временно недоступен","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/XRequestId"},"Typizer-Maintenance":{"$ref":"#/components/headers/TypizerMaintenance"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[{"sessionCookie":[]}]}}},"webhooks":{}}