halfoff.devДокументация
Получить ключ
Models API

Модели и цены

Каждая модель стоит половину прайсовой цены за токен: входные, выходные, чтение и запись кеша. Как считается списание за каждый вызов и как получить список моделей.

Правило ценообразования умещается в одну строку: вы платите половину официальной прайсовой цены за каждый токен на любой модели. Это относится одинаково к входным токенам без кеша, выходным (включая 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 AnthropicUsage OpenAIUsage Gemini
Входные без кешаinput_tokensprompt_tokens минус cached_tokenspromptTokenCount минус cachedContentTokenCount
Чтение кешаcache_read_input_tokensprompt_tokens_details.cached_tokenscachedContentTokenCount
Запись кешаcache_creation_input_tokensне сообщаетсяне сообщается
Выходныеoutput_tokens (включая thinking)completion_tokens (включая рассуждения)candidatesTokenCount + thoughtsTokenCount

Они объединяются так:

Text
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

Сокращённый ответ:

Response
{
  "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"
}
ПолеЗначение
idId для отправки. Другие написания тоже распознаются; см. 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 млн токенов