शुरुआत करेंगाइड
OpenRouter से CheapTokens पर स्विच करें: base_url, key, model id
OpenAI SDK (Python और JavaScript) में base_url, API key और model id बदलें, पहली रिक्वेस्ट भेजें और जाँचें कि यह काम कर गई।

इस पृष्ठ पर
आपका ऐप पहले से ही OpenAI SDK के ज़रिए OpenRouter को कॉल करता है, और आप चाहते हैं कि यह इसके बजाय CheapTokens को कॉल करे। आप तीन वैल्यू बदलते हैं — base_url, API key और model id — और दो वैकल्पिक हेडर हटा देते हैं। बाकी कोड वैसा ही रहता है।
नीचे Python, JavaScript और curl के लिए सटीक लाइनें हैं, स्विच काम कर गया यह पक्का करने का एक त्वरित तरीका है, और एक तालिका है कि कौन-सा मॉडल किस काम के लिए फिट है। अगर आपने कभी CheapTokens पर रिक्वेस्ट नहीं भेजी है, तो पहली API रिक्वेस्ट गाइड में अकाउंट और key शामिल हैं; डॉक्स में पूरा संदर्भ है।
असल में क्या बदलता है#
OpenRouter का quickstart (27 अक्टूबर 2026 को जाँचा गया) OpenAI क्लाइंट को base URL https:/ के साथ कॉन्फ़िगर करता है और मॉडलों को provider/ के रूप में नाम देता है। CheapTokens https:/ पर वही OpenAI Chat Completions फ़ॉर्मैट बोलता है। इसलिए क्लाइंट क्लास, chat. और जवाब पढ़ने का तरीका नहीं बदलता।

यानी हर लाइन में एक बदलाव:
- base URL — OpenRouter के पते के बजाय
https:/;/ api. cheaptokens. dev/ v1 - API key — आपके CheapTokens अकाउंट की key, जो environment variable से पढ़ी जाती है;
- model id — पूरा CheapTokens id, उदाहरण के लिए
deepseek-। id CheapTokens डॉक्स से लें: अलग-अलग प्रोवाइडर एक ही मॉडल को अलग नाम देते हैं, और प्राइस लेबल वाले छोटे id स्वीकार नहीं किए जाते।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 model id — तो वे 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)
stop का finish_reason मतलब है कि मॉडल ने अपने आप खत्म किया। length मतलब max_tokens ने जवाब काट दिया। usage इनपुट और आउटपुट टोकन अलग-अलग दिखाता है, और आपका बिल इन्हीं दो संख्याओं से बनता है — वही दो जिन्हें आप OpenRouter पर ट्रैक कर रहे थे।
स्वयं आज़माएँआज़माएँ: अगर आप max_tokens को 1 पर सेट करें तो finish_reason क्या कहता है?उत्तर दिखाएँ
यह length कहता है — जवाब max_tokens से काट दिया गया। यह अच्छा टेस्ट है कि आपका कोड कटे हुए जवाब को संभालता है।
कौन-सा मॉडल किसकी जगह लेता है#
मॉडल को काम के हिसाब से चुनें, न कि उस नाम के हिसाब से जो आपने OpenRouter पर इस्तेमाल किया था। नीचे के तथ्य 27 अक्टूबर 2026 को जाँची गई CheapTokens प्राइस लिस्ट से हैं; एक बैलेंस तीनों मॉडलों को कवर करता है और कीमत दिन के समय के साथ नहीं बदलती।
तालिका को दाईं ओर स्क्रॉल करें →
| Model | model id |
Context | Max answer |
|---|---|---|---|
| DeepSeek-V4-Flash | deepseek- |
380K | 32,768 tokens |
| GLM-5.3-Flash | zai- |
390K | 8,192 tokens |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8,192 tokens |
पक्का नहीं कि कौन-सी पंक्ति आपकी है? ऐप क्या करता है उससे शुरू करें:
अपना मामला चुनें
आपका ऐप ज़्यादातर क्या करता है?
उत्तर देखने के लिए एक विकल्प चुनें
छोटी, बार-बार होने वाली रिक्वेस्ट — क्लासिफ़िकेशन, एक्सट्रैक्शन, सपोर्ट जवाब
zai- आज़माएँ: 390K context, 8,192 टोकन तक के जवाब, और इनपुट व आउटपुट मिलाकर कुल में यह OpenRouter से सस्ता है।
लंबे जवाब, कोड, एजेंट लूप
deepseek- आज़माएँ: 32,768 टोकन तक के जवाब, 380K context, दिन के किसी भी घंटे एक ही कीमत।
एक स्थिर वर्कलोड जिसके लिए आप अभी OpenRouter की ऊँची दर चुका रहे हैं
MiniMaxAI/ आज़माएँ: 180K context, 8,192 टोकन तक के जवाब, और कुल में यह OpenRouter से सस्ता पड़ता है।
वही ट्रैफ़िक कितने का पड़ता है#
मान लें आपका बॉट 1,000 रिक्वेस्ट भेजता है, हर एक में लगभग 500 इनपुट टोकन और 300 आउटपुट टोकन। यह एक अनुमान है — usage से अपनी संख्याएँ डालें। नीचे की तालिका लाइव है: हमारी कीमतें और OpenRouter कॉलम मौजूदा प्राइस लिस्ट से हैं, इनपुट और आउटपुट मिलाकर।
| मॉडल | इनपुट $/1M | आउटपुट $/1M | प्रति अनुरोध | 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 आउटपुट टोकन। प्रति 1M टोकन की कीमतें वर्तमान हैं और हमारे टैरिफ के साथ बदलती रहती हैं; OpenRouter कॉलम समान कार्यभार के लिए संदर्भ कीमतें दिखाता है।
DeepSeek-V4-Flash पर वे 1,000 रिक्वेस्ट $0.0375 में आती हैं। पूरी कीमतें प्राइसिंग पेज पर हैं; आपसे किस चीज़ का बिल लिया जाता है इसका विचार इनपुट बनाम आउटपुट टोकन में है।
अगर यह काम न करे#
स्विच के बाद, तीन एरर ज़्यादातर परेशानी कवर कर लेते हैं। संदेश को कारण से मिलाएँ:
जोड़े मिलाएँ
हर लक्षण को उसके कारण से मिलाएँ
बाईं ओर एक आइटम पर टैप करें, फिर उसका जोड़ा
- 401 UnauthorizedKey गायब है, गलत टाइप हुई है, या अभी भी OpenRouter की है
- 404 Not Foundbase URL का पाथ गलत है या model id पूरा CheapTokens id नहीं है
- जवाब बीच वाक्य में कट गयाmax_tokens जवाब की ज़रूरत से कम है; finish_reason length कहता है
401 और 404 ट्रबलशूटिंग लेख हर एक को सटीक संदेशों के साथ समझाता है, और base_url क्या है बताता है कि एक गलत स्लैश पाथ को क्यों तोड़ देता है।
शिप करने से पहले#
चेकलिस्ट
स्विच चेकलिस्ट



