Skip to content
Menu
Base URLhttps://api.getworg.com/v1

Vision

Send images as image_url parts in a user message, next to your text. The model reads them as input tokens.

Lanes

  • deepseek-v4.1-flash:cached: up to 8 images per request
  • deepseek-v4.1-flash:standard: up to 8 images per request

qwen3.8-27b:standard may accept an image, but misread text and tables in Worg's tests, so it is not listed for vision. Do not rely on it.

Send an image

Python
import base64
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.getworg.com/v1",
    api_key=os.environ["WORG_API_KEY"],
)

with open("receipt.png", "rb") as f:
    image = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="deepseek-v4.1-flash:cached",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What is the total on this receipt? Reply with the amount only."},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image}"}},
        ],
    }],
    reasoning_effort="none",
    max_tokens=100,
)
print(response.choices[0].message.content)

An image can also be a public URL:

Content part
{"type": "image_url", "image_url": {"url": "https://example.com/receipt.png"}}

Rules

  • Up to 8 images per request. More gets 400 invalid_request.
  • A URL must be https or http to a public host name. IP addresses, localhost, .local and .internal hosts are refused, and so is a data: URL that is not data:image/.
  • The model's server downloads the URL itself. Hosts that refuse automated downloads make the request fail. For files on your own systems, send a data URI.
  • Keep images at 2,048 px on the longest side or less. A lane that refuses an image as too large answers 413 images_too_large; through a combo, the next lane is tried first.
  • detail in image_url is accepted and has no effect on the tokens.

Tokens and cost

Images count inside prompt_tokens. On the DeepSeek V4.1 Flash lanes, Worg's tests measured about 200 tokens for a 384 px image, 652 for 1,024 × 1,024 px, and at most about 1,000 for larger images.

Before a request is sent, the cost hold counts each image at the most one image can cost on that lane, because the size of an image behind a URL is not known in advance.

Next: Chat requestsRate limits