---
title: "Список доступных моделей"
method: GET
path: "/v1/models"
tags: ["Models"]
---

# Список доступных моделей

`GET /v1/models`

## Request

- Base URL: `https://api.hubris.pw`
- URL: `https://api.hubris.pw/v1/models`
- Auth: one of:
  - none
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.hubris.pw/oauth/authorize`, token URL `https://api.hubris.pw/oauth/token`, scopes: `models:read`)

Возвращает активные модели с ценами в рублях за 1М токенов.

Без параметра — только модели, которые отвечают текстом (в том числе с картинкой или голосом в ответе). Остальные категории — по фильтру `?output_modalities=`: `embeddings`, `image`, `video`, `speech`, `transcription`, `decisions`, `rerank`; весь каталог — `?output_modalities=all`.

Единицу тарификации даёт `pricing.unit`: `token` — цены за 1М токенов, `unit` — оплата в других единицах (реальная цена в `pricing.per_unit`, токенные поля нулевые), `unknown` — тариф не публикуется, списывается фактическая стоимость. Не умножайте `input_rub_per_million` на токены, не проверив `unit`.

Ключ необязателен: без него отдаётся публичный каталог, с ключом — тот же каталог плюс ваши цепочки резервных моделей `route/<slug>`.

Бесплатные модели помечены флагом `pricing.is_free`. Не определяйте бесплатность по `input_rub_per_million === 0`: у моделей с оплатой в других единицах (за изображение, за секунду видео) цена за токены нулевая, а запрос платный. У бесплатных есть лимиты на стороне провайдера модели, которые провайдер не публикует, поэтому в пиковые часы возможны ответы 429. Подробности: /docs/concepts/free-models.

## Query parameters

- `output_modalities` string: Фильтр по выходной модальности (CSV). Без параметра — `text`; `all` — весь каталог.

## Response `200`

OpenAI-совместимый список моделей.

- ModelsList
  - `object` 'list', required
  - `data` Model[], required
    - `id` string, required
    - `object` 'model', required
    - `created` integer, required: Unix-timestamp последнего обновления записи в каталоге Hubris.
    - `owned_by` string, required
    - `display_name` string, required
    - `description` string, nullable, required: Описание модели на русском языке (если переведено).
    - `context_window` integer, required
    - `context_length` integer, required: То же, что `context_window`, — под именем, которое читают многие OpenAI-совместимые клиенты (RAGFlow и другие).
    - `modalities` string[], required: Legacy OpenAI поле — равно `output_modalities`. Используйте `output_modalities` / `input_modalities` для точного фильтра.
    - `input_modalities` string[], required: Что модель принимает на вход: `text`, `image`, `audio`, `file`.
    - `output_modalities` string[], required: Что модель возвращает: `text` (chat / responses), `embeddings` (только /v1/embeddings), `image`, `audio`.
    - `supported_parameters` string[], required: Параметры запроса, которые поддерживает модель: `tools`, `tool_choice`, `reasoning`, `include_reasoning`, `response_format`, `structured_outputs`, `temperature`, `top_p`, `seed`, `stop`, `web_search_options` и другие. Клиент по этому списку решает, показывать ли настройки инструментов и размышления для конкретной модели, а не включает их вслепую. Пустой массив — список для модели неизвестен.
    - `supported_voices` string[]: Голоса модели озвучки (только у моделей с `output_modalities: ["speech"]`). Значение для поля `voice` в POST /v1/audio/speech.
    - `pricing` object, required
      - `unit` 'token' | 'unit' | 'unknown', required: Единица тарификации. `token` — цены в `input_rub_per_million` / `output_rub_per_million` за 1М токенов. `unit` — тарификация в других единицах (изображение, мегапиксель, минута, секунда видео), реальная цена в `per_unit`, а токенные поля равны нулю. `unknown` — провайдер не публикует тариф, списывается фактическая стоимость запроса. Считайте бюджет по этому полю: у нетокенных моделей нельзя умножать `input_rub_per_million` на число токенов.
      - `input_rub_per_million` number, required: Цена за 1М входных токенов. Осмысленна только при `unit: "token"`; иначе 0 — смотрите `per_unit`.
      - `output_rub_per_million` number, required: Цена за 1М выходных токенов. Осмысленна только при `unit: "token"`; иначе 0 — смотрите `per_unit`.
      - `currency` 'RUB', required
      - `per_unit` object[]: Цены за единицу (изображение, мегапиксель, reference). Присутствует только для моделей с unit-pricing — Flux, Recraft, Sourceful, Gemini Image.
        - `sku` string, required
        - `price_rub` number, required
        - `unit` string, required
      - `is_free` boolean, required: Бесплатна ли модель. Определяет сервер: нулевые цены во ВСЕХ единицах тарификации и немедийный выход. Ориентируйтесь на этот флаг, а не на `input_rub_per_million === 0`: у моделей с оплатой за изображение или секунду видео цена за токены нулевая, но запрос платный.

## Other responses

- `401`: Передан невалидный API-ключ (без ключа каталог отдаётся публично).
- `429`: Превышен дневной лимит ключа.
- `503`: Не удалось получить курс ЦБ РФ — каталог временно недоступен.

---

[API](https://skmtc.dev/hubris/apis/hubris-api.md) · [All operations](https://skmtc.dev/hubris/apis/hubris-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hubris/apis/hubris-api/revisions/79ea91ed8f10?raw)
