[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-models\u002Fchat\u002Fmultimodal":163},[4,52,69,92,142,155,159],{"title":5,"path":6,"stem":7,"children":8,"page":-1},"Getting Started","\u002Fgetting-started","1.getting-started",[9,12,30,44,48],{"title":10,"path":6,"stem":11},"About SilvaMux","1.getting-started\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"page":-1},"Your First SilvaMux API Call","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start\u002Findex",[17,18,22,26],{"title":13,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"Projects & Account Setup","\u002Fgetting-started\u002Fquick-start\u002Fproject-and-account","1.getting-started\u002F1.quick-start\u002F2.project-and-account",{"title":23,"path":24,"stem":25},"Get an API Key","\u002Fgetting-started\u002Fquick-start\u002Fapi-key","1.getting-started\u002F1.quick-start\u002F3.api-key",{"title":27,"path":28,"stem":29},"First Request","\u002Fgetting-started\u002Fquick-start\u002Ffirst-request","1.getting-started\u002F1.quick-start\u002F4.first-request",{"title":31,"path":32,"stem":33,"children":34,"page":43},"Models & Experience","\u002Fgetting-started\u002Fmodels-and-experience","1.getting-started\u002F2.models-and-experience",[35,39],{"title":36,"path":37,"stem":38},"Model Selection","\u002Fgetting-started\u002Fmodels-and-experience\u002Fmodel-selection","1.getting-started\u002F2.models-and-experience\u002F1.model-selection",{"title":40,"path":41,"stem":42},"Playground","\u002Fgetting-started\u002Fmodels-and-experience\u002Fplayground","1.getting-started\u002F2.models-and-experience\u002F2.playground",false,{"title":45,"path":46,"stem":47},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":49,"path":50,"stem":51},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",{"title":53,"path":54,"stem":55,"children":56,"page":43},"Billing","\u002Fbilling","2.billing",[57,61,65],{"title":58,"path":59,"stem":60},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":62,"path":63,"stem":64},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":66,"path":67,"stem":68},"Bills, Usage & Exports","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":70,"path":71,"stem":72,"children":73,"page":43},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[74,78],{"title":75,"path":76,"stem":77},"Coding Plan Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":79,"path":80,"stem":81,"children":82,"page":-1},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F2.personal\u002Findex",[83,85,89],{"title":84,"path":80,"stem":81},"Pricing & Benefits",{"title":86,"path":87,"stem":88},"Quick Start","\u002Fcoding-plan\u002Fpersonal\u002Fquick-start","3.coding-plan\u002F2.personal\u002F2.quick-start",{"title":49,"path":90,"stem":91},"\u002Fcoding-plan\u002Fpersonal\u002Ffaq","3.coding-plan\u002F2.personal\u002F3.faq",{"title":93,"path":94,"stem":95,"children":96,"page":43},"Model APIs","\u002Fmodels","4.models",[97,130],{"title":98,"path":99,"stem":100,"children":101,"page":43},"Text Generation","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[102,106,110,114,118,122,126],{"title":103,"path":104,"stem":105},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":107,"path":108,"stem":109},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":111,"path":112,"stem":113},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":115,"path":116,"stem":117},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":119,"path":120,"stem":121},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":123,"path":124,"stem":125},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":127,"path":128,"stem":129},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":131,"path":132,"stem":133,"children":134,"page":43},"Image Generation","\u002Fmodels\u002Fimages","4.models\u002F2.images",[135,138],{"title":103,"path":136,"stem":137},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":139,"path":140,"stem":141},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":143,"path":144,"stem":145,"children":146,"page":43},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[147,151],{"title":148,"path":149,"stem":150},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":152,"path":153,"stem":154},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":156,"path":157,"stem":158},"Error Codes","\u002Ferrors","6.errors",{"title":160,"path":161,"stem":162},"Documentation","\u002F","index",{"id":164,"title":127,"body":165,"description":925,"extension":926,"meta":927,"navigation":376,"path":128,"rawbody":928,"requiredFlags":929,"seo":930,"stem":129,"__hash__":931},"docs_en\u002F4.models\u002F1.chat\u002F7.multimodal.md",{"type":166,"value":167,"toc":921},"minimark",[168,172,181,186,202,817,837,841,850,909,917],[169,170,127],"h1",{"id":171},"multimodal-input",[173,174,175,176,180],"p",{},"This page describes multimodal input for the chat APIs. SilvaMux passes multimodal content ",[177,178,179],"strong",{},"through"," to the model side; whether it can be processed depends on the model itself.",[182,183,185],"h2",{"id":184},"image-input-vision","Image Input (Vision)",[173,187,188,189,193,194,197,198,201],{},"Supports the OpenAI vision format — pass ",[190,191,192],"code",{},"image_url"," inside the ",[190,195,196],{},"content"," of ",[190,199,200],{},"messages",":",[203,204,205,347,478,594],"code-tabs",{},[206,207,209],"code-tab",{"label":208},"cURL",[210,211,216],"pre",{"className":212,"code":213,"language":214,"meta":215,"style":215},"language-bash shiki shiki-themes github-light github-dark","curl https:\u002F\u002Fwww.silvamux.com\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","",[190,217,218,235,253,263,272,278,284,290,296,302,317,323,329,335,341],{"__ignoreMap":215},[219,220,223,227,231],"span",{"class":221,"line":222},"line",1,[219,224,226],{"class":225},"sScJk","curl",[219,228,230],{"class":229},"sZZnC"," https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions",[219,232,234],{"class":233},"sj4cs"," \\\n",[219,236,238,241,244,248,251],{"class":221,"line":237},2,[219,239,240],{"class":233},"  -H",[219,242,243],{"class":229}," \"Authorization: Bearer ",[219,245,247],{"class":246},"sVt8B","$SILVAMUX_API_KEY",[219,249,250],{"class":229},"\"",[219,252,234],{"class":233},[219,254,256,258,261],{"class":221,"line":255},3,[219,257,240],{"class":233},[219,259,260],{"class":229}," \"Content-Type: application\u002Fjson\"",[219,262,234],{"class":233},[219,264,266,269],{"class":221,"line":265},4,[219,267,268],{"class":233},"  -d",[219,270,271],{"class":229}," '{\n",[219,273,275],{"class":221,"line":274},5,[219,276,277],{"class":229},"    \"model\": \"minimax-m3\",\n",[219,279,281],{"class":221,"line":280},6,[219,282,283],{"class":229},"    \"messages\": [\n",[219,285,287],{"class":221,"line":286},7,[219,288,289],{"class":229},"      {\n",[219,291,293],{"class":221,"line":292},8,[219,294,295],{"class":229},"        \"role\": \"user\",\n",[219,297,299],{"class":221,"line":298},9,[219,300,301],{"class":229},"        \"content\": [\n",[219,303,305,308,311,314],{"class":221,"line":304},10,[219,306,307],{"class":229},"          {\"type\": \"text\", \"text\": \"What's",[219,309,310],{"class":229}," in",[219,312,313],{"class":229}," this",[219,315,316],{"class":229}," image?\"},\n",[219,318,320],{"class":221,"line":319},11,[219,321,322],{"class":229},"          {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n",[219,324,326],{"class":221,"line":325},12,[219,327,328],{"class":229},"        ]\n",[219,330,332],{"class":221,"line":331},13,[219,333,334],{"class":229},"      }\n",[219,336,338],{"class":221,"line":337},14,[219,339,340],{"class":229},"    ]\n",[219,342,344],{"class":221,"line":343},15,[219,345,346],{"class":229},"  }'\n",[206,348,350],{"label":349},"Python",[210,351,355],{"className":352,"code":353,"language":354,"meta":215,"style":215},"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\u002Fwww.silvamux.com\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",[190,356,357,362,367,372,378,383,388,393,398,402,407,412,417,422,427,432,438,444,450,456,462,467,472],{"__ignoreMap":215},[219,358,359],{"class":221,"line":222},[219,360,361],{},"# pip install openai\n",[219,363,364],{"class":221,"line":237},[219,365,366],{},"import os\n",[219,368,369],{"class":221,"line":255},[219,370,371],{},"from openai import OpenAI\n",[219,373,374],{"class":221,"line":265},[219,375,377],{"emptyLinePlaceholder":376},true,"\n",[219,379,380],{"class":221,"line":274},[219,381,382],{},"client = OpenAI(\n",[219,384,385],{"class":221,"line":280},[219,386,387],{},"    api_key=os.environ[\"SILVAMUX_API_KEY\"],\n",[219,389,390],{"class":221,"line":286},[219,391,392],{},"    base_url=\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\",\n",[219,394,395],{"class":221,"line":292},[219,396,397],{},")\n",[219,399,400],{"class":221,"line":298},[219,401,377],{"emptyLinePlaceholder":376},[219,403,404],{"class":221,"line":304},[219,405,406],{},"response = client.chat.completions.create(\n",[219,408,409],{"class":221,"line":319},[219,410,411],{},"    model=\"minimax-m3\",\n",[219,413,414],{"class":221,"line":325},[219,415,416],{},"    messages=[\n",[219,418,419],{"class":221,"line":331},[219,420,421],{},"        {\n",[219,423,424],{"class":221,"line":337},[219,425,426],{},"            \"role\": \"user\",\n",[219,428,429],{"class":221,"line":343},[219,430,431],{},"            \"content\": [\n",[219,433,435],{"class":221,"line":434},16,[219,436,437],{},"                {\"type\": \"text\", \"text\": \"What's in this image?\"},\n",[219,439,441],{"class":221,"line":440},17,[219,442,443],{},"                {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}},\n",[219,445,447],{"class":221,"line":446},18,[219,448,449],{},"            ],\n",[219,451,453],{"class":221,"line":452},19,[219,454,455],{},"        }\n",[219,457,459],{"class":221,"line":458},20,[219,460,461],{},"    ],\n",[219,463,465],{"class":221,"line":464},21,[219,466,397],{},[219,468,470],{"class":221,"line":469},22,[219,471,377],{"emptyLinePlaceholder":376},[219,473,475],{"class":221,"line":474},23,[219,476,477],{},"print(response.choices[0].message.content)\n",[206,479,481],{"label":480},"JavaScript",[210,482,486],{"className":483,"code":484,"language":485,"meta":215,"style":215},"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\u002Fwww.silvamux.com\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",[190,487,488,493,498,502,507,512,517,522,526,531,536,541,546,551,556,561,566,571,576,581,585,589],{"__ignoreMap":215},[219,489,490],{"class":221,"line":222},[219,491,492],{},"\u002F\u002F npm install openai\n",[219,494,495],{"class":221,"line":237},[219,496,497],{},"import OpenAI from \"openai\";\n",[219,499,500],{"class":221,"line":255},[219,501,377],{"emptyLinePlaceholder":376},[219,503,504],{"class":221,"line":265},[219,505,506],{},"const client = new OpenAI({\n",[219,508,509],{"class":221,"line":274},[219,510,511],{},"  apiKey: process.env.SILVAMUX_API_KEY,\n",[219,513,514],{"class":221,"line":280},[219,515,516],{},"  baseURL: \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\",\n",[219,518,519],{"class":221,"line":286},[219,520,521],{},"});\n",[219,523,524],{"class":221,"line":292},[219,525,377],{"emptyLinePlaceholder":376},[219,527,528],{"class":221,"line":298},[219,529,530],{},"const response = await client.chat.completions.create({\n",[219,532,533],{"class":221,"line":304},[219,534,535],{},"  model: \"minimax-m3\",\n",[219,537,538],{"class":221,"line":319},[219,539,540],{},"  messages: [\n",[219,542,543],{"class":221,"line":325},[219,544,545],{},"    {\n",[219,547,548],{"class":221,"line":331},[219,549,550],{},"      role: \"user\",\n",[219,552,553],{"class":221,"line":337},[219,554,555],{},"      content: [\n",[219,557,558],{"class":221,"line":343},[219,559,560],{},"        { type: \"text\", text: \"What's in this image?\" },\n",[219,562,563],{"class":221,"line":434},[219,564,565],{},"        { type: \"image_url\", image_url: { url: \"https:\u002F\u002Fexample.com\u002Fcat.jpg\" } },\n",[219,567,568],{"class":221,"line":440},[219,569,570],{},"      ],\n",[219,572,573],{"class":221,"line":446},[219,574,575],{},"    },\n",[219,577,578],{"class":221,"line":452},[219,579,580],{},"  ],\n",[219,582,583],{"class":221,"line":458},[219,584,521],{},[219,586,587],{"class":221,"line":464},[219,588,377],{"emptyLinePlaceholder":376},[219,590,591],{"class":221,"line":469},[219,592,593],{},"console.log(response.choices[0].message.content);\n",[206,595,597],{"label":596},"Go",[210,598,602],{"className":599,"code":600,"language":601,"meta":215,"style":215},"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\u002Fwww.silvamux.com\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",[190,603,604,609,614,618,623,628,633,638,643,648,652,656,661,666,671,676,681,686,691,696,701,706,711,715,721,726,732,738,744,750,756,762,767,773,778,783,788,794,799,805,811],{"__ignoreMap":215},[219,605,606],{"class":221,"line":222},[219,607,608],{},"\u002F\u002F Standard library only\n",[219,610,611],{"class":221,"line":237},[219,612,613],{},"package main\n",[219,615,616],{"class":221,"line":255},[219,617,377],{"emptyLinePlaceholder":376},[219,619,620],{"class":221,"line":265},[219,621,622],{},"import (\n",[219,624,625],{"class":221,"line":274},[219,626,627],{},"    \"bytes\"\n",[219,629,630],{"class":221,"line":280},[219,631,632],{},"    \"fmt\"\n",[219,634,635],{"class":221,"line":286},[219,636,637],{},"    \"io\"\n",[219,639,640],{"class":221,"line":292},[219,641,642],{},"    \"net\u002Fhttp\"\n",[219,644,645],{"class":221,"line":298},[219,646,647],{},"    \"os\"\n",[219,649,650],{"class":221,"line":304},[219,651,397],{},[219,653,654],{"class":221,"line":319},[219,655,377],{"emptyLinePlaceholder":376},[219,657,658],{"class":221,"line":325},[219,659,660],{},"func main() {\n",[219,662,663],{"class":221,"line":331},[219,664,665],{},"    payload := []byte(`{\n",[219,667,668],{"class":221,"line":337},[219,669,670],{},"        \"model\": \"minimax-m3\",\n",[219,672,673],{"class":221,"line":343},[219,674,675],{},"        \"messages\": [\n",[219,677,678],{"class":221,"line":434},[219,679,680],{},"            {\n",[219,682,683],{"class":221,"line":440},[219,684,685],{},"                \"role\": \"user\",\n",[219,687,688],{"class":221,"line":446},[219,689,690],{},"                \"content\": [\n",[219,692,693],{"class":221,"line":452},[219,694,695],{},"                    {\"type\": \"text\", \"text\": \"What's in this image?\"},\n",[219,697,698],{"class":221,"line":458},[219,699,700],{},"                    {\"type\": \"image_url\", \"image_url\": {\"url\": \"https:\u002F\u002Fexample.com\u002Fcat.jpg\"}}\n",[219,702,703],{"class":221,"line":464},[219,704,705],{},"                ]\n",[219,707,708],{"class":221,"line":469},[219,709,710],{},"            }\n",[219,712,713],{"class":221,"line":474},[219,714,328],{},[219,716,718],{"class":221,"line":717},24,[219,719,720],{},"    }`)\n",[219,722,724],{"class":221,"line":723},25,[219,725,377],{"emptyLinePlaceholder":376},[219,727,729],{"class":221,"line":728},26,[219,730,731],{},"    req, err := http.NewRequest(\"POST\", \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions\", bytes.NewReader(payload))\n",[219,733,735],{"class":221,"line":734},27,[219,736,737],{},"    if err != nil {\n",[219,739,741],{"class":221,"line":740},28,[219,742,743],{},"        panic(err)\n",[219,745,747],{"class":221,"line":746},29,[219,748,749],{},"    }\n",[219,751,753],{"class":221,"line":752},30,[219,754,755],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[219,757,759],{"class":221,"line":758},31,[219,760,761],{},"    req.Header.Set(\"Content-Type\", \"application\u002Fjson\")\n",[219,763,765],{"class":221,"line":764},32,[219,766,377],{"emptyLinePlaceholder":376},[219,768,770],{"class":221,"line":769},33,[219,771,772],{},"    resp, err := http.DefaultClient.Do(req)\n",[219,774,776],{"class":221,"line":775},34,[219,777,737],{},[219,779,781],{"class":221,"line":780},35,[219,782,743],{},[219,784,786],{"class":221,"line":785},36,[219,787,749],{},[219,789,791],{"class":221,"line":790},37,[219,792,793],{},"    defer resp.Body.Close()\n",[219,795,797],{"class":221,"line":796},38,[219,798,377],{"emptyLinePlaceholder":376},[219,800,802],{"class":221,"line":801},39,[219,803,804],{},"    body, _ := io.ReadAll(resp.Body)\n",[219,806,808],{"class":221,"line":807},40,[219,809,810],{},"    fmt.Println(string(body))\n",[219,812,814],{"class":221,"line":813},41,[219,815,816],{},"}\n",[818,819,820,831,834],"ul",{},[821,822,823,826,827,830],"li",{},[190,824,825],{},"image_url.url"," can be a public URL or base64-encoded data (",[190,828,829],{},"data:image\u002Fjpeg;base64,...",").",[821,832,833],{},"The platform does not parse or strip image content; it is forwarded to the model as-is.",[821,835,836],{},"Whether image input is supported is decided by the model (some multimodal models support it; text-only models return errors).",[182,838,840],{"id":839},"audio-input","Audio Input",[173,842,843,844,847,848,201],{},"Supports the OpenAI audio format — pass ",[190,845,846],{},"input_audio"," inside ",[190,849,196],{},[210,851,855],{"className":852,"code":853,"language":854,"meta":215,"style":215},"language-json shiki shiki-themes github-light github-dark","{\n  \"type\": \"input_audio\",\n  \"input_audio\": {\"data\": \"\u003Cbase64>\", \"format\": \"wav\"}\n}\n","json",[190,856,857,862,876,905],{"__ignoreMap":215},[219,858,859],{"class":221,"line":222},[219,860,861],{"class":246},"{\n",[219,863,864,867,870,873],{"class":221,"line":237},[219,865,866],{"class":233},"  \"type\"",[219,868,869],{"class":246},": ",[219,871,872],{"class":229},"\"input_audio\"",[219,874,875],{"class":246},",\n",[219,877,878,881,884,887,889,892,895,898,900,903],{"class":221,"line":255},[219,879,880],{"class":233},"  \"input_audio\"",[219,882,883],{"class":246},": {",[219,885,886],{"class":233},"\"data\"",[219,888,869],{"class":246},[219,890,891],{"class":229},"\"\u003Cbase64>\"",[219,893,894],{"class":246},", ",[219,896,897],{"class":233},"\"format\"",[219,899,869],{"class":246},[219,901,902],{"class":229},"\"wav\"",[219,904,816],{"class":246},[219,906,907],{"class":221,"line":265},[219,908,816],{"class":246},[818,910,911,914],{},[821,912,913],{},"Passed through by the platform; processability is decided by the model.",[821,915,916],{},"Audio tokens are billed as regular input tokens (no separate multimodal price).",[918,919,920],"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":215,"searchDepth":237,"depth":237,"links":922},[923,924],{"id":184,"depth":237,"text":185},{"id":839,"depth":237,"text":840},"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\u002Fwww.silvamux.com\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\u002Fwww.silvamux.com\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\u002Fwww.silvamux.com\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\u002Fwww.silvamux.com\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":127,"description":925},"HXD1Iu76Zdb-gLGiJ65heludYmD6QwZKMNssH1Rdb6U"]