चैट बनाएँ
BazaarLink मानकीकृत response लौटाता है और upstream-विशिष्ट fields हटाता है। usage.cost इस अनुरोध के लिए ग्राहक से ली गई USD राशि है। response id या x-request-id header के अपारदर्शी BazaarLink request ID से GET /v1/generation लें; non-streaming response में यही ID x-generation-id में भी आता है। आँकड़े कुछ सेकंड बाद मिल सकते हैं; 404 पर थोड़ी देर retry करें। लंबे non-streaming Chat, Messages और Responses अनुरोधों (लगभग 12 सेकंड या अधिक) में JSON body से पहले whitespace keep-alive padding हो सकती है। सामान्य JSON parsers शुरुआती whitespace स्वीकार करते हैं। Audio chat इसी endpoint का उपयोग करता है; ऑडियो आउटपुट के लिए modalities:["text","audio"] और audio:{voice,format} भेजें। GET /v1/models?output_modalities=audio केवल ऑडियो आउटपुट वाले मॉडल छाँटता है, सभी ऑडियो-इनपुट मॉडल नहीं; ऑडियो लेकर टेक्स्ट देने वाले मॉडल text सूची में ही रहते हैं। केवल क्षमता-चिह्न से उपलब्ध रूट की गारंटी नहीं मिलती; सूचीबद्ध मॉडल और उसके समर्थित पैरामीटर चुनें। केवल-ऑडियो आउटपुट, TTS, STT और अन्य गैर-token जनरेशन मोड इस अनुबंध से बाहर हैं।
/v1/chat/completionsप्राधिकरण
Authorizationआवश्यकAuthorization हेडर में bearer token के रूप में API कुंजी।
Body
modelआवश्यकउपयोग करने वाला मॉडल, प्रदाता-योग्य, जैसे "openai/gpt-4o"। GET /v1/models में "claude-sonnet-4.6" जैसे ids और "anthropic/claude-sonnet-4.6" जैसे canonical aliases हैं। दोनों रूप स्वीकार हैं; सूचीबद्ध id या alias इस्तेमाल करें।
"openai/gpt-4o"messagesआवश्यकबातचीत संदेशों की सरणी, कम से कम एक। प्रत्येक में role (system/user/assistant/tool) और content होता है।
contentऑडियो इनपुट messages[].content[] में रखें: {"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}। data में data URI नहीं, कच्चा base64 इस्तेमाल करें; समर्थित प्रारूप मॉडल पर निर्भर हैं। शीर्ष-स्तर input_audio का उपयोग न करें: उसके लिए अलग सत्यापन या क्रेडिट-आरक्षण अनुबंध नहीं है।
[{"type":"input_audio","input_audio":{"data":"<raw base64>","format":"wav"}}]modelsफ़ॉलबैक मॉडल सूची — क्रम से आज़माई जाती है, केवल तब उपयोग होती है जब प्राइमरी मॉडल का अपना उम्मीदवार समूह समाप्त हो जाए।
streamtrue होने पर प्रतिक्रिया SSE के रूप में स्ट्रीम होती है; छोड़ने या false पर एकल JSON प्रतिक्रिया मिलती है। ऑडियो स्ट्रीम choices[].delta.audio में data (base64 ऑडियो) और transcript के टुकड़े लौटाती है; गैर-स्ट्रीमिंग प्रतिक्रिया choices[].message.audio का उपयोग करती है। मॉडल id और expires_at भी दे सकता है। टुकड़ों को जोड़कर audio.format के अनुसार डिकोड करें; स्ट्रीमिंग प्रारूप मॉडल पर निर्भर हैं।
temperatureसैंपलिंग तापमान — जितना अधिक उतना यादृच्छिक, जितना कम उतना नियतात्मक। सैंपलिंग मान बिना रेंज जाँच के भेजे जाते हैं; मॉडल समर्थित सीमा से बाहर के मान को सीमित या अनदेखा कर सकता है।
max_tokensप्रतिक्रिया द्वारा जनरेट किए जा सकने वाले अधिकतम टोकन की संख्या।
max_completion_tokensmax_tokens का उपनाम, समान अर्थ के साथ।
top_pन्यूक्लियस सैंपलिंग थ्रेशोल्ड।
top_kसैंपलिंग को सबसे अधिक संभावना वाले K टोकन तक सीमित करता है।
frequency_penaltyटोकन को उनके पहले से आने की आवृत्ति के आधार पर दंडित करता है।
presence_penaltyटोकन को इस आधार पर दंडित करता है कि वे कितनी बार भी आए हों, बिना गिनती के।
repetition_penaltyपुनरावृत्ति दंड गुणांक — frequency/presence penalty से अलग तंत्र।
min_pसबसे संभावित टोकन के सापेक्ष न्यूनतम संभावना सीमा।
top_aएक और गतिशील कटऑफ सैंपलिंग तंत्र, जो शीर्ष संभावना के वर्ग से थ्रेशोल्ड को स्केल करता है।
seedनियतात्मक सैंपलिंग सीड; सभी प्रदाता पुनरुत्पादकता की गारंटी नहीं देते।
nजनरेट किए जाने वाले पूर्णताओं की संख्या।
stopअनुक्रम जहाँ जनरेशन रुक जाता है, अधिकतम 4।
toolsटूल/फ़ंक्शन परिभाषाओं की सूची जिन्हें मॉडल कॉल कर सकता है।
tool_choiceनियंत्रित करता है कि मॉडल को टूल कॉल करने के लिए मजबूर किया जाए या नहीं/कैसे।
parallel_tool_callstools प्रदान किए जाने पर समानांतर टूल कॉल की अनुमति दें या नहीं। डिफ़ॉल्ट true। केवल OpenAI-परिवार मॉडल — जब लक्ष्य मॉडल OpenAI का न हो तो यह फ़ील्ड चुपचाप हटा दी जाती है, यह त्रुटि नहीं है।
response_formatआउटपुट फ़ॉर्मेट को सीमित करता है, जैसे {type:"json_object"} या JSON Schema के साथ {type:"json_schema"}।
logit_biasटोकन ID को [-100, 100] बायस मानों से मैप करता है, जो सैंपलिंग से पहले जोड़े जाते हैं। केवल OpenAI-परिवार मॉडल — जब लक्ष्य मॉडल OpenAI का न हो तो यह फ़ील्ड चुपचाप हटा दी जाती है, यह त्रुटि नहीं है।
logprobsप्रत्येक आउटपुट टोकन की लॉग संभावनाएँ लौटाता है। केवल OpenAI-परिवार मॉडल — जब लक्ष्य मॉडल OpenAI का न हो तो यह फ़ील्ड चुपचाप हटा दी जाती है, यह त्रुटि नहीं है।
top_logprobsप्रति स्थिति लौटाए जाने वाले सबसे संभावित टोकन की संख्या (logprobs: true आवश्यक)। केवल OpenAI-परिवार मॉडल — जब लक्ष्य मॉडल OpenAI का न हो तो यह फ़ील्ड चुपचाप हटा दी जाती है, यह त्रुटि नहीं है।
userमॉनिटरिंग और दुरुपयोग पहचान के लिए एंड-यूज़र पहचानकर्ता। बिलिंग पर कोई प्रभाव नहीं। केवल OpenAI-परिवार मॉडल — जब लक्ष्य मॉडल OpenAI का न हो तो यह फ़ील्ड चुपचाप हटा दी जाती है, यह त्रुटि नहीं है।
reasoningरीज़निंग-मॉडल थिंकिंग कंट्रोल ऑब्जेक्ट (जैसे {effort, max_tokens})।
reasoning_effortreasoning.effort के लिए फ़्लैट संक्षिप्त फ़ील्ड।
lowmediumhighinclude_reasoningtrue होने पर सोच की सामग्री message.reasoning (स्ट्रीमिंग में delta.reasoning) में लौटती है; false उन मॉडलों की सोच बंद करता है जो डिफ़ॉल्ट रूप से सोचते हैं (रीज़निंग अनुभाग देखें), इसलिए सोच का बिल नहीं बनता। reasoning_effort, reasoning या thinking न भेजने पर केवल वही मॉडल डिफ़ॉल्ट रूप से सोचते और लौटाते हैं; बाकी मॉडल माँगने पर ही लौटाते हैं.
image_configछवि जनरेशन/संपादन विकल्प (जब modalities में image शामिल हो तब उपयोग)।
modalitiesअनुरोधित आउटपुट मोडैलिटी। image शामिल होने पर इमेज-जनरेशन डिस्पैच पथ से गुजरता है। Audio chat में ["text","audio"] के साथ audio ऑब्जेक्ट का उपयोग होता है और ऐसा मॉडल चाहिए जो टेक्स्ट व ऑडियो आउटपुट दोनों का समर्थन करे।
textimageaudio["text","audio"]audioऑडियो आउटपुट विकल्प, modalities:["text","audio"] के साथ। समर्थित voice और format मान मॉडल पर निर्भर हैं।
{"voice":"alloy","format":"wav"}voiceमॉडल द्वारा समर्थित आवाज़, उदाहरण के लिए alloy।
"alloy"formatमॉडल द्वारा समर्थित आउटपुट प्रारूप, उदाहरण के लिए wav; स्ट्रीमिंग में अक्सर pcm16 इस्तेमाल होता है, मॉडल के समर्थन के अनुसार।
"wav"pluginsप्लगइन सरणी (जैसे वेब खोज के लिए {id:"web"})। केवल कुछ मॉडल रूट पर समर्थित, अन्यत्र प्रभावहीन; :online समर्थित रूट पर वेब खोज चालू करता है। plugins, :online या web_search_options से की गई खोज पर upstream अतिरिक्त शुल्क लग सकता है, जो अनुरोध में उपयोग की गई कुंजी—BazaarLink प्लेटफ़ॉर्म कुंजी या आपकी BYOK कुंजी—पर लगेगा।