वार्षिक सालाना भुगतान करें और हर सशुल्क प्लान पर 2 महीने मुफ़्त पाएं। प्लान देखें
साइन इन करें मुफ़्त शुरू करें

OpenAI-संगत API

अंतिम अपडेट: 11 नव॰ 2026

यह क्या है

OpenAI-संगत API, OpenAI के chat completions फ़ॉर्मेट को समझने वाले टूल को ToRun के चैट मॉडल इस्तेमाल करने देता है, जिनका भुगतान आपके ToRun खाते से होता है। opencode जैसा कोडिंग एजेंट ToRun के MCP टूल के साथ-साथ ToRun को अपने मॉडल प्रदाता के रूप में इस्तेमाल कर सकता है।

पता और साइन-इन

बेस URL https://mcp.torun.ai/v1
साइन-इन Authorization: Bearer <your developer key>

वही डेवलपर कुंजी इस्तेमाल करें जो MCP सर्वर के लिए करते हैं: देखें डेवलपर कुंजियाँ। OpenAI-संगत API जुड़ने से पहले बनाई गई कुंजी को 403 insufficient_scope जवाब मिलता है। कुंजी की अनुमतियाँ कभी नहीं बदलतीं, इसलिए नई कुंजी बनाएँ।

API के दो एंडपॉइंट हैं, GET /v1/models और POST /v1/chat/completions। /v1 के अंदर कोई भी दूसरा पाथ 404 not_found जवाब देता है।

मॉडल

GET /v1/models सबसे पहले torun/auto दिखाता है, फिर हर वह टेक्स्ट मॉडल जिसे आपका प्लान इस्तेमाल कर सकता है, उसकी मॉडल आईडी के साथ। हर मॉडल बताता है:

  • वह कितना टेक्स्ट पढ़ सकता है (context_length) और कितना लंबा जवाब लिख सकता है (max_completion_tokens),
  • क्या वह टूल कॉल कर सकता है (supports_tools) और इमेज पढ़ सकता है (supports_vision),
  • प्रति दस लाख टोकन Runs में उसकी कीमत (pricing: input और output)।

torun/auto ToRun को हर अनुरोध के लिए मॉडल चुनने देता है: अनुरोध में इमेज होने पर इमेज पढ़ने वाला मॉडल, और tools भेजे जाने पर टूल कॉल करने वाला मॉडल।

Chat completions

POST /v1/chat/completions ये स्वीकार करता है:

  • messages, system, developer (system की तरह माना जाता है), user, assistant और tool भूमिकाओं के साथ,
  • tools और tool_choice (auto, none, required या एक नामित फ़ंक्शन): आपके टूल के अपने टूल उसे टूल कॉल के रूप में वापस मिलते हैं, और ToRun उन्हें कभी नहीं चलाता,
  • json_object के साथ response_format। json_schema स्वीकार किया जाता है और जवाब JSON में आता है, लेकिन स्कीमा खुद लागू नहीं की जाती,
  • temperature (0 से 2), top_p (0 से 1), max_completion_tokens या max_tokens, stop (4 सीक्वेंस तक), seed और reasoning_effort,
  • stream और stream_options.include_usage।

1 से ज़्यादा n, logprobs, top_logprobs, ऑडियो और टेक्स्ट के अलावा कोई भी आउटपुट अनदेखा करने के बजाय 400 unsupported_parameter के साथ अस्वीकार किया जाता है।

इमेज

इमेज को इनलाइन भेजें, image_url हिस्से में data:image/...;base64,... के रूप में, प्रति अनुरोध 20 MB तक। लिंक के रूप में भेजी गई इमेज 400 image_url_not_supported के साथ अस्वीकार की जाती है: ToRun उसे डाउनलोड नहीं करता। ऐप की तरह, इमेज की सुरक्षा जाँच होती है।

स्ट्रीमिंग

"stream": true के साथ जवाब chat.completion.chunk रूप में server-sent events के तौर पर आता है:

  • पहले चंक में assistant भूमिका होती है, और टूल कॉल अपने index के साथ स्ट्रीम होते हैं।
  • जब भेजने को कुछ नहीं होता, तो हर 15 सेकंड में : keepalive टिप्पणी लाइन आती है; SSE पार्सर उसे छोड़ देते हैं।
  • data: [DONE] सफल स्ट्रीम को खत्म करता है।
  • stream_options.include_usage के साथ, आखिरी चंक में खाली choices होता है और उसमें usage होता है।
  • स्ट्रीम शुरू होने के बाद की विफलता एक data: {"error": ...} इवेंट के रूप में आती है, बिना [DONE] के।

