Вендоры и провайдеры
Двухуровневый каталог, статусы жизненного цикла, видимость по ролям и технические заметки.
Каталог — это двухуровневое дерево: вендор (компания — openai, amazon, deepl) владеет одним или несколькими провайдерами (конкретный API-продукт — openai_api, amazon_translate, deepl_api). У некоторых вендоров закономерно несколько провайдеров: один ключ аккаунта, несколько моделей; или MT-продукт и LLM-продукт с разными credentials. Коды — стабильные идентификаторы (^[a-z][a-z0-9_]{1,99}$) — храните и логируйте их, а не отображаемые имена.
Чтение каталога
GET /v1/vendors— вендоры без провайдеров.GET /v1/vendors/{vendor_code}— один вендор плюс сводки провайдеров.GET /v1/providers— плоский список провайдеров; фильтры:category(mt/ai/custom_mt/hybrid),capability,vendor_code,status, пейджинг.GET /v1/providers/{provider_code}— всё об одном провайдере: схемы (Provider Schemas), возможности (capabilities), политика резолюции, технические заметки.GET /v1/providers/{provider_code}/technical-info— только технические заметки.GET /v1/catalog— всё видимое дерево одним запросом (Full Catalog).
Каждый ответ несёт catalog_version (например, 2026.08.24) — версию загруженного YAML-снапшота. Она меняется только с развёртыванием.
Статусы жизненного цикла и видимость
Вендоры и провайдеры движутся через active → deprecated → disabled → removed, и каждый неактивный статус несёт метаданные lifecycle (причина, с какого момента, опциональный провайдер-замена). Что вы видите, зависит от вашей роли:
| Где | user |
provider_admin / auditor |
|---|---|---|
| Списки | active, deprecated |
+ disabled; removed при include_removed=true |
| Прямой GET по коду | active, deprecated, disabled |
+ removed |
include_removed=true от обычной роли — это 403. Сущность removed, запрошенная обычной ролью, неотличима от несуществующей (404).
Что статусы значат для сохранённых credentials: deprecated-провайдеры не принимают новых credentials (409 PROVIDER_DEPRECATED_FOR_NEW_CREDENTIALS), но существующие продолжают работать и резолвиться — мигрируйте в своём темпе на lifecycle.replacement_provider_code. disabled/removed-провайдеры отказывают и в новых credentials, и в resolve (409 PROVIDER_DISABLED).
Политика резолюции
Карточка каждого провайдера несёт credential_resolution: какие уровни владения разрешены (user_credentials_allowed, organization_credentials_allowed, platform_credentials_allowed) и порядок priority, по которому идёт resolve. У провайдера, требующего ключей в собственности клиента, платформенный уровень просто выключен. Детали: Resolve Chain.
Технические заметки
technical_info — описательная документация, курируемая сопровождающими каталога, а не живые метрики: единица запроса (characters, tokens, segments), документированная пропускная способность и URL её источника, поддерживаемые форматы входа и эксплуатационные заметки — формат auth-заголовков, причуды вендора, подводные камни. last_verified_at фиксирует, когда человек последний раз сверялся с документацией вендора. Доверяйте этому как документации с датой, а не как телеметрии.
Строите выбор провайдера?
Фильтруйте по capability (translation, ai_translation, batch, streaming, …), а не по категории — возможности (capabilities) являются пофичевыми флагами провайдера и точно совпадают с тем, что он умеет. См. cookbook: Просмотрите каталог.