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