# Баланс и стоимость

> Предоплаченный баланс, как считается стоимость запроса и когда списания нет.

Оплата — с предоплаченного баланса в долларах США, по факту использования.
Подписок и минимальных платежей нет.

## Пополнение

Сейчас пополнение выполняется вручную — напишите на support@example.com.
Крипто-пополнение скоро.

## Как считается стоимость

| Тип модели | Что тарифицируется |
| --- | --- |
| Текст | Токены по ставкам за 1 млн: вход, выход, чтение из кэша, запись в кэш (5 минут и 1 час) |
| Изображения | Каждое доставленное изображение, но не больше запрошенного `n` |
| Видео | Секунды длительности ролика, один раз — когда задача завершилась |

- Токены берутся из usage, который вернул провайдер модели. Рассуждения
  (reasoning) входят в выходные токены.
- Если провайдер не прислал usage (например, поток оборвался), стоимость
  считается по оценке — по объёму запроса и полученного ответа.
- Длительность видео берётся из ответа провайдера; если он её не назвал —
  списываются запрошенные секунды.
- Ставки у разных моделей разные, для аккаунта могут действовать персональные
  цены. Актуальные ставки можно уточнить на support@example.com.

## Когда списания нет

- Запрос отклонён шлюзом (ошибки 4xx) или провайдером до начала ответа.
- Все провайдеры модели недоступны (`502 upstream_unavailable`).
- Провайдер оборвал поток или прислал ошибку до первого фрагмента ответа.
- Видео-задача завершилась со статусом `failed`.

Если поток оборвался посреди ответа, списывается вход запроса и уже
сгенерированный выход. Если вы прервали запрос сами после того, как пришёл
HTTP 200, — тоже: вход списывается целиком, даже если модель ещё не начала
отвечать (например, долго рассуждала).

## Резерв и лимиты

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

## Проверить баланс

В кабинете — на дашборде и в разделе «Баланс». Из кода — `GET /v1/balance`
с ключом; сумма приходит десятичной строкой, чтобы не терять точность:

```bash
curl https://ai-seller.vibe-codes.ru/v1/balance \
  -H "Authorization: Bearer $AISELLER_API_KEY"
```

```json
{"balance": "12.5", "currency": "usd"}
```

Расход по дням и моделям — в разделе «Расход» кабинета.
