[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-models\u002Fchat\u002Fmultimodal":180},[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":140,"body":182,"description":942,"extension":943,"meta":944,"navigation":393,"path":141,"rawbody":945,"requiredFlags":946,"seo":947,"stem":142,"__hash__":948},"docs_en\u002F4.models\u002F1.chat\u002F7.multimodal.md",{"type":183,"value":184,"toc":938},"minimark",[185,189,198,203,219,834,854,858,867,926,934],[186,187,140],"h1",{"id":188},"multimodal-input",[190,191,192,193,197],"p",{},"This page describes multimodal input for the chat APIs. SilvaMux passes multimodal content ",[194,195,196],"strong",{},"through"," to the model side; whether it can be processed depends on the model itself.",[199,200,202],"h2",{"id":201},"image-input-vision","Image Input (Vision)",[190,204,205,206,210,211,214,215,218],{},"Supports the OpenAI vision format — pass ",[207,208,209],"code",{},"image_url"," inside the ",[207,212,213],{},"content"," of ",[207,216,217],{},"messages",":",[220,221,222,364,495,611],"code-tabs",{},[223,224,226],"code-tab",{"label":225},"cURL",[227,228,233],"pre",{"className":229,"code":230,"language":231,"meta":232,"style":232},"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-m3\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": [\n          {\"type\": \"text\", \"text\": \"What's in this image?\"},\n          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n        ]\n      }\n    ]\n  }'\n","bash","",[207,234,235,252,270,280,289,295,301,307,313,319,334,340,346,352,358],{"__ignoreMap":232},[236,237,240,244,248],"span",{"class":238,"line":239},"line",1,[236,241,243],{"class":242},"sScJk","curl",[236,245,247],{"class":246},"sZZnC"," https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions",[236,249,251],{"class":250},"sj4cs"," \\\n",[236,253,255,258,261,265,268],{"class":238,"line":254},2,[236,256,257],{"class":250},"  -H",[236,259,260],{"class":246}," \"Authorization: Bearer ",[236,262,264],{"class":263},"sVt8B","$SILVAMUX_API_KEY",[236,266,267],{"class":246},"\"",[236,269,251],{"class":250},[236,271,273,275,278],{"class":238,"line":272},3,[236,274,257],{"class":250},[236,276,277],{"class":246}," \"Content-Type: application\u002Fjson\"",[236,279,251],{"class":250},[236,281,283,286],{"class":238,"line":282},4,[236,284,285],{"class":250},"  -d",[236,287,288],{"class":246}," '{\n",[236,290,292],{"class":238,"line":291},5,[236,293,294],{"class":246},"    \"model\": \"minimax-m3\",\n",[236,296,298],{"class":238,"line":297},6,[236,299,300],{"class":246},"    \"messages\": [\n",[236,302,304],{"class":238,"line":303},7,[236,305,306],{"class":246},"      {\n",[236,308,310],{"class":238,"line":309},8,[236,311,312],{"class":246},"        \"role\": \"user\",\n",[236,314,316],{"class":238,"line":315},9,[236,317,318],{"class":246},"        \"content\": [\n",[236,320,322,325,328,331],{"class":238,"line":321},10,[236,323,324],{"class":246},"          {\"type\": \"text\", \"text\": \"What's",[236,326,327],{"class":246}," in",[236,329,330],{"class":246}," this",[236,332,333],{"class":246}," image?\"},\n",[236,335,337],{"class":238,"line":336},11,[236,338,339],{"class":246},"          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n",[236,341,343],{"class":238,"line":342},12,[236,344,345],{"class":246},"        ]\n",[236,347,349],{"class":238,"line":348},13,[236,350,351],{"class":246},"      }\n",[236,353,355],{"class":238,"line":354},14,[236,356,357],{"class":246},"    ]\n",[236,359,361],{"class":238,"line":360},15,[236,362,363],{"class":246},"  }'\n",[223,365,367],{"label":366},"Python",[227,368,372],{"className":369,"code":370,"language":371,"meta":232,"style":232},"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-m3\",\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\"type\": \"text\", \"text\": \"What's in this image?\"},\n                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n            ],\n        }\n    ],\n)\n\nprint(response.choices[0].message.content)\n","python",[207,373,374,379,384,389,395,400,405,410,415,419,424,429,434,439,444,449,455,461,467,473,479,484,489],{"__ignoreMap":232},[236,375,376],{"class":238,"line":239},[236,377,378],{},"# pip install openai\n",[236,380,381],{"class":238,"line":254},[236,382,383],{},"import os\n",[236,385,386],{"class":238,"line":272},[236,387,388],{},"from openai import OpenAI\n",[236,390,391],{"class":238,"line":282},[236,392,394],{"emptyLinePlaceholder":393},true,"\n",[236,396,397],{"class":238,"line":291},[236,398,399],{},"client = OpenAI(\n",[236,401,402],{"class":238,"line":297},[236,403,404],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[236,406,407],{"class":238,"line":303},[236,408,409],{},"    base_url=\"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n",[236,411,412],{"class":238,"line":309},[236,413,414],{},")\n",[236,416,417],{"class":238,"line":315},[236,418,394],{"emptyLinePlaceholder":393},[236,420,421],{"class":238,"line":321},[236,422,423],{},"response = client.chat.completions.create(\n",[236,425,426],{"class":238,"line":336},[236,427,428],{},"    model=\"minimax-m3\",\n",[236,430,431],{"class":238,"line":342},[236,432,433],{},"    messages=[\n",[236,435,436],{"class":238,"line":348},[236,437,438],{},"        {\n",[236,440,441],{"class":238,"line":354},[236,442,443],{},"            \"role\": \"user\",\n",[236,445,446],{"class":238,"line":360},[236,447,448],{},"            \"content\": [\n",[236,450,452],{"class":238,"line":451},16,[236,453,454],{},"                {\"type\": \"text\", \"text\": \"What's in this image?\"},\n",[236,456,458],{"class":238,"line":457},17,[236,459,460],{},"                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n",[236,462,464],{"class":238,"line":463},18,[236,465,466],{},"            ],\n",[236,468,470],{"class":238,"line":469},19,[236,471,472],{},"        }\n",[236,474,476],{"class":238,"line":475},20,[236,477,478],{},"    ],\n",[236,480,482],{"class":238,"line":481},21,[236,483,414],{},[236,485,487],{"class":238,"line":486},22,[236,488,394],{"emptyLinePlaceholder":393},[236,490,492],{"class":238,"line":491},23,[236,493,494],{},"print(response.choices[0].message.content)\n",[223,496,498],{"label":497},"JavaScript",[227,499,503],{"className":500,"code":501,"language":502,"meta":232,"style":232},"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-m3\",\n  messages: [\n    {\n      role: \"user\",\n      content: [\n        { type: \"text\", text: \"What's in this image?\" },\n        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n      ],\n    },\n  ],\n});\n\nconsole.log(response.choices[0].message.content);\n","javascript",[207,504,505,510,515,519,524,529,534,539,543,548,553,558,563,568,573,578,583,588,593,598,602,606],{"__ignoreMap":232},[236,506,507],{"class":238,"line":239},[236,508,509],{},"\u002F\u002F npm install openai\n",[236,511,512],{"class":238,"line":254},[236,513,514],{},"import OpenAI from \"openai\";\n",[236,516,517],{"class":238,"line":272},[236,518,394],{"emptyLinePlaceholder":393},[236,520,521],{"class":238,"line":282},[236,522,523],{},"const client = new OpenAI({\n",[236,525,526],{"class":238,"line":291},[236,527,528],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[236,530,531],{"class":238,"line":297},[236,532,533],{},"  baseURL: \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\",\n",[236,535,536],{"class":238,"line":303},[236,537,538],{},"});\n",[236,540,541],{"class":238,"line":309},[236,542,394],{"emptyLinePlaceholder":393},[236,544,545],{"class":238,"line":315},[236,546,547],{},"const response = await client.chat.completions.create({\n",[236,549,550],{"class":238,"line":321},[236,551,552],{},"  model: \"minimax-m3\",\n",[236,554,555],{"class":238,"line":336},[236,556,557],{},"  messages: [\n",[236,559,560],{"class":238,"line":342},[236,561,562],{},"    {\n",[236,564,565],{"class":238,"line":348},[236,566,567],{},"      role: \"user\",\n",[236,569,570],{"class":238,"line":354},[236,571,572],{},"      content: [\n",[236,574,575],{"class":238,"line":360},[236,576,577],{},"        { type: \"text\", text: \"What's in this image?\" },\n",[236,579,580],{"class":238,"line":451},[236,581,582],{},"        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n",[236,584,585],{"class":238,"line":457},[236,586,587],{},"      ],\n",[236,589,590],{"class":238,"line":463},[236,591,592],{},"    },\n",[236,594,595],{"class":238,"line":469},[236,596,597],{},"  ],\n",[236,599,600],{"class":238,"line":475},[236,601,538],{},[236,603,604],{"class":238,"line":481},[236,605,394],{"emptyLinePlaceholder":393},[236,607,608],{"class":238,"line":486},[236,609,610],{},"console.log(response.choices[0].message.content);\n",[223,612,614],{"label":613},"Go",[227,615,619],{"className":616,"code":617,"language":618,"meta":232,"style":232},"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-m3\",\n        \"messages\": [\n            {\n                \"role\": \"user\",\n                \"content\": [\n                    {\"type\": \"text\", \"text\": \"What's in this image?\"},\n                    {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n                ]\n            }\n        ]\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",[207,620,621,626,631,635,640,645,650,655,660,665,669,673,678,683,688,693,698,703,708,713,718,723,728,732,738,743,749,755,761,767,773,779,784,790,795,800,805,811,816,822,828],{"__ignoreMap":232},[236,622,623],{"class":238,"line":239},[236,624,625],{},"\u002F\u002F Standard library only\n",[236,627,628],{"class":238,"line":254},[236,629,630],{},"package main\n",[236,632,633],{"class":238,"line":272},[236,634,394],{"emptyLinePlaceholder":393},[236,636,637],{"class":238,"line":282},[236,638,639],{},"import (\n",[236,641,642],{"class":238,"line":291},[236,643,644],{},"    \"bytes\"\n",[236,646,647],{"class":238,"line":297},[236,648,649],{},"    \"fmt\"\n",[236,651,652],{"class":238,"line":303},[236,653,654],{},"    \"io\"\n",[236,656,657],{"class":238,"line":309},[236,658,659],{},"    \"net\u002Fhttp\"\n",[236,661,662],{"class":238,"line":315},[236,663,664],{},"    \"os\"\n",[236,666,667],{"class":238,"line":321},[236,668,414],{},[236,670,671],{"class":238,"line":336},[236,672,394],{"emptyLinePlaceholder":393},[236,674,675],{"class":238,"line":342},[236,676,677],{},"func main() {\n",[236,679,680],{"class":238,"line":348},[236,681,682],{},"    payload := []byte(`{\n",[236,684,685],{"class":238,"line":354},[236,686,687],{},"        \"model\": \"minimax-m3\",\n",[236,689,690],{"class":238,"line":360},[236,691,692],{},"        \"messages\": [\n",[236,694,695],{"class":238,"line":451},[236,696,697],{},"            {\n",[236,699,700],{"class":238,"line":457},[236,701,702],{},"                \"role\": \"user\",\n",[236,704,705],{"class":238,"line":463},[236,706,707],{},"                \"content\": [\n",[236,709,710],{"class":238,"line":469},[236,711,712],{},"                    {\"type\": \"text\", \"text\": \"What's in this image?\"},\n",[236,714,715],{"class":238,"line":475},[236,716,717],{},"                    {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n",[236,719,720],{"class":238,"line":481},[236,721,722],{},"                ]\n",[236,724,725],{"class":238,"line":486},[236,726,727],{},"            }\n",[236,729,730],{"class":238,"line":491},[236,731,345],{},[236,733,735],{"class":238,"line":734},24,[236,736,737],{},"    }`)\n",[236,739,741],{"class":238,"line":740},25,[236,742,394],{"emptyLinePlaceholder":393},[236,744,746],{"class":238,"line":745},26,[236,747,748],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fsilvamux.io\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[236,750,752],{"class":238,"line":751},27,[236,753,754],{},"    if err != nil {\n",[236,756,758],{"class":238,"line":757},28,[236,759,760],{},"        panic(err)\n",[236,762,764],{"class":238,"line":763},29,[236,765,766],{},"    }\n",[236,768,770],{"class":238,"line":769},30,[236,771,772],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[236,774,776],{"class":238,"line":775},31,[236,777,778],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[236,780,782],{"class":238,"line":781},32,[236,783,394],{"emptyLinePlaceholder":393},[236,785,787],{"class":238,"line":786},33,[236,788,789],{},"    resp, err := http.DefaultClient.Do(req)\n",[236,791,793],{"class":238,"line":792},34,[236,794,754],{},[236,796,798],{"class":238,"line":797},35,[236,799,760],{},[236,801,803],{"class":238,"line":802},36,[236,804,766],{},[236,806,808],{"class":238,"line":807},37,[236,809,810],{},"    defer resp.Body.Close()\n",[236,812,814],{"class":238,"line":813},38,[236,815,394],{"emptyLinePlaceholder":393},[236,817,819],{"class":238,"line":818},39,[236,820,821],{},"    body, _ := io.ReadAll(resp.Body)\n",[236,823,825],{"class":238,"line":824},40,[236,826,827],{},"    fmt.Println(string(body))\n",[236,829,831],{"class":238,"line":830},41,[236,832,833],{},"}\n",[835,836,837,848,851],"ul",{},[838,839,840,843,844,847],"li",{},[207,841,842],{},"image_url.url"," can be a public URL or base64-encoded data (",[207,845,846],{},"data:image\u002Fjpeg;base64,...",").",[838,849,850],{},"The platform does not parse or strip image content; it is forwarded to the model as-is.",[838,852,853],{},"Whether image input is supported is decided by the model (some multimodal models support it; text-only models return errors).",[199,855,857],{"id":856},"audio-input","Audio Input",[190,859,860,861,864,865,218],{},"Supports the OpenAI audio format — pass ",[207,862,863],{},"input_audio"," inside ",[207,866,213],{},[227,868,872],{"className":869,"code":870,"language":871,"meta":232,"style":232},"language-json shiki shiki-themes github-light github-dark","{\n  \"type\": \"input_audio\",\n  \"input_audio\": {\"data\": \"\u003Cbase64>\", \"format\": \"wav\"}\n}\n","json",[207,873,874,879,893,922],{"__ignoreMap":232},[236,875,876],{"class":238,"line":239},[236,877,878],{"class":263},"{\n",[236,880,881,884,887,890],{"class":238,"line":254},[236,882,883],{"class":250},"  \"type\"",[236,885,886],{"class":263},": ",[236,888,889],{"class":246},"\"input_audio\"",[236,891,892],{"class":263},",\n",[236,894,895,898,901,904,906,909,912,915,917,920],{"class":238,"line":272},[236,896,897],{"class":250},"  \"input_audio\"",[236,899,900],{"class":263},": {",[236,902,903],{"class":250},"\"data\"",[236,905,886],{"class":263},[236,907,908],{"class":246},"\"\u003Cbase64>\"",[236,910,911],{"class":263},", ",[236,913,914],{"class":250},"\"format\"",[236,916,886],{"class":263},[236,918,919],{"class":246},"\"wav\"",[236,921,833],{"class":263},[236,923,924],{"class":238,"line":282},[236,925,833],{"class":263},[835,927,928,931],{},[838,929,930],{},"Passed through by the platform; processability is decided by the model.",[838,932,933],{},"Audio tokens are billed as regular input tokens (no separate multimodal price).",[935,936,937],"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":232,"searchDepth":254,"depth":254,"links":939},[940,941],{"id":201,"depth":254,"text":202},{"id":856,"depth":254,"text":857},"Input formats and capability limits for images, audio, and other multimodal content.","md",{},"---\ntitle: Multimodal Input\ndescription: Input formats and capability limits for images, audio, and other multimodal content.\n---\n\n# Multimodal Input\n\nThis page describes multimodal input for the chat APIs. SilvaMux passes multimodal content **through** to the model side; whether it can be processed depends on the model itself.\n\n## Image Input (Vision)\n\nSupports the OpenAI vision format — pass `image_url` inside the `content` of `messages`:\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-m3\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": [\n          {\"type\": \"text\", \"text\": \"What's in this image?\"},\n          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n        ]\n      }\n    ]\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-m3\",\n    messages=[\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\"type\": \"text\", \"text\": \"What's in this image?\"},\n                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n            ],\n        }\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-m3\",\n  messages: [\n    {\n      role: \"user\",\n      content: [\n        { type: \"text\", text: \"What's in this image?\" },\n        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n      ],\n    },\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-m3\",\n\t\t\"messages\": [\n\t\t\t{\n\t\t\t\t\"role\": \"user\",\n\t\t\t\t\"content\": [\n\t\t\t\t\t{\"type\": \"text\", \"text\": \"What's in this image?\"},\n\t\t\t\t\t{\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n\t\t\t\t]\n\t\t\t}\n\t\t]\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\n- `image_url.url` can be a public URL or base64-encoded data (`data:image\u002Fjpeg;base64,...`).\n- The platform does not parse or strip image content; it is forwarded to the model as-is.\n- Whether image input is supported is decided by the model (some multimodal models support it; text-only models return errors).\n\n## Audio Input\n\nSupports the OpenAI audio format — pass `input_audio` inside `content`:\n\n```json\n{\n  \"type\": \"input_audio\",\n  \"input_audio\": {\"data\": \"\u003Cbase64>\", \"format\": \"wav\"}\n}\n```\n\n- Passed through by the platform; processability is decided by the model.\n- Audio tokens are billed as regular input tokens (no separate multimodal price).\n",[],{"title":140,"description":942},"zx3P_L2LiQtntPWDPlHaay_d_sTINHOSnF4wUFhayM0"]