Inference APIs
Models/Chat/Qwen3-VL 235B
VisionOCRChatTool callingJSON mode262K context
Context window
262K tokens
Modality
Image + Text → Text
Input
$0.26 / 1M tokens
Output
$1.15 / 1M tokens
Time to first token
1.28 s
Output speed
10.7 tok/s
Model ID
Qwen/Qwen3-VL-235B-A22B-Instruct

Quickstart

You need an API key to call this model. Create a free account or log in.

Set INFERENCE_API_KEY to your key from the API Keys page, then run:

curl https://api.inferenceapis.com/v1/chat/completions \
  -H "Authorization: Bearer $INFERENCE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3-VL-235B-A22B-Instruct",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello! What can you do?"}
    ]
  }'
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.inferenceapis.com/v1",
    api_key=os.environ["INFERENCE_API_KEY"],
)
response = client.chat.completions.create(
    model="Qwen/Qwen3-VL-235B-A22B-Instruct",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello! What can you do?"},
    ],
)
print(response.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.inferenceapis.com/v1",
  apiKey: process.env.INFERENCE_API_KEY,
});
const response = await client.chat.completions.create({
  model: "Qwen/Qwen3-VL-235B-A22B-Instruct",
  messages: [
    { role: "system", content: "You are a helpful assistant." },
    { role: "user", content: "Hello! What can you do?" },
  ],
});
console.log(response.choices[0].message.content);

When to use it

A good fit when
  • Reading screenshots, invoices, receipts and scanned pages into text or JSON
  • Agents that need to look at an image and then call a tool
Look elsewhere when
  • Text-only work; the text models here are cheaper

What it costs in practice

WorkloadCost
Chat assistant — 10,000 turns of 800 tokens in, 300 out$5.53
Long prompts or RAG — 10,000 requests of 8,000 in, 500 out$26.55
Generation-heavy — 10,000 requests of 500 in, 2,000 out$24.30

Computed from the live rates below. This model does not reason before answering, so output tokens are the visible answer only. There is no subscription or minimum; new accounts start with free credit.

Endpoint

POST https://api.inferenceapis.com/v1/chat/completions
Headers Authorization: Bearer $INFERENCE_API_KEY
Content-Type: application/json
Compatible OpenAI wire format. /openai/v1/… is accepted too, so Groq-style base URLs work with only the host changed.

Model IDs and aliases

Send any of these as model; they all resolve to this model and bill at its rate.

IDNote
Qwen/Qwen3-VL-235B-A22B-InstructCanonical
qwen3-vlAlias
qwen3-vl-235bAlias

Request body

ParameterTypeDescription
model required string Model ID: Qwen/Qwen3-VL-235B-A22B-Instruct — also accepted: qwen3-vl, qwen3-vl-235b
messages required array Conversation so far. Each item has a role (system, user or assistant) and content.
max_tokens integer Maximum number of tokens to generate.
temperature number Sampling temperature. Higher values give more varied output.
top_p number Nucleus sampling cutoff.
stream boolean Stream the response as server-sent events. The final chunk includes usage.
tools array Tool definitions for function calling (OpenAI format).
response_format object {"type": "json_object"} for JSON mode.
stop string | array Sequences where the model stops generating.
seed integer Seed for more reproducible sampling.

Response

200 OK · application/json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "model": "Qwen/Qwen3-VL-235B-A22B-Instruct",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hi! I can answer questions, write and edit text, help with code and more."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 28, "completion_tokens": 17, "total_tokens": 45 }
}

Sending images

Put image parts next to the text in a message's content array. A URL and a base64 data URI both work; PNG and JPEG were tested.

Python · read an invoice into JSON
import base64, os
from openai import OpenAI

client = OpenAI(base_url="https://api.inferenceapis.com/v1", api_key=os.environ["INFERENCE_API_KEY"])
b64 = base64.b64encode(open("invoice.png", "rb").read()).decode()

resp = client.chat.completions.create(
    model="Qwen/Qwen3-VL-235B-A22B-Instruct",
    messages=[{"role": "user", "content": [
        {"type": "text", "text": "Return JSON with keys invoice_number and total."},
        {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},   # or a plain https:// URL
    ]}],
    response_format={"type": "json_object"},
    max_tokens=300,
)
print(resp.choices[0].message.content)   # {"invoice_number": "48213", "total": "$1,274.50"}

That output is from our own test image. Images are billed as input tokens, so downscale large ones; text in the image stays readable well below full resolution.

Tested on this endpoint

Tool calling (tools, tool_calls)Works
JSON mode (response_format: json_object)Works
Schema-constrained output (response_format: json_schema)Works
Streaming with usage in the final chunkWorks
System prompt followedWorks

Each row is a live request we sent on September 17, 2026, not a claim copied from a model card. Streamed and parallel tool calls and tool_choice were tested too: full matrix for every model. Request examples are in the API documentation.

Pricing

Input$0.26 / 1M tokens
Output$1.15 / 1M tokens
BillingPay as you go from prepaid credits. No subscription, no daily request or token cap. See all pricing.

Notes

  • It generates slowly here: about 11 tokens per second in our measurement, so a long description takes a while. It suits extraction, where the answer is short, better than long-form writing.
  • Images are billed as input tokens; a 640×240 image came to about 170 tokens and a 1200×630 image to about 770 in our tests. Downscale large images before sending them.
  • The smaller Qwen3-VL 30B is not offered: at our upstream it did not answer requests when we tested it.

Compare Qwen3-VL 235B with…

Errors

Errors use the OpenAI envelope: {"error": {"message", "type", "code"}}. 401 missing or invalid key · 402 insufficient_balance · 404 model_not_found · 503 model_unavailable · 502 backend error, safe to retry. Full table with what to retry: API documentation. Errors from other providers: provider error reference.