इनपुट बनाम आउटपुट टोकन: AI API आपसे किसका बिल लेता है
AI API इनपुट और आउटपुट टोकन अलग-अलग क्यों गिनता है, उन्हें usage फ़ील्ड में कहाँ पढ़ें, और एक रिक्वेस्ट की लागत कैसे निकालें।

इस पृष्ठ पर
यदि आपने अभी-अभी किसी भाषा मॉडल को अपनी पहली API कॉल की है, तो आपने संभवतः रिस्पॉन्स में usage ब्लॉक देखा होगा और सोचा होगा कि यह वास्तव में क्या गिनता है। संक्षिप्त उत्तर: हर रिक्वेस्ट में दो मीटर होते हैं। एक आपके द्वारा भेजे गए टोकन (इनपुट) गिनता है, दूसरा मॉडल द्वारा वापस लिखे गए टोकन (आउटपुट) गिनता है। प्रत्येक मीटर की अपनी कीमत होती है, और एक रिक्वेस्ट की लागत दोनों का योग होती है।
यह गाइड दिखाती है कि संख्याएँ कहाँ मिलती हैं, उन्हें डॉलर में कैसे बदलें, और कम खर्च करने के लिए आप क्या बदल सकते हैं। यदि "टोकन" शब्द अभी भी अस्पष्ट है, तो What is a token in AI? से शुरू करें।
इनपुट क्या गिना जाता है और आउटपुट क्या गिना जाता है#
इनपुट टोकन वह सब कुछ हैं जो मॉडल को आपका उत्तर देने के लिए पढ़ना पड़ता है:
- आपका नवीनतम संदेश;
- सिस्टम प्रॉम्प्ट (जैसे निर्देश "संक्षेप में, अंग्रेज़ी में उत्तर दें");
- बातचीत के पिछले संदेश, यदि आप उन्हें फिर से भेजते हैं;
- वे दस्तावेज़, कोड या खोज परिणाम जो आप रिक्वेस्ट में पेस्ट करते हैं।
आउटपुट टोकन वह सब कुछ हैं जो मॉडल उत्तर में उत्पन्न करता है। OpenAI-संगत फ़ॉर्मेट में यह choices[0]. में मौजूद टेक्स्ट है। थिंकिंग मोड वाले कुछ मॉडल अंतिम उत्तर से पहले रीज़निंग टोकन भी उत्पन्न करते हैं; यह देखने के लिए कि क्या उनका बिल आउटपुट के रूप में होता है, मॉडल के प्राइसिंग पेज को देखें।
शुरुआती लोगों के लिए महत्वपूर्ण बात: मॉडल रिक्वेस्ट के बीच आपकी चैट याद नहीं रखता। एक चैट ऐप हर बार पूरा इतिहास फिर से भेजता है, इसलिए लंबी बातचीत का इनपुट हर टर्न के साथ बढ़ता है, भले ही आपका नया संदेश एक पंक्ति का हो।
संख्याएँ कहाँ पढ़ें: usage ब्लॉक#
OpenAI-संगत API से हर नॉन-स्ट्रीमिंग रिस्पॉन्स usage ऑब्जेक्ट के साथ समाप्त होता है। यह इसके स्वरूप का एक शैक्षिक उदाहरण है:
{
"choices": [
{ "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" }
],
"usage": {
"prompt_tokens": 2000,
"completion_tokens": 500,
"total_tokens": 2500
}
}तालिका को दाईं ओर स्क्रॉल करें →
| फ़ील्ड | इसका क्या अर्थ है | बिल किस रूप में |
|---|---|---|
prompt_tokens |
आपके द्वारा भेजे गए सब कुछ में टोकन | इनपुट |
completion_ |
मॉडल द्वारा उत्पन्न टोकन | आउटपुट |
total_tokens |
prompt_tokens + completion_ |
अलग कीमत नहीं: यह केवल योग है |
शुरुआती लोगों की एक आम गलती है total_tokens को एक ही कीमत से गुणा करना। चूँकि इनपुट और आउटपुट की कीमतें अलग होती हैं, आपको दोनों संख्याएँ अलग-अलग चाहिए।
कुछ प्रदाता अतिरिक्त फ़ील्ड जोड़ते हैं। उदाहरण के लिए, DeepSeek का अपना API prompt_tokens को prompt_ और prompt_ में भी विभाजित करता है और थिंकिंग मोड में reasoning_tokens रिपोर्ट करता है (स्रोत: DeepSeek API docs, 21 अक्टूबर 2026 को जाँचा गया)। तालिका में दिए गए तीन फ़ील्ड वे हैं जिन पर आप किसी भी OpenAI-संगत रिस्पॉन्स में भरोसा कर सकते हैं।
जब आप उत्तर स्ट्रीम करते हैं, तो शुरुआत में usage ज्ञात नहीं होता। DeepSeek के अपने API में यह data: [DONE] से पहले अंतिम कंटेंट चंक में आता है (DeepSeek API docs, 21 अक्टूबर 2026 को जाँचा गया); अन्य API इसे अलग तरीके से या केवल अनुरोध पर भेज सकते हैं, इसलिए देखें कि आपका क्लाइंट क्या प्राप्त करता है। स्ट्रीमिंग को Streaming responses in Python में कवर किया गया है।
दोनों पक्षों की कीमतें अलग क्यों होती हैं#
आपका प्रॉम्प्ट पढ़ना और उत्तर लिखना अलग-अलग प्रकार के काम हैं। मॉडल पूरे प्रॉम्प्ट को एक ही पास में प्रोसेस करता है, लेकिन उसे उत्तर एक बार में एक टोकन उत्पन्न करना पड़ता है, और हर नया टोकन पिछले टोकन पर निर्भर करता है। इसी कारण प्रदाता आमतौर पर आउटपुट की कीमत इनपुट से अधिक रखते हैं, और इसी कारण आपको किसी भी मूल्य सूची में प्रति मॉडल दो संख्याएँ दिखती हैं।
नीचे उदाहरण के रूप में उपयोग किया गया मॉडल, MiniMax-M2.7 (id minimax-m2.7), इसी पैटर्न का पालन करता है। प्रति 1M टोकन की वर्तमान कीमतें इनपुट के लिए $0.05 और आउटपुट के लिए $0.15 हैं।
सूत्र#
कीमतें प्रति 1 मिलियन टोकन के हिसाब से दी जाती हैं, इसलिए एक रिक्वेस्ट की लागत है:
cost = input_tokens × input_price ÷ 1,000,000
+ output_tokens × output_price ÷ 1,000,000यहाँ इसे काल्पनिक गोल कीमतों के साथ दिया गया है, केवल अंकगणित दिखाने के लिए (उदाहरण, नीचे दी गई तालिका से वर्तमान कीमतें लगाएँ):
# example, substitute current prices from the table
price_in = 0.20 # USD per 1M input tokens
price_out = 0.80 # USD per 1M output tokens
prompt_tokens = 2000
completion_tokens = 500
cost = (prompt_tokens * price_in + completion_tokens * price_out) / 1_000_000
# 2000 × 0.20 ÷ 1,000,000 = 0.0004 (input)
# 500 × 0.80 ÷ 1,000,000 = 0.0004 (output)
# 0.0004 + 0.0004 = 0.0008 USDएक वास्तविक मॉडल के साथ हल किया गया उदाहरण#
ऊपर दिए गए usage उदाहरण से रिक्वेस्ट लें: 2,000 इनपुट टोकन और 500 आउटपुट टोकन। CheapTokens के माध्यम से MiniMax-M2.7 पर इसकी लागत $0.00018 है। यह संख्या हर बार पेज दिखाए जाने पर वर्तमान मूल्य सूची से गणना की जाती है।
एक अकेली रिक्वेस्ट बहुत छोटी होती है, इसलिए इसे बड़ा करके देखना उपयोगी है। एक छोटा ऐप जो इस आकार की 10,000 रिक्वेस्ट भेजता है, वह 20,000,000 इनपुट टोकन और 5,000,000 आउटपुट टोकन उपयोग करता है, जो $1.75 होता है।
हमारी सूची के अन्य मॉडलों पर वही रिक्वेस्ट:
| मॉडल | इनपुट $/1M | आउटपुट $/1M | लागत | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00006 | $0.00012 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00008 | $0.00017 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00018 | $0.0012 |
कुल 2,000 इनपुट और 500 आउटपुट टोकन। प्रति 1M टोकन की कीमतें वर्तमान हैं और हमारे टैरिफ के साथ बदलती रहती हैं; OpenRouter कॉलम समान कार्यभार के लिए संदर्भ कीमतें दिखाता है।
ध्यान दें कि यहाँ आउटपुट टोकन संख्या का छोटा हिस्सा है (2,500 में से 500) लेकिन टोकन में अपने हिस्से से बड़ा हिस्सा बिल का है, क्योंकि आउटपुट टोकन की कीमत अधिक होती है (तालिका देखें)। इस मॉडल के लिए आउटपुट पक्ष ही वह जगह है जहाँ OpenRouter के संदर्भ मूल्य की तुलना में बचत की पुष्टि होती है, जो उपयोगी है यदि आपका ऐप लंबे उत्तर लिखता है।
कोड में इसका उपयोग#
आप आधिकारिक openai Python पैकेज से usage पढ़ सकते हैं, बस इसे CheapTokens के base URL पर इंगित करें:
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[{"role": "user", "content": "Explain input and output tokens in two sentences."}],
)
usage = response.usage
print("input:", usage.prompt_tokens)
print("output:", usage.completion_tokens)
print("total:", usage.total_tokens)
# example, substitute current prices from the table above
price_in, price_out = 0.20, 0.80
cost = (usage.prompt_tokens * price_in + usage.completion_tokens * price_out) / 1_000_000
print(f"approx. cost: ${cost:.6f}")यदि आपने अभी तक कोई रिक्वेस्ट नहीं भेजी है, तो पहले Your first API request with CheapTokens का पालन करें।
कम टोकन कैसे खर्च करें#
- प्रॉम्प्ट छोटा करें। सिस्टम प्रॉम्प्ट को छोटा करें और वे निर्देश हटाएँ जिनकी मॉडल को आवश्यकता नहीं है। आपके द्वारा भेजा गया हर टोकन हर रिक्वेस्ट पर बिल होता है।
- इतिहास छोटा करें। लंबी चैट में, पूरी बातचीत के बजाय अंतिम कुछ टर्न या एक संक्षिप्त सारांश रखें।
- दस्तावेज़ का केवल प्रासंगिक भाग भेजें। टेक्स्ट का एक पेज पूरी फ़ाइल से सस्ता होता है।
- जिस फ़ॉर्मेट की आवश्यकता है वह माँगें। "तीन बुलेट पॉइंट में उत्तर दें" खुले अंत वाले निबंध की तुलना में कम आउटपुट टोकन उत्पन्न करता है।
max_tokensजानबूझकर सेट करें। यह केवल आउटपुट को सीमित करता है। बहुत कम और उत्तर कट जाता है; विवरण Why does an AI answer stop mid-sentence? में हैं। CheapTokens पर MiniMax-M2.7 प्रति उत्तर अधिकतम 8,192 आउटपुट टोकन की अनुमति देता है और इसकी 180K कॉन्टेक्स्ट विंडो है।
बड़े वर्कफ़्लो की लागत का अनुमान लगाने के लिए, How to estimate the cost of an AI agent देखें।
क्या याद रखें#
- हर रिक्वेस्ट में इनपुट टोकन (
prompt_tokens) और आउटपुट टोकन (completion_) होते हैं।tokens - उनकी अलग-अलग कीमतें होती हैं, आमतौर पर आउटपुट अधिक।
- लागत = इनपुट टोकन × इनपुट कीमत + आउटपुट टोकन × आउटपुट कीमत, जहाँ कीमतें प्रति 1M टोकन हैं।
- अनुमान लगाने के बजाय रिस्पॉन्स में
usageसे संख्याएँ पढ़ें।
CheapTokens पर एक प्रीपेड बैलेंस सभी मॉडलों को कवर करता है, प्रति मॉडल कीमतें निश्चित हैं और पीक-आवर प्राइसिंग नहीं है, और API OpenAI Chat Completions तथा Anthropic Messages के साथ संगत है। ऊपर दिया गया उदाहरण आज़माने के लिए, API कुंजी प्राप्त करें और अपनी पहली रिक्वेस्ट भेजें।
हर मॉडल के लिए वर्तमान कीमतें: CheapTokens pricing।



