Skip to main content
Send an image to the Runcrate Models API and get detailed analysis back. Describe scenes, read charts, answer questions about visual content, or compare multiple images — all through the standard chat completions endpoint.

Available vision models

ModelContextStrengths
Qwen/Qwen3-VL-235B-A22B-Instruct128KStrongest visual reasoning, chart/table extraction, multilingual
meta-llama/Llama-3.2-90B-Vision-Instruct128KStrong general vision, good at spatial reasoning

Analyze an image

curl https://api.runcrate.ai/v1/chat/completions \
  -H "Authorization: Bearer rc_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-VL-235B-A22B-Instruct",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "Describe this image in detail. What objects are present, what is the setting, and what is happening?"},
          {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
        ]
      }
    ],
    "max_tokens": 1024
  }'

Read charts and graphs

Pass a chart image and ask the model to extract data points. Works with bar charts, line graphs, tables, and diagrams. Use base64 encoding for local files:
from openai import OpenAI
import base64
from pathlib import Path

client = OpenAI(
    base_url="https://api.runcrate.ai/v1",
    api_key="rc_live_YOUR_API_KEY",
)

chart_data = base64.b64encode(Path("quarterly-revenue.png").read_bytes()).decode()

response = client.chat.completions.create(
    model="Qwen/Qwen3-VL-235B-A22B-Instruct",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Extract all data points from this chart as a markdown table."},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{chart_data}"}},
        ],
    }],
    max_tokens=1024,
)
print(response.choices[0].message.content)

Next steps