Messages & Multimodal Input — ML Junction docs
Message roles are system, developer, user, assistant, and tool. Content can be a plain string or an array of typed parts. Multimodal content automatically upgrades the corresponding route requirement from off to required.
Part type · Fields · Route requirement text · text · Text input image_url · image_url · Vision required input_audio · data and media_type · Audio input required file · file_id or file_url, filename · PDF/file capability required
{
"model": "gpt-5.5",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Describe the architecture shown in this diagram."
},
{
"type": "image_url",
"image_url": "https://example.com/architecture.png"
}
]
}
],
"requirements": {
"vision": "required"
}
}
{
"model": "gemini-3.5-flash",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Summarize the risks and action items."
},
{
"type": "file",
"file_url": "https://example.com/security-review.pdf",
"filename": "security-review.pdf"
}
]
}
],
"requirements": {
"pdf": "required"
}
}
A route must advertise the requested modality. Check capabilities.modalities on GET /v1/models/{model}/routes before presenting upload controls.
Canonical URL: https://mljunction.com/docs/messages-multimodal