GET /v1/models возвращает ту же модель, которую используют публичный каталог, Studio и MCP. Копируйте public_api_id в поле model; id в /v1/models содержит то же значение. api_aliases перечисляет опубликованные альтернативные ID. Сервер разрешает их в canonical_id, который сохраняет единую идентичность модели. Публичный ID имеет вид разработчик/выпуск и не переназначается другой модели. canonical_id совпадает с ним; если прежний внутренний идентификатор отличался, он приходит в legacy_canonical_id и по-прежнему принимается в model. Не собирайте ID из названия карточки.

Найдите модель

Для фильтрации доступны q, operation, category, group, enabled; страницы задаются page и page_size от 1 до 100. Ответ содержит pagination и facets (счётчики вендоров, категорий, разделов и операций по всему каталогу). Фильтрация выполняется до пагинации. Поиск q проверяет ID модели, опубликованные aliases, slug, название, разработчика, подтверждённые категории задач, операции, возможности и модальности без учёта регистра. Должны найтись все слова запроса; знаки между словами не учитываются: gpt-6, gpt 6 и gpt6 находят одно и то же. Описания моделей в поиске не участвуют.

group выбирает раздел по основной задаче модели: language, image, audio, video, documents, web, three_d. sort принимает newest (по умолчанию; предварительные версии идут позже), name_asc, context_desc, popularity_desc и relevance (по умолчанию, если задан q). Без enabled список строится как при enabled=true: в нём только модели, которые можно запустить сейчас.

curl --get "$KVANTORA_BASE_URL/v1/models" \
  -H "Authorization: Bearer $KVANTORA_API_KEY" \
  --data-urlencode "operation=chat" \
  --data-urlencode "enabled=true" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=20"

Для поиска добавьте q с ID, названием или разработчиком. Пустой результат после фильтра enabled=true означает, что по этим условиям нет доступной операции; не подставляйте имя похожей модели наугад.

Проверьте операцию

У одной модели может быть несколько внутренних маршрутов исполнения. В каталоге она остаётся одной карточкой с прежним адресом; выбор маршрута не меняет её ID и уже подтверждённую цену запроса. Возможности проверяются для конкретного запроса: модель с поддержкой изображений может иметь маршрут, принимающий только текст.

Основная задача модели — primary_category, все её задачи — categories (значения совпадают с фильтром category). chat_features показывает, что принимает текстовая операция: reasoning_efforts — допустимые значения reasoning_effort, image_input — изображения в сообщениях; у модели без текстовой операции там null.

Проверяйте availability.operations для нужной операции. Поле enabled разрешает запуск, api_path задаёт endpoint, studio_supported сообщает о наличии интерфейса Studio. Embeddings доступны через API; отдельная форма Studio для них не предусмотрена.

Проверяйте доступность непосредственно перед отправкой. Если нужная операция отключена, выберите другую доступную модель или вернитесь к запросу позже. Не заменяйте модель после отправки запроса с неизвестным исходом: сначала проверьте первоначальный результат.

Категории включают генерацию, анализ, распознавание и перевод. Наличие модели в каталоге не означает, что все её операции доступны: ориентируйтесь на availability.operations[].enabled. Для экспертных операций используйте указанный api_path, предварительный /v1/quotes и последующий /v1/jobs/:id. Повтор с тем же ключом идемпотентности возвращает прежнее задание.

«Доступность» показывает долю запросов к модели, которые Kvantora довела до ответа за последние 24 часа. В API это поле health.success_rate_24h (в процентах) с health.availability_source: "own"; число появляется, когда за сутки было не меньше десяти запросов, а у модели без такой статистики поле null и число не показывается. health.own содержит число попыток и ответов. Это исторический показатель, а не гарантия выполнения следующего запроса.

availability.outcome.state показывает, что платформа видела по запросам к модели: ok — ответ получен, untested — запросов с ответом пока нет, probing — прошлые запросы не дошли до ответа, а следующий запрос проверит модель заново, unavailable — модель сейчас отклоняет запросы. Модель в состоянии unavailable помечена «временно недоступна» (public_status: "temporarily_unavailable"), запуск для неё выключен; поле retry_after указывает, когда будет следующая проверка. Один полученный ответ возвращает модель в работу.

Каталог, Нейростудия, цены, ИИ-сотрудники и GET /v1/models показывают одинаковый набор: только модели, которые можно запустить прямо сейчас, с опубликованной ценой. Видео с ценой за секунду тарифицируется по выбранному разрешению; если разрешение не указано, оно фиксируется в запросе тем, по которому рассчитана цена. Новые модели поставщика появляются автоматически после проверки и публикации цены.

Сравните цены

Каждая цена содержит amount_microrub, currency: RUB, unit, quantity, operation, condition. Например, unit=token и quantity=1000000 означают цену за миллион токенов. Ноль означает опубликованную нулевую цену; отсутствие цены не означает бесплатный запрос. Если у операции несколько счётчиков (входные и выходные токены, секунды, страницы, изображения), каждый приходит отдельной ценой, а component называет его: input, output, prompt_tokens, input_characters, video_generation и так далее. Для цены, которая зависит от выбранных настроек, приходит quote_required: true: итог называет только /v1/quotes. free_quantity — сколько единиц счётчика входит в запрос бесплатно.

Сравнивайте одинаковые операции и единицы: цена входных токенов не заменяет цену выходных, а цена за запрос не равна цене за миллион токенов. Для вывода суммы в рублях используйте точное форматирование. Для медиа оцените конкретный запрос до запуска.

Описания и бенчмарки

Карточка содержит проверенное русское описание или подтверждённые сведения о входных данных, результате и контексте. Бенчмарки относятся к точной версии текстовой модели; вместе с оценкой передаются источник, условия измерения и дата. Если для этой версии нет точных данных, подробная страница сообщает об их отсутствии.

В текущем каталоге показаны модели подключённых источников каталога. Сохранённая историческая карточка может оставаться доступной по прежнему адресу без действующего маршрута или тарифа. Для выбора модели к запуску используйте enabled=true и нужную операцию.

Даты

dates.release и dates.supplier_added могут быть null: неизвестная дата не заменяется временем импорта. У известной даты есть value, precision (month, day или timestamp) и provenance. supplier_declared_release означает заявленную дату выпуска; supplier_added — дату добавления в каталог источника. Не показывайте месяц как точный день выпуска.