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.