API Reference
API REFERENCE
GET /v1/models
Список доступных моделей с актуальными ценами в рублях.
Возвращает список всех активных моделей с актуальными ценами в ₽. Стандартный OpenAI-формат с расширениями Hubris: display_name, description, context_window, modalities, pricing.
Полный каталог в UI — там удобнее сравнивать цены и фильтровать.
Эндпоинт
GET
https://api.hubris.pw/v1/modelsЗаголовки:
| Header | Значение |
|---|---|
Authorization | Bearer sk-gw-... (обязательно) |
Тело запроса не передаётся. Параметры query-string не поддерживаются — для фильтрации обрабатывайте ответ на стороне клиента.
Пример
curl -s https://api.hubris.pw/v1/models \-H "Authorization: Bearer sk-gw-..."from openai import OpenAIclient = OpenAI( base_url="https://api.hubris.pw/v1", api_key="sk-gw-...",)models = client.models.list()for m in models.data[:5]: print(m.id)import OpenAI from "openai";const client = new OpenAI({baseURL: "https://api.hubris.pw/v1",apiKey: "sk-gw-...",});const { data } = await client.models.list();data.slice(0, 5).forEach(m => console.log(m.id));Ответ
{
"object": "list",
"data": [
{
"id": "anthropic/claude-haiku-4.5",
"object": "model",
"created": 1714000000,
"owned_by": "anthropic",
"display_name": "Claude Haiku 4.5",
"description": "Быстрая и дешёвая модель Anthropic. Подходит для большинства задач.",
"context_window": 200000,
"max_output_tokens": 8192,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"pricing": {
"prompt_per_1m_rub": 96.50,
"completion_per_1m_rub": 482.50,
"image_input_per_1k_rub": 14.48
}
}
]
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
object | "list" | Тип контейнера. |
data[] | array<Model> | Массив моделей. |
data[].id | string | Идентификатор для использования в model запроса (формат <provider>/<model>). |
data[].object | "model" | Тип элемента. |
data[].created | integer | Unix-timestamp когда модель появилась в каталоге Hubris. |
data[].owned_by | string | Провайдер модели (anthropic, openai, google, ...). |
data[].display_name | string | Человеко-читаемое имя для UI. |
data[].description | string | Краткое описание модели. |
data[].context_window | integer | Размер контекста в токенах. |
data[].max_output_tokens | integer | Максимум токенов в ответе. |
data[].modalities.input | string[] | Что принимает: text, image, audio. |
data[].modalities.output | string[] | Что возвращает: text, image, embeddings. |
data[].pricing.prompt_per_1m_rub | number | Цена входных токенов за 1 миллион, в ₽. |
data[].pricing.completion_per_1m_rub | number | Цена выходных токенов за 1 миллион, в ₽. |
data[].pricing.image_input_per_1k_rub | number | Цена 1000 входных изображений (для vision-моделей). |
Цены пересчитываются каждые несколько часов по курсу ЦБ РФ + наш markup. Точная формула — Цены.
Фильтрация
API не поддерживает query-параметры. Фильтруйте локально:
models = client.models.list().data
# Только embedding-модели
embed_models = [m for m in models if 'embeddings' in m.modalities['output']]
# Vision-модели Anthropic дешевле 100₽/1M токенов
cheap_vision = [
m for m in models
if m.owned_by == 'anthropic'
and 'image' in m.modalities['input']
and m.pricing['prompt_per_1m_rub'] < 100
]HTTP-коды
| Код | Когда |
|---|---|
200 | Успешный ответ. |
401 | Ключ отсутствует / отозван / невалиден. |
429 | Превышен дневной лимит на ключе. |
503 | Курс ЦБ временно недоступен — каталог не отдаёт цены. Повторите через минуту. |
Что дальше
- Модели — обзор каталога и как выбрать модель.
- Цены — формула расчёта стоимости.
- Каталог в UI — удобнее искать и сравнивать.
Обновлено: