Початок роботиПосібник
Перший запит до CheapTokens з HTTPie: ключ у env, = і :=
Одна читабельна команда http, яка надсилає chat completion з ключем у змінній середовища, а потім показує, де відповідь і використання токенів.

На цій сторінці
Ви хочете переконатися, що ключ працює, а ідентифікатор моделі правильний, і зробити це одним рядком. Команда HTTPie http робить це з набагато меншою кількістю лапок, ніж curl: ви вводите поля, а вона будує JSON. Ось увесь запит, а решта статті пояснює кожну частину.
export CHEAPTOKENS_API_KEY="paste-your-key-here"
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]'API сумісний з OpenAI, тому базовий URL — https:/, а запити чату йдуть на / під ним. Ідентифікатор моделі — повний, deepseek- (коротка назва з таблиць цін не приймається). Якщо ви ще не зберігали ключ, спершу збережіть API-ключ безпечно: введення рядка export додає ключ до історії вашої оболонки, тож файл профілю або менеджер секретів — краще місце для нього.

Що насправді роблять = і :=#
Це єдина частина HTTPie, яку вам потрібно вивчити. Документація HTTPie щодо JSON (версія 3.2.4, від 1 листопада 2024 року, прочитана 9 листопада 2026 року) каже, що = задає рядкове поле, а := задає сире значення JSON: число, булеве значення, масив або об'єкт. Поля, задані в такий спосіб, за замовчуванням надсилаються як тіло JSON, тож ви не додаєте заголовок Content-Type самостійно.
У нашому запиті це дає три різні форми:
model=deepseek-— це рядок, томуai/ DeepSeek- V4- Flash- 0731 =.max_tokens:=200— це число, тому:=. З=ви надіслали б рядок"200".messages:=[…]— це масив об'єктів, тому знову:=, а значення береться в одинарні лапки, щоб оболонка не чіпала внутрішні подвійні лапки.
Документація також каже, що тіло зі stdin не можна поєднувати з полями командного рядка, тож оберіть один стиль. Для першого тесту поля коротші й легші для редагування.
Швидка перевірка
Що надсилає max_tokens=200 (із звичайним =)?
Показати відповідь
Відповідь: Рядок "200"
= завжди створює рядок. Для числа потрібен :=, тож пишіть max_tokens:=200.
Де відповідь#
Відповідь має формат chat-completions від OpenAI. Ви шукаєте три речі, і вони розташовані в різних місцях:
{
"choices": [
{
"message": { "role": "assistant", "content": "…the answer text…" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": …, "completion_tokens": …, "total_tokens": … }
}Текст відповіді — choices[0].. finish_reason поруч із ним у тому самому choice, а usage — на верхньому рівні. usage показує, скільки токенів ви надіслали (prompt_tokens) і скільки написала модель (completion_), що зручно для оцінки вартості запиту.

Якщо вам потрібен лише текст, передайте тіло в jq:
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]' \
| jq -r '.choices[0].message.content'Спробуйте саміСпробуйте: зробіть ліміт замалим і прочитайте finish_reasonПоказати відповідь
Змініть max_tokens:=200 на max_tokens:=5 і запустіть знову. Відповідь обірвана, і finish_reason показує length замість stop: ліміт зупинив модель, а не кінець думки. Чому відповідь обривається пояснює, як це виправити.
Замініть модель: змініть одне поле#
Модель — це один рядок, тож спробувати іншу — правка в одне слово. Обидва ідентифікатори нижче доступні на CheapTokens з одним балансом; DeepSeek-V4-Flash дає вам контекст 380K і до 32 768 вихідних токенів на відповідь, GLM-5.3-Flash — контекст 390K і до 8 192.
Один запит, дві моделі
DeepSeek-V4-Flash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'GLM-5.3-Flash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=zai-org/GLM-5.3-Flash \
max_tokens:=200 \
'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'Не впевнені, який ідентифікатор використовувати? Перелічіть моделі за допомогою GET /v1/models і скопіюйте точний рядок.
Скільки коштує один тестовий запит#
Коротке запитання, як це, дешеве. Скажімо, запитання — близько 100 токенів, а відповідь — близько 150: такий запит коштує $0.000017. Тисяча таких виглядає так, з урахуванням вхідних і вихідних токенів разом:
| Модель | Вхід $/1М | Вихід $/1М | За запит | 1 000 запитів | OpenRouter, 1 000 запитів |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000008 | $0.008 | $0.0158 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000017 | $0.0165 | $0.028 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000028 | $0.0275 | $0.33 |
100 вхідних і 150 вихідних токенів на запит. Ціни за 1 млн токенів актуальні та змінюються разом із нашими тарифами; стовпець OpenRouter показує довідкові ціни для того самого навантаження.
Загалом, з урахуванням вхідних і вихідних токенів разом, DeepSeek-V4-Flash виходить дешевшим, ніж OpenRouter, а ціна — це одна фіксована ставка без пікових годин. Актуальні тарифи для кожної моделі — на сторінці цін.
Якщо не працює#
- Ви ввели
messages=[…]зі звичайним=. Масив надсилається як рядок, а не як список повідомлень. Використовуйте:=та одинарні лапки навколо всього значення. - JSON усередині
:=недійсний. Кожен ключ і рядок потребує подвійних лапок, а зовнішні лапки мають бути одинарними. Якщо ви редагуєте текст повідомлення, зберігайте баланс лапок. - Ключ порожній.
echo ${#CHEAPTOKENS_виводить довжину, не показуючи ключ;API_ KEY} 0означає, що змінна не задана в цьому терміналі. - Ідентифікатор моделі — коротка назва. Використовуйте повний
deepseek-. Щодо відповідей 401 і 404 дивіться неправильний ключ, базовий URL або ідентифікатор моделі.ai/ DeepSeek- V4- Flash- 0731 - Ви потягнулися до
--session. Документація HTTPie щодо автентифікації каже, що файли сесій зберігають облікові дані у відкритому тексті, тож тримайте ключ у змінній середовища й залиште--sessionпоза цією командою.
Перевірте свою версію за допомогою http --version, якщо якийсь прапорець поводиться інакше, ніж описано вище. Надаєте перевагу Python? Той самий запит без SDK — у першому запиті в Python з requests. Повний довідник API дивіться в документації CheapTokens.