बिना स्ट्रीमिंग वाली कॉल 110 सेकंड के बाद 504 timeout के साथ रोक दी जाती है। लंबे अनुरोध "stream": true के साथ भेजें।

उपयोग

usage में prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details.cached_tokens और completion_tokens_details.reasoning_tokens होते हैं, साथ ही torun_credits: कॉल की लागत, Runs में।

opencode में इसका इस्तेमाल करें

डेवलपर पेज पर दिया गया opencode कॉन्फ़िगरेशन MCP सर्वर के साथ ToRun को मॉडल प्रदाता के रूप में जोड़ता है:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "torun": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "ToRun",
      "options": { "baseURL": "https://mcp.torun.ai/v1", "apiKey": "{env:TORUN_API_KEY}" },
      "models": { "torun/auto": { "name": "ToRun Auto" } }
    }
  }
}

OpenAI चैट API को समझने वाला कोई भी दूसरा टूल इसी तरह काम करता है। पेज का OpenAI API टैब यह कॉल दिखाता है:

curl https://mcp.torun.ai/v1/chat/completions \
  -H "Authorization: Bearer $TORUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "torun/auto", "messages": [{"role": "user", "content": "Hello"}]}'

कॉल का भुगतान कैसे होता है

API कॉल में उतने ही Runs लगते हैं जितने ऐप में उसी इस्तेमाल में लगते हैं। इनका भुगतान केवल सशुल्क राशि से होता है: पहले आपके सशुल्क प्लान का अलाउंस, फिर आपका वॉलेट, अगर आपने कुंजी पर इसकी अनुमति दी है। मुफ़्त अलाउंस कभी भी API कॉल का भुगतान नहीं करता। कुंजी की मासिक और दैनिक सीमाएँ लागू होती हैं, और चैट जवाबों की तरह जवाबों की सुरक्षा जाँच होती है।

सीमाएँ

हर कुंजी इस API को प्रति मिनट 60 अनुरोध भेज सकती है और एक साथ 4 completions चला सकती है। इससे ऊपर, API Retry-After हेडर के साथ 429 rate_limit_exceeded जवाब देता है।

त्रुटियाँ

हर त्रुटि का रूप {"error": {"message": ..., "type": ..., "param": ..., "code": ...}} होता है। message उस भाषा में होता है जो अनुरोध का Accept-Language हेडर माँगता है।

स्थिति कोड मतलब
400 invalid_json, missing_parameter, invalid_parameter, unsupported_parameter अनुरोध गलत बना है, या ऐसे पैरामीटर का इस्तेमाल करता है जिसे ToRun सपोर्ट नहीं करता।
400 image_url_not_supported इमेज लिंक के रूप में भेजी गई; उसे इनलाइन भेजें।
400 content_blocked सुरक्षा जाँच ने सामग्री को रोक दिया।
400 upstream_rejected मॉडल प्रदाता ने अनुरोध अस्वीकार कर दिया; संदेश में कारण लिखा होता है।
401 invalid_api_key कुंजी मौजूद नहीं है, गलत लिखी गई है या रद्द कर दी गई है।
402 insufficient_credits, wallet_spend_not_allowed, spending_cap_reached खाता या कुंजी कॉल का भुगतान नहीं कर सकती।
403 insufficient_scope कुंजी यह API जुड़ने से पहले बनाई गई थी; नई कुंजी बनाएँ।
403 model_not_available मॉडल आपके प्लान में नहीं है।
403 account_suspended, no_developer_access खाता निलंबित है, या उसके पास डेवलपर एक्सेस नहीं है।
404 model_not_found यह मॉडल आईडी GET /v1/models की सूची में नहीं है।
404 not_found /v1 के अंदर ऐसा कोई पाथ नहीं है।
429 rate_limit_exceeded बहुत ज़्यादा कॉल; Retry-After में दिए समय तक इंतज़ार करें।
500 internal_error ToRun की तरफ़ कुछ गड़बड़ हो गई।
502 upstream_error, empty_reply मॉडल प्रदाता विफल रहा, या उसने खाली जवाब भेजा।
503 upstream_error, cap_unreadable, scan_unavailable कॉल के लिए ज़रूरी सेवा कुछ देर के लिए उपलब्ध नहीं है; फिर कोशिश करें।
504 timeout बिना स्ट्रीमिंग वाली कॉल 110 सेकंड से ज़्यादा चली।

जिस अनुरोध का भुगतान नहीं हो सकता, उसे 429 नहीं बल्कि 402 जवाब मिलता है, ताकि क्लाइंट उसे बार-बार दोहराता न रहे।