Початок роботиПосібник
Перехід з OpenRouter на CheapTokens: base_url, ключ, ідентифікатор моделі
Змініть base_url, ключ API та ідентифікатор моделі в OpenAI SDK (Python і JavaScript), надішліть перший запит і перевірте, що він спрацював.

На цій сторінці
Ваш застосунок уже звертається до OpenRouter через OpenAI SDK, і ви хочете, щоб він звертався до CheapTokens. Ви змінюєте три значення — base_url, ключ API та ідентифікатор model — і видаляєте два необов'язкові заголовки. Решта коду залишається як є.
Нижче — точні рядки для Python, JavaScript і curl, швидкий спосіб переконатися, що перемикання спрацювало, і таблиця, яка модель підходить для якої задачі. Якщо ви ніколи не надсилали запит до CheapTokens, посібник із першого запиту до API охоплює акаунт і ключ; у документації є повний довідник.
Що насправді змінюється#
Швидкий старт OpenRouter (перевірено 27 жовтня 2026) налаштовує клієнт OpenAI з базовою URL-адресою https:/ і називає моделі як provider/. CheapTokens говорить у тому самому форматі OpenAI Chat Completions за адресою https:/. Тож клас клієнта, chat. і спосіб читання відповіді не змінюються.

Це одна заміна на рядок:
- базова URL-адреса —
https:/замість адреси OpenRouter;/ api. cheaptokens. dev/ v1 - ключ API — ключ з вашого акаунта CheapTokens, прочитаний зі змінної середовища;
- ідентифікатор моделі — повний ідентифікатор CheapTokens, наприклад
deepseek-. Беріть ідентифікатори з документації CheapTokens: різні провайдери називають ту саму модель по-різному, а короткі ідентифікатори з цінників не приймаються.ai/ DeepSeek- V4- Flash- 0731
І одне видалення. Заголовки OpenRouter HTTP-Referer і X- необов'язкові й лише живлять таблиці лідерів OpenRouter. Видаліть їх з default_headers / defaultHeaders; тут вони вам не потрібні.
Код після перемикання#
Той самий запит, три середовища виконання. Виберіть те, яке використовує ваш застосунок.
Ваш код після перемикання
Python
import os
from openai import OpenAI
client = OpenAI(
base_url='https://api.cheaptokens.dev/v1',
api_key=os.environ['CHEAPTOKENS_API_KEY'],
)
resp = client.chat.completions.create(
model='deepseek-ai/DeepSeek-V4-Flash-0731',
messages=[{'role': 'user', 'content': 'Reply with one word: ready'}],
max_tokens=20,
)
print(resp.choices[0].message.content)JavaScript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.cheaptokens.dev/v1',
apiKey: process.env.CHEAPTOKENS_API_KEY,
});
const resp = await client.chat.completions.create({
model: 'deepseek-ai/DeepSeek-V4-Flash-0731',
messages: [{ role: 'user', content: 'Reply with one word: ready' }],
max_tokens: 20,
});
console.log(resp.choices[0].message.content);curl
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "deepseek-ai/DeepSeek-V4-Flash-0731", "messages": [{"role": "user", "content": "Reply with one word: ready"}], "max_tokens": 20}'Ще одне перед запуском. Якщо ваш запит містить поля, призначені лише для OpenRouter — списки маршрутизації чи резервних варіантів, налаштування провайдера, ідентифікатори моделей ~alias — вони належать OpenRouter. Обмежте запит стандартними полями Chat Completions: model, messages, temperature, max_tokens, stream.
Перевірте, що це спрацювало#
Відповідь — ще не достатній доказ. Виведіть поруч із нею три речі: яка модель відповіла, чому вона зупинилася і скільки токенів вона нарахувала.
print(resp.model)
print(resp.choices[0].finish_reason)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)
finish_reason від stop означає, що модель завершила самостійно. length означає, що max_tokens обірвав відповідь. usage показує вхідні та вихідні токени окремо, і саме з цих двох чисел складається ваш рахунок — ті самі два, які ви відстежували на OpenRouter.
Спробуйте саміСпробуйте: що скаже finish_reason, якщо встановити max_tokens у 1?Показати відповідь
Він скаже length — відповідь була обірвана через max_tokens. Гарний тест, що ваш код обробляє обрізану відповідь.
Яка модель що замінює#
Вибирайте модель за задачею, а не за назвою, яку ви використовували на OpenRouter. Факти нижче — з прайс-листа CheapTokens, перевіреного 27 жовтня 2026; один баланс покриває всі три моделі, і ціна не змінюється залежно від часу доби.
Прокрутіть таблицю праворуч →
| Модель | Ідентифікатор model |
Контекст | Макс. відповідь |
|---|---|---|---|
| DeepSeek-V4-Flash | deepseek- |
380K | 32 768 токенів |
| GLM-5.3-Flash | zai- |
390K | 8 192 токени |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8 192 токени |
Не впевнені, який рядок ваш? Почніть із того, що робить застосунок:
Оберіть свій випадок
Що ваш застосунок робить переважно?
Виберіть варіант, щоб побачити відповідь
Короткі часті запити — класифікація, вилучення, відповіді підтримки
Спробуйте zai-: контекст 390K, відповіді до 8 192 токенів, і загалом він дешевший за OpenRouter з урахуванням вхідних і вихідних токенів разом.
Довгі відповіді, код, цикли агентів
Спробуйте deepseek-: відповіді до 32 768 токенів, контекст 380K, одна ціна в будь-яку годину доби.
Стабільне навантаження, за яке ви зараз платите високий тариф OpenRouter
Спробуйте MiniMaxAI/: контекст 180K, відповіді до 8 192 токенів, і загалом він виходить дешевшим за OpenRouter.
Скільки коштує той самий трафік#
Припустімо, ваш бот надсилає 1 000 запитів, кожен приблизно з 500 вхідними токенами та 300 вихідними. Це припущення — підставте свої цифри з usage. Таблиця нижче актуальна: наші ціни та стовпець OpenRouter взяті з поточного прайс-листа, вхідні та вихідні токени пораховані разом.
| Модель | Вхід $/1М | Вихід $/1М | За запит | 1 000 запитів | OpenRouter, 1 000 запитів |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000022 | $0.022 | $0.0434 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000038 | $0.0375 | $0.0708 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00007 | $0.07 | $0.51 |
500 вхідних і 300 вихідних токенів на запит. Ціни за 1 млн токенів актуальні та змінюються разом із нашими тарифами; стовпець OpenRouter показує довідкові ціни для того самого навантаження.
На DeepSeek-V4-Flash ці 1 000 запитів коштують $0.0375. Повні ціни — на сторінці цін; про те, за що ви платите, — у вхідні проти вихідних токенів.
Якщо не працює#
Після перемикання три помилки охоплюють більшість проблем. Зіставте повідомлення з причиною:
З'єднайте пари
Зіставте кожен симптом із його причиною
Торкніться елемента ліворуч, потім його пари
- 401 UnauthorizedКлюч відсутній, введений з помилкою або досі від OpenRouter
- 404 Not FoundШлях базової URL-адреси неправильний або ідентифікатор моделі не є повним ідентифікатором CheapTokens
- Відповідь обірвана посеред реченняmax_tokens менший, ніж потрібно для відповіді; finish_reason каже length
Стаття про усунення несправностей 401 і 404 проходить кожну з точними повідомленнями, а що таке base_url пояснює, чому один неправильний слеш ламає шлях.
Перед релізом#
Чек-лист
Контрольний список перемикання



