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