Skip to main content
Vision models can analyze images alongside text prompts. Use them for image understanding, extraction, classification, visual question answering, and multimodal reasoning. Venice supports OpenAI-compatible multimodal chat messages. Put text and image blocks in the same user message, then send the request to a vision-capable model.

Basic Usage

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["VENICE_API_KEY"],
    base_url="https://api.venice.ai/api/v1",
)

response = client.chat.completions.create(
    model="qwen3-vl-235b-a22b",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Describe this image in three bullets."},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://www.gstatic.com/webp/gallery/1.jpg"
                    },
                },
            ],
        }
    ],
)

print(response.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.VENICE_API_KEY,
  baseURL: "https://api.venice.ai/api/v1",
});

const response = await client.chat.completions.create({
  model: "qwen3-vl-235b-a22b",
  messages: [
    {
      role: "user",
      content: [
        { type: "text", text: "Describe this image in three bullets." },
        {
          type: "image_url",
          image_url: {
            url: "https://www.gstatic.com/webp/gallery/1.jpg",
          },
        },
      ],
    },
  ],
});

console.log(response.choices[0].message.content);
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-vl-235b-a22b",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "Describe this image in three bullets."},
          {
            "type": "image_url",
            "image_url": {
              "url": "https://www.gstatic.com/webp/gallery/1.jpg"
            }
          }
        ]
      }
    ]
  }'

Use Base64 Images

You can also pass a base64 data URL when the image is local or private:
{
  "type": "image_url",
  "image_url": {
    "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  }
}

Choose a Vision Model

Use the Text Models page or the Models API to find models that support vision. Vision support is listed in model capabilities.
For document-like inputs, use File Inputs when you want Venice to extract text from a file. Use vision when the visual layout or image content itself matters.

Prompting Tips

  • Tell the model what to focus on: objects, text, layout, safety, defects, or differences.
  • Ask for structured output when your application needs fields you can parse.
  • Keep image URLs accessible to the API, or use base64 data URLs for private images.
  • Use a model with enough context if you combine images with long instructions.