Skip to main content
Multimodal (vision) models accept images alongside text and respond with text — for describing, analyzing, or answering questions about an image. Vision goes through the same /v1/chat/completions endpoint as text chat; you just send image content parts instead of a plain string.

Sending an image

Set a message’s content to an array of parts. Use {"type": "text", ...} for text and {"type": "image_url", "image_url": {"url": "..."}} for an image. The url can be a public https URL or a data:image/...;base64,... data URI.
Use an https URL when the image is already hosted somewhere the model can reach; use a base64 data URI for local files or images you don’t want to expose publicly. You can include multiple image_url parts in one message to ask about several images at once.

Choosing a model

Only vision-capable models accept images. Which models support vision is discoverable via GET /v1/models, for example Qwen/Qwen2.5-VL-72B-Instruct. Sending an image to a text-only model has no effect on the image content.

The response

The response is a standard chat completion: text content plus a usage object:

Billing

Vision requests are billed on prompt and completion tokens like any chat request; the image contributes to the prompt_tokens count. Because everything runs through /v1/chat/completions, vision requests also support streaming, tool calling, and structured output.