Модели и цены
Каждая модель стоит половину прайсовой цены за токен: входные, выходные, чтение и запись кеша. Как считается списание за каждый вызов и как получить список моделей.
Правило ценообразования умещается в одну строку: вы платите половину официальной прайсовой цены за каждый токен на любой модели. Это относится одинаково к входным токенам без кеша, выходным (включая thinking и рассуждения), чтению и записи кеша.
Цены указаны в долларах США за миллион токенов. Каждый вызов тарифицируется по числу токенов, которое модель сообщает в собственном ответе, а сумма списывается с вашего предоплаченного баланса через несколько секунд после завершения вызова.
Половина цены, токен за токеном#
Вот что это значит для claude-sonnet-5.5 за миллион токенов:
| Вид токенов | Прайсовая цена | Вы платите |
|---|---|---|
| Входные без кеша | $2.00 | $1.00 |
| Выходные | $10.00 | $5.00 |
| Чтение кеша | $0.10 | $0.05 |
| Запись кеша | $2.50 | $1.25 |
Тот же множитель ×0.50 применяется ко всем моделям Claude, GPT и Gemini, в каждой группе каналов и в каждом формате API. Актуальная таблица внизу страницы перечисляет текущие модели.
Формула#
Расход вызова раскладывается на четыре вида токенов, у каждого своя цена. Где их искать в каждом API:
| Вид токенов | Usage Anthropic | Usage OpenAI | Usage Gemini |
|---|---|---|---|
| Входные без кеша | input_tokens | prompt_tokens минус cached_tokens | promptTokenCount минус cachedContentTokenCount |
| Чтение кеша | cache_read_input_tokens | prompt_tokens_details.cached_tokens | cachedContentTokenCount |
| Запись кеша | cache_creation_input_tokens | не сообщается | не сообщается |
| Выходные | output_tokens (включая thinking) | completion_tokens (включая рассуждения) | candidatesTokenCount + thoughtsTokenCount |
Они объединяются так:
charge = ( uncached_input × input_price
+ cache_read × cache_read_price
+ cache_write × cache_write_price
+ output × output_price ) ÷ 1,000,000 × multiplierЦены — это прайсовые цены модели, а множитель — множитель группы каналов, которая ответила и названа в заголовке ответа x-halfoff-group. Все три группы тарифицируются по ×0.50, откуда и берётся половина цены. Каждое списание округляется вверх до ближайших $0.000001.
Модели GPT и Gemini не сообщают о записи кеша, поэтому для них применяются только три из четырёх слагаемых.
Пример расчёта#
Одна реплика длинного чата по программированию на claude-sonnet-5.5, где основная часть истории берётся из кеша:
| Вид токенов | Токены | Вы платите за 1M | Стоимость |
|---|---|---|---|
| Входные без кеша | 3,000 | $1.00 | $0.003000 |
| Чтение кеша | 50,000 | $0.05 | $0.002500 |
| Запись кеша | 1,500 | $1.25 | $0.001875 |
| Выходные | 1,200 | $5.00 | $0.006000 |
| Итого | $0.013375 |
Если бы ни один из этих 54 500 входных токенов не пришёл из кеша, один только вход стоил бы $0.054500 вместо $0.007375. Кеширование и цена в половину тарифа суммируются; как поддерживать высокую долю попаданий, показано в разделе Кеширование промптов.
Список моделей и цен#
GET /v1/models возвращает все модели, которые можно вызывать прямо сейчас, с размером контекста, вашими ценами (половина прайсовой) и группами, которые их обслуживают. Ключ не нужен, а читать его с помощью client.models.list() могут и OpenAI SDK, и Anthropic SDK.
curl https://halfoff.dev/v1/modelsСокращённый ответ:
{
"object": "list",
"data": [
{
"id": "gemini-3.1-pro",
"object": "model",
"type": "model",
"display_name": "Gemini 3.1 Pro",
"created": 1700000000,
"created_at": "2025-01-01T00:00:00Z",
"owned_by": "Google",
"context_length": 1048576,
"pricing": {
"input": 1,
"output": 6,
"cache_read": 0.1,
"cache_write": 0.1875,
"unit": "USD per 1M tokens"
},
"groups": ["gemini-value"]
},
{
"id": "claude-sonnet-5.5",
"object": "model",
"type": "model",
"display_name": "Claude Sonnet 5.5",
"created": 1700000000,
"created_at": "2025-01-01T00:00:00Z",
"owned_by": "Anthropic",
"context_length": 1000000,
"pricing": {
"input": 1,
"output": 5,
"cache_read": 0.05,
"cache_write": 1.25,
"unit": "USD per 1M tokens"
},
"groups": ["claude-value"]
}
],
"has_more": false,
"first_id": "claude-fable-5.1",
"last_id": "gpt-5.6-luna"
}| Поле | Значение |
|---|---|
id | Id для отправки. Другие написания тоже распознаются; см. Id моделей. |
owned_by | Вендор: Anthropic, OpenAI или Google. |
context_length | Наибольшее контекстное окно в токенах. |
pricing.input | Ваша цена за входные токены без кеша. |
pricing.output | Ваша цена за выходные токены, включая thinking и рассуждения. |
pricing.cache_read | Ваша цена за входные токены, прочитанные из кеша промптов. |
pricing.cache_write | Ваша цена за входные токены, записанные в кеш. null означает, что запись тарифицируется как обычный вход. |
pricing.unit | Всегда USD per 1M tokens. |
groups | Группы каналов, обслуживающие модель. |
created, created_at | Фиксированные заглушки для совместимости с SDK. |
Поля pricing — это уже ваши тарифы: официальная прайсовая цена × ×0.50. GET /v1beta/models перечисляет те же модели в формате Gemini, без цен.
Вызовы, которые ничего не стоят#
- Запросы, отклонённые до обращения к модели: неверный ключ, модель не разрешена, нет баланса, лимит запросов, некорректный JSON.
- Запросы, завершившиеся сбоем на каждом канале, и любая попытка, которая не удалась и была повторена в другом месте. Тарифицируется только попытка, давшая ответ.
POST /v1/messages/count_tokensи:countTokensу Gemini.- Получение списка моделей.
Отменённые и прерванные потоки#
Закройте поток досрочно, и вы заплатите за то, что было сгенерировано к этому моменту, по тем же ценам в половину тарифа. Вход — это число, о котором сообщил поток, либо примерно один токен на четыре символа вашего запроса, если он ничего не сообщил. Выход — большее из уже сообщённого числа и примерно одного токена на четыре символа уже доставленного текста.
Когда шлюз завершает поток из-за того, что модель замолчала, тарификация работает так же: вы платите за полученное. См. Потоковая передача.
Где видны списания#
Логи перечисляют каждый вызов с числом токенов и списанием. Маркетплейс показывает цену каждой модели по группам с применённым множителем, а также актуальную доступность. Баланс и пополнение описаны в разделе Биллинг, отчёты об использовании — в разделе Использование.
Актуальная таблица цен#
Таблица ниже читается из GET /v1/models в реальном времени и показывает ваши тарифы за миллион токенов: половину официальной прайсовой цены.
| Модель | Контекст | Вход | Вывод | Чтение кеша | Запись кеша |
|---|---|---|---|---|---|
Данные из GET /v1/models · USD за 1 млн токенов