
## Стоимость AI-запросов

Из чего складывается цена вызова модели, чем он оплачивается и какие отказы приходят, когда оплатить вызов нечем.

Действующие цены моделей и израсходованную долю квоты возвращают эндпоинты, перечисленные ниже.

## Цены моделей

Цену каждой модели возвращает [`GET /v1/models`](./models/list.md) в объекте `pricing`, цену одной модели — [`GET /v1/models/:modelId`](./models/get.md). Все цены указаны в Вайбах — внутренней валюте платформы.

| Поле | Что тарифицирует |
|------|------------------|
| `pricing.prompt` | 1 миллион токенов входа |
| `pricing.completion` | 1 миллион токенов ответа |
| `pricing.perMinute` | Минуту аудио. Приходит только когда больше `0` |
| `pricing.perCall` | Один вызов. Приходит только когда больше `0` |
| `pricing.unit` | Единица измерения, всегда `vibes` |

Модель распознавания речи тарифицируется по `perMinute` и `perCall`, а её `prompt` и `completion` равны `0`. Поэтому нулевые `prompt` и `completion` ещё не означают, что вызов бесплатный: смотрите все поля `pricing`.

## Чем оплачивается вызов

| Ключ и модель | Чем оплачивается |
|---------------|------------------|
| Модель платформы, обычный API-ключ | Месячной AI-квотой компании, если модель входит в программу квоты. Сверх квоты, если такой расход для портала разрешён, — с баланса портала по цене модели из каталога. Модель вне программы квоты оплачивается с баланса портала по цене из каталога |
| Модель платформы, ключ подписки Cowork/Code со скоупом `vibe:cowork` | Квотой подписки Cowork/Code, пока подписка подключена и активна. Месячную AI-квоту компании такой вызов не расходует |
| Модель на вашем личном ключе провайдера (BYOK) | Напрямую провайдеру по его тарифам. С баланса портала ничего не списывается |

Личный ключ провайдера подключается через [`POST /v1/ai/credentials`](./credentials/create.md), подробнее — в разделе [Свои ключи (BYOK)](./credentials.md).

## Месячная AI-квота компании

Квота общая для всего портала, а не для отдельного ключа: её расходуют все API-ключи компании. Абсолютный размер квоты в Вайбах API не раскрывает. [`GET /v1/ai/quota`](./consumption/quota.md) показывает израсходованную долю в процентах, дату сброса и разбивку по моделям.

Квоту расходуют только модели, включённые в программу квоты. Вызовы остальных моделей видны в разбивке со счётчиком запросов, но их доля квоты равна `0`.

Когда квота исчерпана, а расход сверх неё оплатить нечем, вызов отклоняется `402 ai_quota_exhausted`. Поле `reason` называет причину: `breaker` — сработал часовой предохранитель расхода сверх квоты, `wallet_empty` — на балансе портала нет средств, `wallet_off` — расход сверх квоты для портала недоступен.

## Равномерное расходование и выгодные часы

Кроме месячного лимита на портале могут действовать суточное и недельное окна — доли месячной квоты, которые нельзя превысить за сутки и за неделю. Они не уменьшают квоту, а растягивают её расход на месяц. Состояние окон приходит в поле `pacing` ответа [`GET /v1/ai/quota`](./consumption/quota.md), там же описаны режимы реакции на превышение окна. Когда окно пробито и вызов не может пройти как оплачиваемое превышение, он отклоняется `429 ai_pacing_limited`.

В выгодные часы один и тот же вызов забирает меньшую долю квоты. Расписание по часам недели возвращает [`GET /v1/off-peak`](./consumption/off-peak.md). Скидка действует только на расход квоты: оплата с баланса портала по цене модели скидку не получает. Перенос отложенных задач в выгодные часы отдаляет и исчерпание месячной квоты, и срабатывание суточного или недельного окна.

## Подписка Cowork/Code

Подписка даёт одну квоту на AI-запросы, которую расходуют вместе настольное приложение Cowork, режим Code и автономные AI-агенты. Отдельных лимитов у этих инструментов нет: вызовы агента и сессии в настольном приложении тратят один общий баланс. Расход считается в трёх вложенных окнах — 5 часов, неделя и месяц. Тарифы и окна описаны в разделе [Подписка Cowork/Code](/docs/cowork).

Квота подписки покрывает только AI-запросы и только пока подписка подключена и активна. Собственный сервер, на котором работает AI-агент, оплачивается из кошелька портала отдельно.

Когда одно из окон исчерпано, вызов отвечает `402 cowork_quota_exhausted`. Если на платформе настроена резервная модель, вместо отказа может прийти `200` с сообщением о лимите, а сам запрос не выполняется — подробнее в [`POST /v1/chat/completions`](./chat/completions.md). Тело отказа называет окно в поле `window`, время сброса в `resetAt` и тариф выше в `nextTier`.

## Отказы из-за оплаты

| HTTP | Код | Когда приходит |
|------|-----|----------------|
| 402 | `ai_quota_exhausted` | Месячная AI-квота компании исчерпана, а расход сверх неё оплатить нечем |
| 402 | `cowork_quota_exhausted` | Исчерпано одно из окон квоты подписки Cowork/Code |
| 402 | `cowork_subscription_inactive` | У ключа со скоупом `vibe:cowork` нет действующей подписки Cowork/Code |
| 402 | `company_budget_exhausted` | Исчерпан бюджет расхода, который задал администратор портала. Приходит только на вызовах, которые списывают средства с баланса портала |
| 402 | `account_frozen` | Платёжный аккаунт заморожен из-за отрицательного баланса |
| 429 | `ai_pacing_limited` | Пробито суточное или недельное окно равномерного расходования, а оплачиваемое превышение недоступно |

Полный список общих ошибок API — [Ошибки](/docs/errors).

Поля каждого ответа и порядок действий описаны в таблице ошибок [`POST /v1/chat/completions`](./chat/completions.md). Ограничения частоты запросов к моделям не связаны с оплатой и описаны на странице [Лимиты запросов](./chat/rate-limits.md).

## Известные особенности

**Снятая с публикации модель тарифицируется по цене преемника.** Если вызов модели в состоянии `DISABLED` обслужила модель-преемник, списание идёт по цене преемника, и `pricing` в ответе `GET /v1/models/:modelId` показывает именно её. Подробнее — [Жизненный цикл моделей](./models/lifecycle.md).

**Токены рассуждения оплачиваются как токены ответа.** У моделей с рассуждением эти токены входят в `usage.completion_tokens` и тарифицируются по ставке `pricing.completion`.

**Проверяйте квоту до массовой обработки.** Поля `pctUsed` и `exhausted` в ответе `GET /v1/ai/quota` позволяют предупредить пользователя заранее, а не дожидаться отказа `402`.

## Смотрите также

- [Список моделей](./models/list.md)
- [AI-квота компании](./consumption/quota.md)
- [Расписание выгодных часов](./consumption/off-peak.md)
- [Статистика использования](./consumption/usage.md)
- [Свои ключи (BYOK)](./credentials.md)
- [Подписка Cowork/Code](/docs/cowork)
- [AI Router](/docs/ai)
