Початок роботиПосібник
Перший API-запит у VS Code: файл .http, ключ із .env
Надішліть свій перший chat completion до CheapTokens із VS Code за допомогою розширення REST Client, тримайте ключ поза git і знайдіть відповідь і використання токенів.

На цій сторінці
Ви можете надіслати свій перший запит до CheapTokens, не виходячи з VS Code: встановіть розширення REST Client, напишіть файл .http, тримайте ключ у .env поруч із ним і натисніть Ctrl+Alt+R. Відповідь відкривається на панелі поруч із файлом, а текст і кількість токенів — це два поля, які ви побачите з першого погляду.
Якщо у вас уже відкритий редактор, це краще, ніж встановлювати ще один застосунок лише для того, щоб сказати моделі «Hello». А запит залишається у звичайному текстовому файлі, тож ви можете повторити його завтра або закомітити (без ключа) для колеги. Інші способи надіслати той самий запит — у Перший запит з HTTPie та Ваш перший API-запит із CheapTokens.
Встановіть розширення та додайте ключ у .env#
REST Client — це розширення humao.. У VS Code натисніть F1, введіть ext install, знайдіть rest-client і встановіть його. (Перевірено за README розширення 9 листопада 2026 року.)
Тепер ключ. У README описано {{$dotenv NAME}}: воно читає значення з файлу .env, що лежить у тій самій директорії, що й ваш файл .http. Це саме те, що нам потрібно, бо ключ ніколи не з'являється у файлі запиту. Створіть теку для експерименту й покладіть у неї два файли.
.env:
CHEAPTOKENS_API_KEY=paste-your-key-here.gitignore:
.envСтворіть ключ у своєму акаунті CheapTokens і вставте його замість заповнювача. Чому рядок ігнорування важливий і що робити, якщо ключ колись потрапить у коміт, описано в Безпечне зберігання API-ключа.
Розставте по порядку
Розташуйте налаштування в правильному порядку
Перетягніть елементи або скористайтеся стрілками
- Встановіть розширення REST Client
- Додайте .env до .gitignore
- Покладіть ключ у .env поруч із файлом .http
- Натисніть Ctrl+Alt+R на запиті
Напишіть файл .http#
Створіть first.http у тій самій теці. Синтаксис короткий: рядок запиту (POST URL HTTP/, метод необов'язковий і за замовчуванням GET), рядки заголовків Name: value до першого порожнього рядка, потім тіло після порожнього рядка. Запити розділяються рядком із трьох або більше #.
### First request
POST https://api.cheaptokens.dev/v1/chat/completions
Authorization: Bearer {{$dotenv CHEAPTOKENS_API_KEY}}
Content-Type: application/json
{
"model": "zai-org/GLM-5.3-Flash",
"messages": [{ "role": "user", "content": "Hello" }]
}Зверніть увагу на три речі. Адреса — це базова адреса API CheapTokens, https:/, плюс /. Модель записана повним ідентифікатором, zai-: модель із контекстом 390K, яка може писати до 8 192 токенів на відповідь. А ключ — це лише заповнювач {{$dotenv …}}, тож цей файл безпечно комітити.

Якщо ваше налаштування не підхоплює файл .env, у README також описано {{$processEnv NAME}}, яке натомість читає змінну з середовища вашої машини.
Надішліть запит і знайдіть відповідь#
Натисніть «Send Request» над рядком запиту або натисніть Ctrl+Alt+R (Cmd+Alt+R на macOS). Також можна клацнути правою кнопкою миші або скористатися F1. Відповідь відкривається на окремій панелі. Якщо ви віддаєте перевагу звичайній вкладці редактора, де можна шукати й згортати, встановіть rest- у true у налаштуваннях.
Відповідь — це стандартний JSON chat-completions. У перший день важливі два місця:
choices[0].— це текст відповіді. Поруч із нимmessage. content finish_reasonповідомляє, чому модель зупинилася.lengthозначає, що відповідь обрізано через ліміт токенів.usageмістить кількість токенів для цього запиту: токени, які ви надіслали, і токени, які написала модель. Саме за це ви платите, тож переглядайте це щоразу.

Спробуйте саміСпробуйте: як побачити, що відповідь обрізано?Показати відповідь
Подивіться на finish_reason у відповіді. Якщо там length, модель досягла ліміту токенів, перш ніж завершити. Додайте рядок "max_tokens" до тіла або збільште його й надішліть знову.
Щоб відчути вартість: скажімо, ви надсилаєте цей запит 100 разів із приблизно 1 000 токенів на вході та 300 на виході (припущення для прикладу, а не вимірювання).
| Модель | Вхід $/1М | Вихід $/1М | За запит | 100 запитів | OpenRouter, 100 запитів |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000032 | $0.0032 | $0.0058 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000045 | $0.0045 | $0.0112 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000095 | $0.0095 | $0.114 |
1 000 вхідних і 300 вихідних токенів на запит. Ціни за 1 млн токенів актуальні та змінюються разом із нашими тарифами; стовпець OpenRouter показує довідкові ціни для того самого навантаження.
Таблиця показує поточну ціну такого навантаження на кожній моделі, з колонкою OpenRouter для порівняння. Крихітне «Hello» коштує набагато менше.
Замініть модель одним рядком#
Зручна частина звичайного текстового файлу: змініть один рядок і надішліть знову. Замініть ідентифікатор моделі на deepseek- (контекст 380K, до 32 768 токенів на відповідь, одна ціна будь-якої пори доби, загалом дешевше за OpenRouter з урахуванням входу й виходу разом) і натисніть Ctrl+Alt+R ще раз. Те саме тіло, той самий ключ, інша відповідь і інший usage.
Хочете зберегти обидва? Вставте другий запит нижче рядка ### з іншим ідентифікатором моделі. Кожен запит отримує власне посилання Send Request, тож ви можете запускати їх один за одним і порівнювати. Не впевнені в ідентифікаторі? Список моделей через GET /v1/models показує точні рядки.
Якщо не працює#
З'єднайте пари
Зіставте симптом із причиною
Торкніться елемента ліворуч, потім його пари
- 401 UnauthorizedКлюч порожній або неправильний, часто через те, що .env не в тій самій теці, що й файл .http
- 404 Not FoundДрукарська помилка в шляху URL або в ідентифікаторі моделі
- Відповідь обривається посеред речення, finish_reason дорівнює lengthДосягнуто ліміту токенів, збільште max_tokens
Для перших двох API 401 або 404: неправильний ключ, базова URL-адреса або ідентифікатор моделі проводить через перевірки. Повні подробиці запиту — у документації CheapTokens, а поточні ціни — на сторінці цін.
Ось і весь робочий процес: один файл, один ключ у .env, один ярлик. Звідси ви можете додати системне повідомлення, змінити max_tokens або перетворити те саме тіло на код будь-якою мовою.



