[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-models\u002Fchat\u002Fopenai":180,"$f5G-W5pbZXaBL-tapeTlB9kzAJ5U7Brc5g5gu3AoucWU":869},[4,26,43,105,155,172,176],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"Your First SilvaMux API Call","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start",{"title":14,"path":15,"stem":16},"Model Selection","\u002Fgetting-started\u002Fmodel-selection","1.getting-started\u002F2.model-selection",{"title":18,"path":19,"stem":20},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":22,"path":23,"stem":24},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Billing","\u002Fbilling","2.billing",[31,35,39],{"title":32,"path":33,"stem":34},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":36,"path":37,"stem":38},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":40,"path":41,"stem":42},"Bills, Usage & Exports","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":44,"path":45,"stem":46,"children":47,"page":25},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[48,52,56,60,67,102],{"title":49,"path":50,"stem":51},"Coding Plan Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":53,"path":54,"stem":55},"Quick Start","\u002Fcoding-plan\u002Fquick-start","3.coding-plan\u002F2.quick-start",{"title":57,"path":58,"stem":59},"Usage Notes","\u002Fcoding-plan\u002Fusage-notes","3.coding-plan\u002F3.usage-notes",{"title":61,"path":62,"stem":63,"children":64},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F4.personal\u002Findex",[65],{"title":66,"path":62,"stem":63},"Pricing & Benefits",{"title":68,"path":69,"stem":70,"children":71,"page":-1},"Developer Guide","\u002Fcoding-plan\u002Fguide","3.coding-plan\u002F5.guide\u002Findex",[72,74,78,82,86,90,94,98],{"title":73,"path":69,"stem":70},"Endpoints & Protocols",{"title":75,"path":76,"stem":77},"Claude Code","\u002Fcoding-plan\u002Fguide\u002Fclaude-code","3.coding-plan\u002F5.guide\u002F1.claude-code",{"title":79,"path":80,"stem":81},"OpenCode","\u002Fcoding-plan\u002Fguide\u002Fopencode","3.coding-plan\u002F5.guide\u002F2.opencode",{"title":83,"path":84,"stem":85},"Cursor","\u002Fcoding-plan\u002Fguide\u002Fcursor","3.coding-plan\u002F5.guide\u002F3.cursor",{"title":87,"path":88,"stem":89},"Codex","\u002Fcoding-plan\u002Fguide\u002Fcodex","3.coding-plan\u002F5.guide\u002F4.codex",{"title":91,"path":92,"stem":93},"ZCode","\u002Fcoding-plan\u002Fguide\u002Fzcode","3.coding-plan\u002F5.guide\u002F5.zcode",{"title":95,"path":96,"stem":97},"TRAE","\u002Fcoding-plan\u002Fguide\u002Ftrae","3.coding-plan\u002F5.guide\u002F6.trae",{"title":99,"path":100,"stem":101},"CodeBuddy","\u002Fcoding-plan\u002Fguide\u002Fcodebuddy","3.coding-plan\u002F5.guide\u002F7.codebuddy",{"title":22,"path":103,"stem":104},"\u002Fcoding-plan\u002Ffaq","3.coding-plan\u002F6.faq",{"title":106,"path":107,"stem":108,"children":109,"page":25},"Model APIs","\u002Fmodels","4.models",[110,143],{"title":111,"path":112,"stem":113,"children":114,"page":25},"Text Generation Model API","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[115,119,123,127,131,135,139],{"title":116,"path":117,"stem":118},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":120,"path":121,"stem":122},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":124,"path":125,"stem":126},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":128,"path":129,"stem":130},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":132,"path":133,"stem":134},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":136,"path":137,"stem":138},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":140,"path":141,"stem":142},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":144,"path":145,"stem":146,"children":147,"page":25},"Image Generation Model API","\u002Fmodels\u002Fimages","4.models\u002F2.images",[148,151],{"title":116,"path":149,"stem":150},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":152,"path":153,"stem":154},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":156,"path":157,"stem":158,"children":159,"page":25},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[160,164,168],{"title":161,"path":162,"stem":163},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":165,"path":166,"stem":167},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":169,"path":170,"stem":171},"Query Request Usage","\u002Fusage-and-balance\u002Frequest-usage","5.usage-and-balance\u002F3.request-usage",{"title":173,"path":174,"stem":175},"Error Codes","\u002Ferrors","6.errors",{"title":177,"path":178,"stem":179},"Getting Started with SilvaMux","\u002F","index",{"id":181,"title":120,"body":182,"description":862,"extension":863,"meta":864,"navigation":345,"path":121,"rawbody":865,"requiredFlags":866,"seo":867,"stem":122,"__hash__":868},"docs_en\u002F4.models\u002F1.chat\u002F2.openai.md",{"type":183,"value":184,"toc":859},"minimark",[185,189,193,198,203,716,719,847,855],[186,187,120],"h1",{"id":188},"openai-compatible-api",[190,191,192],"p",{},"Accepts the OpenAI Chat Completions request format and preserves the matching response, SSE, and error structures. Recommended for projects using the OpenAI SDK and for most new projects — existing OpenAI SDK code migrates by changing only the base URL and API key.",[194,195],"api-endpoint",{"method":196,"path":197},"POST","\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions",[199,200,202],"h2",{"id":201},"examples","Examples",[204,205,206,316,420,511],"code-tabs",{},[207,208,210],"code-tab",{"label":209},"cURL",[211,212,217],"pre",{"className":213,"code":214,"language":215,"meta":216,"style":216},"language-bash shiki shiki-themes github-light github-dark","curl https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [\n      {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n      {\"role\": \"user\", \"content\": \"Hello\"}\n    ],\n    \"stream\": false\n  }'\n","bash","",[218,219,220,237,255,265,274,280,286,292,298,304,310],"code",{"__ignoreMap":216},[221,222,225,229,233],"span",{"class":223,"line":224},"line",1,[221,226,228],{"class":227},"sScJk","curl",[221,230,232],{"class":231},"sZZnC"," https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions",[221,234,236],{"class":235},"sj4cs"," \\\n",[221,238,240,243,246,250,253],{"class":223,"line":239},2,[221,241,242],{"class":235},"  -H",[221,244,245],{"class":231}," \"Authorization: Bearer ",[221,247,249],{"class":248},"sVt8B","$SILVAMUX_API_KEY",[221,251,252],{"class":231},"\"",[221,254,236],{"class":235},[221,256,258,260,263],{"class":223,"line":257},3,[221,259,242],{"class":235},[221,261,262],{"class":231}," \"Content-Type: application\u002Fjson\"",[221,264,236],{"class":235},[221,266,268,271],{"class":223,"line":267},4,[221,269,270],{"class":235},"  -d",[221,272,273],{"class":231}," '{\n",[221,275,277],{"class":223,"line":276},5,[221,278,279],{"class":231},"    \"model\": \"minimax-m2.5\",\n",[221,281,283],{"class":223,"line":282},6,[221,284,285],{"class":231},"    \"messages\": [\n",[221,287,289],{"class":223,"line":288},7,[221,290,291],{"class":231},"      {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n",[221,293,295],{"class":223,"line":294},8,[221,296,297],{"class":231},"      {\"role\": \"user\", \"content\": \"Hello\"}\n",[221,299,301],{"class":223,"line":300},9,[221,302,303],{"class":231},"    ],\n",[221,305,307],{"class":223,"line":306},10,[221,308,309],{"class":231},"    \"stream\": false\n",[221,311,313],{"class":223,"line":312},11,[221,314,315],{"class":231},"  }'\n",[207,317,319],{"label":318},"Python",[211,320,324],{"className":321,"code":322,"language":323,"meta":216,"style":216},"language-python shiki shiki-themes github-light github-dark","# pip install openai\nimport os\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n    base_url=\"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"minimax-m2.5\",\n    messages=[\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n        {\"role\": \"user\", \"content\": \"Hello\"},\n    ],\n)\n\nprint(response.choices[0].message.content)\n","python",[218,325,326,331,336,341,347,352,357,362,367,371,376,381,387,393,399,404,409,414],{"__ignoreMap":216},[221,327,328],{"class":223,"line":224},[221,329,330],{},"# pip install openai\n",[221,332,333],{"class":223,"line":239},[221,334,335],{},"import os\n",[221,337,338],{"class":223,"line":257},[221,339,340],{},"from openai import OpenAI\n",[221,342,343],{"class":223,"line":267},[221,344,346],{"emptyLinePlaceholder":345},true,"\n",[221,348,349],{"class":223,"line":276},[221,350,351],{},"client = OpenAI(\n",[221,353,354],{"class":223,"line":282},[221,355,356],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[221,358,359],{"class":223,"line":288},[221,360,361],{},"    base_url=\"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n",[221,363,364],{"class":223,"line":294},[221,365,366],{},")\n",[221,368,369],{"class":223,"line":300},[221,370,346],{"emptyLinePlaceholder":345},[221,372,373],{"class":223,"line":306},[221,374,375],{},"response = client.chat.completions.create(\n",[221,377,378],{"class":223,"line":312},[221,379,380],{},"    model=\"minimax-m2.5\",\n",[221,382,384],{"class":223,"line":383},12,[221,385,386],{},"    messages=[\n",[221,388,390],{"class":223,"line":389},13,[221,391,392],{},"        {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n",[221,394,396],{"class":223,"line":395},14,[221,397,398],{},"        {\"role\": \"user\", \"content\": \"Hello\"},\n",[221,400,402],{"class":223,"line":401},15,[221,403,303],{},[221,405,407],{"class":223,"line":406},16,[221,408,366],{},[221,410,412],{"class":223,"line":411},17,[221,413,346],{"emptyLinePlaceholder":345},[221,415,417],{"class":223,"line":416},18,[221,418,419],{},"print(response.choices[0].message.content)\n",[207,421,423],{"label":422},"JavaScript",[211,424,428],{"className":425,"code":426,"language":427,"meta":216,"style":216},"language-javascript shiki shiki-themes github-light github-dark","\u002F\u002F npm install openai\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: process.env.SILVAMUX_API_KEY,\n  baseURL: \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"minimax-m2.5\",\n  messages: [\n    { role: \"system\", content: \"You are a helpful assistant\" },\n    { role: \"user\", content: \"Hello\" },\n  ],\n});\n\nconsole.log(response.choices[0].message.content);\n","javascript",[218,429,430,435,440,444,449,454,459,464,468,473,478,483,488,493,498,502,506],{"__ignoreMap":216},[221,431,432],{"class":223,"line":224},[221,433,434],{},"\u002F\u002F npm install openai\n",[221,436,437],{"class":223,"line":239},[221,438,439],{},"import OpenAI from \"openai\";\n",[221,441,442],{"class":223,"line":257},[221,443,346],{"emptyLinePlaceholder":345},[221,445,446],{"class":223,"line":267},[221,447,448],{},"const client = new OpenAI({\n",[221,450,451],{"class":223,"line":276},[221,452,453],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[221,455,456],{"class":223,"line":282},[221,457,458],{},"  baseURL: \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n",[221,460,461],{"class":223,"line":288},[221,462,463],{},"});\n",[221,465,466],{"class":223,"line":294},[221,467,346],{"emptyLinePlaceholder":345},[221,469,470],{"class":223,"line":300},[221,471,472],{},"const response = await client.chat.completions.create({\n",[221,474,475],{"class":223,"line":306},[221,476,477],{},"  model: \"minimax-m2.5\",\n",[221,479,480],{"class":223,"line":312},[221,481,482],{},"  messages: [\n",[221,484,485],{"class":223,"line":383},[221,486,487],{},"    { role: \"system\", content: \"You are a helpful assistant\" },\n",[221,489,490],{"class":223,"line":389},[221,491,492],{},"    { role: \"user\", content: \"Hello\" },\n",[221,494,495],{"class":223,"line":395},[221,496,497],{},"  ],\n",[221,499,500],{"class":223,"line":401},[221,501,463],{},[221,503,504],{"class":223,"line":406},[221,505,346],{"emptyLinePlaceholder":345},[221,507,508],{"class":223,"line":411},[221,509,510],{},"console.log(response.choices[0].message.content);\n",[207,512,514],{"label":513},"Go",[211,515,519],{"className":516,"code":517,"language":518,"meta":216,"style":216},"language-go shiki shiki-themes github-light github-dark","\u002F\u002F Standard library only\npackage main\n\nimport (\n    \"bytes\"\n    \"fmt\"\n    \"io\"\n    \"net\u002Fhttp\"\n    \"os\"\n)\n\nfunc main() {\n    payload := []byte(`{\n        \"model\": \"minimax-m2.5\",\n        \"messages\": [\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n            {\"role\": \"user\", \"content\": \"Hello\"}\n        ],\n        \"stream\": false\n    }`)\n\n    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n    if err != nil {\n        panic(err)\n    }\n    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n\n    resp, err := http.DefaultClient.Do(req)\n    if err != nil {\n        panic(err)\n    }\n    defer resp.Body.Close()\n\n    body, _ := io.ReadAll(resp.Body)\n    fmt.Println(string(body))\n}\n","go",[218,520,521,526,531,535,540,545,550,555,560,565,569,573,578,583,588,593,598,603,608,614,620,625,631,637,643,649,655,661,666,672,677,682,687,693,698,704,710],{"__ignoreMap":216},[221,522,523],{"class":223,"line":224},[221,524,525],{},"\u002F\u002F Standard library only\n",[221,527,528],{"class":223,"line":239},[221,529,530],{},"package main\n",[221,532,533],{"class":223,"line":257},[221,534,346],{"emptyLinePlaceholder":345},[221,536,537],{"class":223,"line":267},[221,538,539],{},"import (\n",[221,541,542],{"class":223,"line":276},[221,543,544],{},"    \"bytes\"\n",[221,546,547],{"class":223,"line":282},[221,548,549],{},"    \"fmt\"\n",[221,551,552],{"class":223,"line":288},[221,553,554],{},"    \"io\"\n",[221,556,557],{"class":223,"line":294},[221,558,559],{},"    \"net\u002Fhttp\"\n",[221,561,562],{"class":223,"line":300},[221,563,564],{},"    \"os\"\n",[221,566,567],{"class":223,"line":306},[221,568,366],{},[221,570,571],{"class":223,"line":312},[221,572,346],{"emptyLinePlaceholder":345},[221,574,575],{"class":223,"line":383},[221,576,577],{},"func main() {\n",[221,579,580],{"class":223,"line":389},[221,581,582],{},"    payload := []byte(`{\n",[221,584,585],{"class":223,"line":395},[221,586,587],{},"        \"model\": \"minimax-m2.5\",\n",[221,589,590],{"class":223,"line":401},[221,591,592],{},"        \"messages\": [\n",[221,594,595],{"class":223,"line":406},[221,596,597],{},"            {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n",[221,599,600],{"class":223,"line":411},[221,601,602],{},"            {\"role\": \"user\", \"content\": \"Hello\"}\n",[221,604,605],{"class":223,"line":416},[221,606,607],{},"        ],\n",[221,609,611],{"class":223,"line":610},19,[221,612,613],{},"        \"stream\": false\n",[221,615,617],{"class":223,"line":616},20,[221,618,619],{},"    }`)\n",[221,621,623],{"class":223,"line":622},21,[221,624,346],{"emptyLinePlaceholder":345},[221,626,628],{"class":223,"line":627},22,[221,629,630],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[221,632,634],{"class":223,"line":633},23,[221,635,636],{},"    if err != nil {\n",[221,638,640],{"class":223,"line":639},24,[221,641,642],{},"        panic(err)\n",[221,644,646],{"class":223,"line":645},25,[221,647,648],{},"    }\n",[221,650,652],{"class":223,"line":651},26,[221,653,654],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[221,656,658],{"class":223,"line":657},27,[221,659,660],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[221,662,664],{"class":223,"line":663},28,[221,665,346],{"emptyLinePlaceholder":345},[221,667,669],{"class":223,"line":668},29,[221,670,671],{},"    resp, err := http.DefaultClient.Do(req)\n",[221,673,675],{"class":223,"line":674},30,[221,676,636],{},[221,678,680],{"class":223,"line":679},31,[221,681,642],{},[221,683,685],{"class":223,"line":684},32,[221,686,648],{},[221,688,690],{"class":223,"line":689},33,[221,691,692],{},"    defer resp.Body.Close()\n",[221,694,696],{"class":223,"line":695},34,[221,697,346],{"emptyLinePlaceholder":345},[221,699,701],{"class":223,"line":700},35,[221,702,703],{},"    body, _ := io.ReadAll(resp.Body)\n",[221,705,707],{"class":223,"line":706},36,[221,708,709],{},"    fmt.Println(string(body))\n",[221,711,713],{"class":223,"line":712},37,[221,714,715],{},"}\n",[190,717,718],{},"Response (OpenAI format):",[211,720,724],{"className":721,"code":722,"language":723,"meta":216,"style":216},"language-json shiki shiki-themes github-light github-dark","{\n  \"id\": \"chatcmpl-xxxx\",\n  \"choices\": [\n    {\n      \"message\": {\"role\": \"assistant\", \"content\": \"Hello! How can I help you today?\"},\n      \"finish_reason\": \"stop\"\n    }\n  ],\n  \"usage\": {\"prompt_tokens\": 20, \"completion_tokens\": 15, \"total_tokens\": 35}\n}\n","json",[218,725,726,731,745,753,758,788,798,802,806,843],{"__ignoreMap":216},[221,727,728],{"class":223,"line":224},[221,729,730],{"class":248},"{\n",[221,732,733,736,739,742],{"class":223,"line":239},[221,734,735],{"class":235},"  \"id\"",[221,737,738],{"class":248},": ",[221,740,741],{"class":231},"\"chatcmpl-xxxx\"",[221,743,744],{"class":248},",\n",[221,746,747,750],{"class":223,"line":257},[221,748,749],{"class":235},"  \"choices\"",[221,751,752],{"class":248},": [\n",[221,754,755],{"class":223,"line":267},[221,756,757],{"class":248},"    {\n",[221,759,760,763,766,769,771,774,777,780,782,785],{"class":223,"line":276},[221,761,762],{"class":235},"      \"message\"",[221,764,765],{"class":248},": {",[221,767,768],{"class":235},"\"role\"",[221,770,738],{"class":248},[221,772,773],{"class":231},"\"assistant\"",[221,775,776],{"class":248},", ",[221,778,779],{"class":235},"\"content\"",[221,781,738],{"class":248},[221,783,784],{"class":231},"\"Hello! How can I help you today?\"",[221,786,787],{"class":248},"},\n",[221,789,790,793,795],{"class":223,"line":282},[221,791,792],{"class":235},"      \"finish_reason\"",[221,794,738],{"class":248},[221,796,797],{"class":231},"\"stop\"\n",[221,799,800],{"class":223,"line":288},[221,801,648],{"class":248},[221,803,804],{"class":223,"line":294},[221,805,497],{"class":248},[221,807,808,811,813,816,818,821,823,826,828,831,833,836,838,841],{"class":223,"line":300},[221,809,810],{"class":235},"  \"usage\"",[221,812,765],{"class":248},[221,814,815],{"class":235},"\"prompt_tokens\"",[221,817,738],{"class":248},[221,819,820],{"class":235},"20",[221,822,776],{"class":248},[221,824,825],{"class":235},"\"completion_tokens\"",[221,827,738],{"class":248},[221,829,830],{"class":235},"15",[221,832,776],{"class":248},[221,834,835],{"class":235},"\"total_tokens\"",[221,837,738],{"class":248},[221,839,840],{"class":235},"35",[221,842,715],{"class":248},[221,844,845],{"class":223,"line":306},[221,846,715],{"class":248},[190,848,849,850,854],{},"The compatible entry passes through extra fields of the corresponding protocol. See ",[851,852,116],"a",{"href":853},"\u002Fen\u002Fdocs\u002Fmodels\u002Fchat\u002Foverview"," for streaming and multimodal input.",[856,857,858],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":216,"searchDepth":239,"depth":239,"links":860},[861],{"id":201,"depth":239,"text":202},"OpenAI Chat Completions compatible entry — recommended for OpenAI SDKs and most new projects.","md",{},"---\ntitle: OpenAI Compatible API\ndescription: OpenAI Chat Completions compatible entry — recommended for OpenAI SDKs and most new projects.\n---\n\n# OpenAI Compatible API\n\nAccepts the OpenAI Chat Completions request format and preserves the matching response, SSE, and error structures. Recommended for projects using the OpenAI SDK and for most new projects — existing OpenAI SDK code migrates by changing only the base URL and API key.\n\n::api-endpoint{path=\"\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\" method=\"POST\"}\n::\n\n## Examples\n\n::code-tabs\n:::code-tab{label=\"cURL\"}\n```bash\ncurl https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"model\": \"minimax-m2.5\",\n    \"messages\": [\n      {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n      {\"role\": \"user\", \"content\": \"Hello\"}\n    ],\n    \"stream\": false\n  }'\n```\n:::\n:::code-tab{label=\"Python\"}\n```python\n# pip install openai\nimport os\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n    base_url=\"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n)\n\nresponse = client.chat.completions.create(\n    model=\"minimax-m2.5\",\n    messages=[\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n        {\"role\": \"user\", \"content\": \"Hello\"},\n    ],\n)\n\nprint(response.choices[0].message.content)\n```\n:::\n:::code-tab{label=\"JavaScript\"}\n```javascript\n\u002F\u002F npm install openai\nimport OpenAI from \"openai\";\n\nconst client = new OpenAI({\n  apiKey: process.env.SILVAMUX_API_KEY,\n  baseURL: \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n});\n\nconst response = await client.chat.completions.create({\n  model: \"minimax-m2.5\",\n  messages: [\n    { role: \"system\", content: \"You are a helpful assistant\" },\n    { role: \"user\", content: \"Hello\" },\n  ],\n});\n\nconsole.log(response.choices[0].message.content);\n```\n:::\n:::code-tab{label=\"Go\"}\n```go\n\u002F\u002F Standard library only\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\u002Fhttp\"\n\t\"os\"\n)\n\nfunc main() {\n\tpayload := []byte(`{\n\t\t\"model\": \"minimax-m2.5\",\n\t\t\"messages\": [\n\t\t\t{\"role\": \"system\", \"content\": \"You are a helpful assistant\"},\n\t\t\t{\"role\": \"user\", \"content\": \"Hello\"}\n\t\t],\n\t\t\"stream\": false\n\t}`)\n\n\treq, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n\treq.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\n\tbody, _ := io.ReadAll(resp.Body)\n\tfmt.Println(string(body))\n}\n```\n:::\n::\n\nResponse (OpenAI format):\n\n```json\n{\n  \"id\": \"chatcmpl-xxxx\",\n  \"choices\": [\n    {\n      \"message\": {\"role\": \"assistant\", \"content\": \"Hello! How can I help you today?\"},\n      \"finish_reason\": \"stop\"\n    }\n  ],\n  \"usage\": {\"prompt_tokens\": 20, \"completion_tokens\": 15, \"total_tokens\": 35}\n}\n```\n\nThe compatible entry passes through extra fields of the corresponding protocol. See [Overview](\u002Fen\u002Fdocs\u002Fmodels\u002Fchat\u002Foverview) for streaming and multimodal input.\n",[],{"title":120,"description":862},"LaqgybyOg3G9RjxXtGnkd7NGO0iv6WgtqHaINiGxzik",{"found":345,"operationId":870,"summary":871,"description":872,"method":196,"path":197,"publiclyDiscoverable":345,"security":873,"parameters":877,"requestBody":878,"responses":973},"createOpenAIChatCompletion","OpenAI Chat Completions","OpenAI Chat Completions 兼容入口，额外字段按模型能力透传。",{"schemes":874,"optional":25},[875,876],"BearerAuth","ApiKeyAuth",[],{"present":345,"required":345,"description":216,"contentType":879,"type":880,"fields":881,"variants":972},"application\u002Fjson","OpenAIChatRequest",[882,886,890,894,898,902,905,909,912,915,918,921,924,927,930,933,937,942,946,950,954,956,959,961,964,966,969],{"name":883,"type":884,"required":25,"description":885},"max_tokens","integer","生成的最大 token 数；达到限制时输出可能被截断。",{"name":887,"type":888,"required":345,"description":889},"messages","array\u003CMessage>","对话消息列表（按时间顺序，至少一条），提供完整上下文。",{"name":891,"type":892,"required":345,"description":893},"messages.content","string | array\u003CContentPart>","消息内容：纯文本字符串或多模态分段数组（图片 \u002F 音频）。不能只包含 system 或 assistant 消息。",{"name":895,"type":896,"required":25,"description":897},"messages.name","string","参与者名称（可选）。",{"name":899,"type":900,"required":345,"description":901},"messages.role","string (system | user | assistant | tool)","消息角色：system 设定行为与人设，user 用户输入，assistant 模型回复，tool 工具执行结果。",{"name":903,"type":896,"required":25,"description":904},"messages.tool_call_id","role=tool 时对应的工具调用 ID。",{"name":906,"type":907,"required":25,"description":908},"messages.tool_calls","array\u003CToolCall>","模型发起的工具调用（出现在 assistant 历史消息中）。",{"name":910,"type":911,"required":345,"description":216},"messages.tool_calls.function","object",{"name":913,"type":896,"required":345,"description":914},"messages.tool_calls.function.arguments","JSON 编码的函数参数。",{"name":916,"type":896,"required":345,"description":917},"messages.tool_calls.function.name","函数名。",{"name":919,"type":896,"required":345,"description":920},"messages.tool_calls.id","工具调用 ID。",{"name":922,"type":923,"required":345,"description":216},"messages.tool_calls.type","string (function)",{"name":925,"type":896,"required":345,"description":926},"model","SilvaMux 模型调用名（id 或 alias）。从模型广场模型详情页复制；账号最终可用范围还受组织权限影响。",{"name":928,"type":911,"required":25,"description":929},"response_format","输出格式：text（默认，普通文本）或 json_object（JSON 模式）。",{"name":931,"type":932,"required":25,"description":216},"response_format.type","string (text | json_object)",{"name":934,"type":935,"required":25,"description":936},"stop","string | array\u003Cstring>","停止词：生成文本出现这些字符串时立即停止，最多 4 个。",{"name":938,"type":939,"required":25,"description":940,"defaultValue":941},"stream","boolean","是否启用流式输出（SSE）。false：完整生成后一次性返回；true：实时返回生成内容，结束时以 data: [DONE] 标记（客户端不应仅依赖该标记判断完成）。","false",{"name":943,"type":944,"required":25,"description":945},"temperature","number","采样温度，控制输出随机性：值越高越发散，越低越稳定。建议只调整 temperature 或 top_p 之一。",{"name":947,"type":948,"required":25,"description":949},"tool_choice","string (auto | none) | object","工具选择策略：auto（默认，模型自行决定）\u002F none（禁用）\u002F 指定函数对象。",{"name":951,"type":952,"required":25,"description":953},"tools","array\u003CTool>","可供模型调用的函数定义列表（Function Calling）。",{"name":955,"type":911,"required":345,"description":216},"tools.function",{"name":957,"type":896,"required":25,"description":958},"tools.function.description","函数用途描述，帮助模型决定是否调用。",{"name":960,"type":896,"required":345,"description":917},"tools.function.name",{"name":962,"type":911,"required":25,"description":963},"tools.function.parameters","函数参数的 JSON Schema。",{"name":965,"type":923,"required":345,"description":216},"tools.type",{"name":967,"type":944,"required":25,"description":968},"top_p","核采样参数，temperature 的替代方案。",{"name":970,"type":896,"required":25,"description":971},"user","终端用户标识符，用于滥用检测。",[],[974,1034],{"status":975,"description":976,"contentType":879,"type":977,"fields":978},"200","OpenAI Chat JSON 或 SSE 响应。","OpenAIChatResponse",[979,983,987,990,993,996,999,1002,1005,1007,1009,1011,1014,1017,1019,1021,1025,1028,1031],{"name":980,"type":981,"required":345,"description":982},"choices","array\u003COpenAIChatChoice>","候选响应列表。",{"name":984,"type":985,"required":345,"description":986},"choices.finish_reason","string (stop | length | tool_calls | content_filter)","结束原因：stop 自然结束；length 达到 max_tokens；tool_calls 需执行工具；content_filter 触发内容过滤。",{"name":988,"type":884,"required":345,"description":989},"choices.index","候选序号。",{"name":991,"type":911,"required":345,"description":992},"choices.message","助手消息。",{"name":994,"type":896,"required":345,"description":995},"choices.message.content","生成的文本内容；仅工具调用时可为空。",{"name":997,"type":896,"required":25,"description":998},"choices.message.reasoning_content","思考过程内容（支持思考模式的模型返回）。",{"name":1000,"type":1001,"required":345,"description":216},"choices.message.role","string (assistant | tool)",{"name":1003,"type":907,"required":25,"description":1004},"choices.message.tool_calls","模型发起的工具调用。",{"name":1006,"type":911,"required":345,"description":216},"choices.message.tool_calls.function",{"name":1008,"type":896,"required":345,"description":920},"choices.message.tool_calls.id",{"name":1010,"type":923,"required":345,"description":216},"choices.message.tool_calls.type",{"name":1012,"type":884,"required":25,"description":1013},"created","创建时间（Unix 秒）。",{"name":1015,"type":896,"required":345,"description":1016},"id","请求 ID。",{"name":925,"type":896,"required":25,"description":1018},"实际使用的模型名。",{"name":911,"type":896,"required":25,"description":1020},"对象类型（如 chat.completion）。",{"name":1022,"type":1023,"required":25,"description":1024},"usage","Usage","Token 用量统计；兼容入口可能透传厂商扩展字段。",{"name":1026,"type":884,"required":345,"description":1027},"usage.completion_tokens","输出 token 数。",{"name":1029,"type":884,"required":345,"description":1030},"usage.prompt_tokens","输入 token 数。",{"name":1032,"type":884,"required":345,"description":1033},"usage.total_tokens","总 token 数。",{"status":1035,"description":1036,"contentType":879,"type":1037,"fields":1038},"default","OpenAI 兼容错误。","OpenAIError",[1039,1041,1044,1046],{"name":1040,"type":911,"required":345,"description":216},"error",{"name":1042,"type":1043,"required":25,"description":216},"error.code","string | integer",{"name":1045,"type":896,"required":345,"description":216},"error.message",{"name":1047,"type":896,"required":25,"description":216},"error.type"]