Модели
Список моделей GetVibe API и то, как адресовать модели в поле model. Варианты маршрутов через суффиксы :network, :nexus, :sub5 — другой маршрут, цена и поведение кэширования.
Поле model принимает точное имя модели. Полный список с ценами и поддержкой кэша — на странице каталога.
- В идентификаторах используется
vendor/model(в стиле OpenRouter), напримерanthropic/claude-opus-5;claude-opus-5принимается как входной псевдоним с идентичной тарификацией. model:aliasзакрепляет канал, напримерopenai/gpt-5.6-sol:yellow.GET /v1/modelsвыводит по одному ID на модель;?variants=1возвращает полный список.
Как тарифицируется запрос
Большинство каналов — это книги заявок маркетплейса: множество продавцов предлагают одну и ту же модель по разным ценам. Ваш запрос исполняется по самому дешёвому предложению, которое его примет, и с вас списывается стоимость этого исполнения плюс наша комиссия. Поэтому ставка за токен — это диапазон, а не одно число: она зависит от того, по какой ступени книги прошло исполнение.
GET /api/catalog и GET /v1/pricing публикуют этот диапазон по модели (pricing) и по каналу (channels[]), считывая его из той же лестницы, по которой GET /api/model-ladder?model=<model> отдаёт свои предложения.
| Параметр | Тип | Описание |
|---|---|---|
basis | "fill" | "fixed" | "mixed" | "fill": списание по ступени, которая заполняется, плюс комиссия. "fixed": списание по указанной ставке (from = typical = to). "mixed" (только на уровне модели): часть каналов каждого типа. |
priceFrom | {input, output} | Самая дешёвая ступень — минимальная ставка, по которой может быть выставлен счёт за запрос. |
priceTypical | {input, output} | Взвешенная по предложениям медианная ступень: половина предложений в книге стоит на ней или ниже. Она описывает текущее предложение, а не прогноз вашего следующего исполнения. На уровне модели берётся значение канала по умолчанию. |
priceTo | {input, output} | Самая дорогая ступень в книге — максимум, который может быть выставлен за запрос без max_price. |
pool | string | null | Только для канала. Книга заявок, из которой закупает канал, в том виде, в каком её печатает лестница. Каждый пул публикуется ровно как один канал. |
maxPriceCeiling | {input, output} | null | Только для канала. Когда запрос содержит max_price, этот канал не будет исполнен выше меньшего из max_price и этого предела. Без max_price предел не отправляется. |
minChargePerRequest | number | USD за ЗАПРОС, а не за 1M. Присутствует только на канале, поставщик которого взимает минимальную плату за запрос (правило поставщика): оплачивается как минимум один успешный запрос, например $0.0000143. Запрос, токены которого стоили бы меньше — короткий или состоящий в основном из чтений кэша, — тарифицируется по этой сумме. На уровне модели (может быть null) это значение канала по умолчанию. |
fill | {"24h", "7d"} | null | Только для канала (и для каждого обслуживаемого пула на /api/model-ladder). Где наши платные запросы на этом канале фактически исполнялись: по каждой ступени — доля запросов и доля токенов; avgPrice — средневзвешенная по токенам фактически уплаченная цена, то есть типичная цена, которую вы реально заплатите; а также доли, исполненные ниже или выше сегодняшней лестницы (книги заявок меняются), или списанные по минимальной цене за запрос. null для окна с менее чем 20 запросами. |
ladder | string | Только для моделей. URL /api/model-ladder с полным списком ступеней и количеством предложений. |
inputUsd / outputUsd | number | Сохранено для совместимости. На fill-канале они равны priceFrom — это нижняя граница, а не фиксированная цена. |
"pricing": {
"basis": "fill",
"unit": "USD per 1M tokens",
"priceFrom": { "input": 0.465, "output": 2.325 },
"priceTypical": { "input": 0.5, "output": 2.5 },
"priceTo": { "input": 1.5, "output": 7.5 },
"minChargePerRequest": 0.0000125,
"ladder": "/api/model-ladder?model=claude-opus-5.5",
"ladderUpdatedAt": "2026-09-25T08:45:01.522Z",
"ladderStale": false
},
"channels": [
{ "address": "claude-opus-5.5:claude-code", "isDefault": true,
"inputUsd": 0.465, "outputUsd": 2.325,
"basis": "fill", "pool": "cc/claude-opus-5-5",
"priceFrom": { "input": 0.465, "output": 2.325 },
"priceTypical": { "input": 0.5, "output": 2.5 },
"priceTo": { "input": 1.5, "output": 7.5 },
"maxPriceCeiling": { "input": 0.6, "output": 3 },
"minChargePerRequest": 0.0000125 }
]claude-code: запрос закрывается на той ступени, которая его примет, в диапазоне от priceFrom до priceTo. Чтобы ограничить возможную стоимость запроса, отправьте max_price — без него может закрыться любая ступень лестницы, с ним запрос никогда не закрывается выше вашего лимита. Чтобы увидеть глубину за ценой, читайте лестницу; чтобы увидеть, куда запросы реально попадают, читайте её fill. Каждый запрос в /v1/generations содержит cost_detail.realisedRate — цену за 1M, по которой он был тарифицирован, так что вы можете разместить его на лестнице. Каждый успешный запрос стоит как минимум minChargePerRequest канала, поэтому очень маленький или почти полностью закэшированный запрос тарифицируется по этому минимуму, а не по своей сумме за токены.Варианты одной модели
У большинства моделей есть несколько публичных вариантов. Вариант по умолчанию выбирается автоматически (приоритет определяется настройками вашего аккаунта или ключа). Чтобы закрепить конкретный вариант для запроса, добавьте его псевдоним через двоеточие к имени модели:
"model": "gpt-6.1-sol" // default variant (auto)
"model": "gpt-6.1-sol:yellow" // explicit public variant
"model": "claude-opus-5.5" // use an id from the catalogПример запроса с явным вариантом:
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4.8:yellow",
"messages": [{"role": "user", "content": "Hello!"}]
}'
# :yellow — pin a public variant for this requestПсевдонимы вариантов
Используйте только псевдонимы из каталога. Доступные суффиксы:
| Параметр | Тип | Описание |
|---|---|---|
:yellow | suffix | Публичный вариант; доступность и цена зависят от модели. |
:codex / :claude-code | suffix | Пулы подписок; модели, которые обслуживает каждый из них, перечислены в каталоге. |
:pixel | suffix | Публичный вариант для медиамоделей. |
Список моделей через API
Полный список доступных идентификаторов моделей можно получить программно:
curl https://getvibeapi.com/v1/models \
-H "Authorization: Bearer $GETVIBE_API_KEY"Помимо id/object/created/owned_by, каждая запись содержит type (chat, embedding, rerank, image, video, audio, music, 3d), architecture.input_modalities / output_modalities и endpoints — куда отправлять запрос для этой модели.
- Список по умолчанию содержит только чат-, embedding- и rerank-модели, поэтому средство выбора моделей в IDE никогда не предложит модель, не умеющую работать в чате.
- Медиамодели (изображение, видео, аудио, музыка, 3D) перечисляются по запросу:
?type=image(или список:?type=image,video),?output_modalities=image;?modality=и?category=— синонимыtype. - Всё сразу:
?all=true,?type=allилиGET /v1/models/all. Медиа перечисляется вместе со своими вариантами (model:alias) — именно тот id, который нужно отправить. GET /v1/models/{id}возвращает одну модель; неизвестный id — это 404 сcode: "model_not_found".
curl "https://getvibeapi.com/v1/models?type=image,video" \
-H "Authorization: Bearer $GETVIBE_API_KEY"Подпишитесь на обновления каталога (RSS и JSON Feed)
Каждая модель, добавленная в каталог, и наши публикации о нововведениях появляются в открытой ленте — ключ не требуется. Читайте её через RSS-ридер или с помощью агента, чтобы он мог менять свой подход по мере изменения моделей. Лента содержит всю историю с разбивкой на страницы, а каждое событие — всё необходимое агенту, чтобы сразу вызвать модель.
/rss.xml(псевдоним/feed.xml) — это RSS 2.0;/feed.json— JSON Feed 1.1 с блоком_metaна уровне ленты и блоком_catalogдля каждого события.- Страницы: по 50 событий,
?limit=— до 100, сначала самые новые. Следующая страница (с более старыми событиями) указана вnext_urlв JSON Feed и в<atom:link rel="next">в RSS (RFC 5005, также сrel="first"иrel="previous"). Ссылки содержат курсор, поэтому модель, опубликованная во время просмотра страниц, не сместит уже прочитанное событие. Используйте ссылки в том виде, в котором они возвращаются. - Фильтры:
?kind=text|image|video|audio|music|3d|newsи?since=YYYY-MM-DD— только события начиная с указанного дня по UTC включительно. Фильтры работают вместе с пагинацией и сохраняются в ссылках. - Событие
model_addedсодержит заголовок, дату появления модели в каталоге, ссылку на страницу модели, описание, а в_catalog: публичные идентификаторы для передачи в качествеmodel(без вариантов написания маршрутов:aliasи без названий поставщиков), эндпоинты, входные и выходные модальности, контекстное окно и максимальный объём вывода, возможности (инструменты, JSON / структурированный вывод, обработка изображений, рассуждение и его уровни, кеширование), публичную начальную цену в USD с единицей тарификации, для медиа — каждый параметр запроса с допустимыми значениями, готовый запрос (curlи JSON) и ссылку на документацию. Событиеnews— это публикация о нововведениях. guidсобытия никогда не меняется. Лента не содержит сохранённых результатов генерации — только пример запроса.- Опрашивайте ленту не чаще одного раза в несколько минут: у каждой страницы есть собственные
ETagиLast-Modified; отправляйтеIf-None-Match/If-Modified-Since, и, если страница не изменилась, в ответ вы получите304без тела. Чтобы получать только новое, сохраняйте дату последнего обработанного события и запрашивайте?since=с этой датой.
curl -sS "https://getvibeapi.com/feed.json?since=2026-10-01&limit=100"
curl -sS -i https://getvibeapi.com/feed.json -H 'If-None-Match: "<ETag from the previous response>"' # -> 304