Skip to main content

Documentation Index

Fetch the complete documentation index at: https://runcrate.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

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