Оптимизация расходовРазбор
Сколько токенов уходит на запрос к API: замеры на трёх задачах
Настоящие замеры на DeepSeek-V4-Flash: короткий вопрос, пересказ абзаца и письмо в JSON — токены, стоимость 1 000 запросов и скрипт для ваших промптов.

Содержание
Спросите, сколько стоит один запрос к API нейросети, и почти наверняка услышите «зависит от задачи». Так и есть, но бюджет по такому ответу не спланируешь. Поэтому мы взяли три обычные задачи, отправили их в DeepSeek-V4-Flash через API CheapTokens 23 октября 2026 года и каждый раз записывали, что показало поле usage.
Если коротко: быстрый вопрос обошёлся в 110 токенов, пересказ абзаца — в 396, а письмо, превращённое в JSON, — в 299. Ниже — как выглядел каждый запрос, что пришло в ответ и сколько это стоит.
Быстрый вопрос#
Начали с того, о чём чат-ассистентов спрашивают постоянно: чем git merge отличается от git rebase, в двух-трёх предложениях.

Вопрос занял 23 токена, ответ — 87. Это первое, что бросается в глаза: ответ почти вчетверо длиннее вопроса, а выход стоит дороже входа — на MiniMax-M2.7 сейчас $0.15 за 1M токенов выхода против $0.05 за вход. По этим ценам один такой запрос стоит $0.000014, тысяча — $0.0142.
Вот этот запрос целиком — можно увидеть те же цифры у себя:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "user", "content": "What is the difference between git merge and git rebase? Answer in two or three sentences."}
],
"max_tokens": 2048,
"temperature": 0.2
}'Счётчики лежат в блоке usage в конце ответа: prompt_tokens — что вы отправили, completion_ — что написала модель, total_tokens — всё вместе.
Пересказ и токены, которых вы не читаете#
Вторая задача — ужать короткий отчёт об инциденте до двух предложений. Такое через модель гоняют целыми днями: тикеты, отчёты, длинные переписки. Вот промпт:
Summarize this incident report in two sentences.
On Tuesday between 14:05 and 14:50 UTC the checkout API returned errors for about 6% of requests. The cause was a configuration change deployed at 13:58 that lowered the database connection pool from 50 to 5 connections per instance. Under normal load nobody noticed, but when the afternoon traffic peak arrived, requests queued for a free connection and timed out after 30 seconds. The on-call engineer saw the growing p99 latency at 14:12, found the change in the deploy log at 14:31 and rolled it back at 14:44. To prevent a repeat, the pool size is now validated in CI against a minimum value, and an alert fires when more than 20 requests wait for a connection for two minutes.И ответ:
On Tuesday, a configuration change that reduced the database connection pool from 50 to 5 caused checkout API errors for about 6% of requests during the afternoon peak, until it was rolled back at 14:44. To prevent recurrence, the pool size is now validated in CI and an alert triggers when connection wait times exceed thresholds.
Два предложения, 331 символ — и 146 токенов выхода. Многовато для такого короткого текста, и ответ сам объяснил почему: в usage нашлось ещё одно поле, reasoning_. Перед ответом модель потратила 76 токенов на размышление. Они входят в те же 146 (250 входа + 146 выхода = 396 всего), так что примерно половина выхода ушла на размышление, которое не входит в текст ответа, — и оплачивается оно как обычный выход.
Это полезно помнить, когда считаете бюджет: на задачах, где модель сначала думает, выход бывает заметно больше текста, который вы получаете. Тысяча таких пересказов стоит $0.0344.
Письмо на входе, чистый JSON на выходе#
Третья задача — письмо о заказе, из которого нужна запись для базы данных.

Модель вернула ровно те ключи, которые мы просили, и ничего вокруг — никаких «Вот ваш JSON». Сумма совпадает с письмом, а дата доставки пришла как 2026-11-03 — сразу в нужном формате. 199 токенов на вход, 100 на выход.
Интереснее другое — плотность: 100 токенов на 276 символов JSON, тогда как ответ про git занял 87 токенов на 421 символ обычного текста. Кавычки, скобки и запятые — тоже токены, поэтому структурированный ответ в пересчёте на символ дороже прозы. Тысяча таких писем — $0.025.
Все три рядом#
Прокрутите таблицу вправо →
| Задача | Токенов на входе | Токенов на выходе | 1 000 запросов |
|---|---|---|---|
| Быстрый вопрос | 23 | 87 | $0.0142 |
| Пересказ | 250 | 146 | $0.0344 |
| Письмо в JSON | 199 | 100 | $0.025 |
Стоимость считается по этим счётчикам и текущей цене MiniMax-M2.7, так что при смене цен она останется верной.
Выход перевешивает во всех трёх задачах — даже в пересказе, где мы отправили больше, чем получили. Так что самый простой рычаг, чтобы платить меньше, — длина ответа: «в двух-трёх предложениях» или «верни только JSON» действительно работают.
Для масштаба: бот поддержки, который отвечает на 2 000 быстрых вопросов в день, каждый как первый, тратит на MiniMax-M2.7 около $0.852 в месяц. В настоящем чате история пересылается каждый раз, поэтому вход растёт с каждым сообщением, но для разовых вопросов счёт именно такой.
Проверьте на своих промптах#
На ваших промптах цифры будут другими, и узнать их — дело минуты. Скрипт ниже отправляет каждый промпт, пропускает ответы, обрезанные по лимиту, и печатает токены и цену 1 000 запросов:
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.cheaptokens.dev/v1", api_key=os.environ["CHEAPTOKENS_API_KEY"])
MODEL = "MiniMaxAI/MiniMax-M2.7"
PRICE_IN, PRICE_OUT = 1.00, 4.00 # USD per 1M tokens: example values, use the current ones from the price list
PROMPTS = [
"What is the difference between git merge and git rebase? Answer in two or three sentences.",
# add your own prompts here
]
for prompt in PROMPTS:
r = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": prompt}],
max_tokens=2048,
temperature=0.2,
)
if r.choices[0].finish_reason != "stop":
print("cut off at max_tokens, raise the limit:", prompt[:40])
continue
tin, tout = r.usage.prompt_tokens, r.usage.completion_tokens
per_1000 = (tin * PRICE_IN + tout * PRICE_OUT) * 1000 / 1_000_000
print(f"{tin} in, {tout} out, 1,000 requests = ${per_1000:.4f} | {prompt[:40]}")Подставьте текущие цены в PRICE_IN и PRICE_OUT: для MiniMax-M2.7 это $0.05 за 1M токенов входа и $0.15 за 1M токенов выхода. Первый промпт — из нашего теста; у разных моделей счёт токенов немного отличается, так что ждите цифры того же порядка, что 23 на входе и 87 на выходе. Нужен пакет openai (pip install openai) и ключ в CHEAPTOKENS_.
Если какая-то цифра странная: finish_ значит, что ответ упёрся в max_tokens (почему ответ обрывается на полуслове); большой reasoning_tokens объясняет выход больше самого текста; а формула для цен входа и выхода — в статье вход и выход: за что вы платите.
С чего начать#
В сумме, с учётом входа и выхода, MiniMax-M2.7 в CheapTokens дешевле референсной цены OpenRouter во всех трёх задачах выше. У модели контекст 180K, ответ до 8 192 токенов и одна цена в любое время суток. Пополните баланс, создайте ключ и отправьте запрос curl из начала статьи: в документации — ключ и базовый адрес, на странице DeepSeek — каталог моделей, на странице цен — актуальные цены.



