- Input / 1M tokens
- $0.38
- Output / 1M tokens
- $3.84
- Example workload
- $1.34 · 1M in + 250K out
Call it from any OpenAI SDK
Use the official SDK with a custom base URL. The example below is complete — swap the model id to hit a different model in the catalog.
curl https://api.apiraven.com/v1/chat/completions \
-H "Authorization: Bearer $APIRAVEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/qwen3.6-27b",
"messages": [
{ "role": "user", "content": [
{ "type": "text", "text": "Describe this chart in two bullet points." },
{
"type": "image_url",
"image_url": {
"url": "https://example.com/revenue-chart.png",
"detail": "high"
}
}
] }
],
"max_tokens": 512,
"stream": false
}'Standardized parameters
Parameters behave the same on every backend. Values that cannot be honored are either mapped to the closest equivalent or safely dropped — never silently corrupted.
| Parameter | Type | Default | Range | Status |
|---|---|---|---|---|
| Core | ||||
messagesSame Chat Completions shape for every model. | array | — | — | Supported |
System promptFirst message with role: system. | string | — | — | Supported |
streamSSE chunks are normalized to chat.completion.chunk. | boolean | false | — | Supported |
| Sampling | ||||
temperature | number | 0.7 | 0 – 2 | Supported |
top_p | number | 1 | 0 – 1 | Supported |
top_kNormalized to the closest backend equivalent. | integer | — | 0 – 100 | Supported |
frequency_penalty | number | 0 | -2 – 2 | Supported |
presence_penalty | number | 0 | -2 – 2 | Supported |
| Limits | ||||
max_tokensAliases like max_completion_tokens are collapsed into this field. | integer | model max | 1 – model max | Supported |
stopstop_sequences and stop_token_ids are translated to this field. | string | string[] | — | — | Supported |
seedDeterministic output where the backend supports it. | integer | random | — | Supported |
| Tools & format | ||||
response_formatjson_object and json_schema are supported. | object | text | — | Supported |
toolsThree upstream tool-call formats become one OpenAI shape. | array | — | — | Supported |
tool_choice | string | object | auto | — | Supported |
| Reasoning | ||||
reasoning_effortApplies to reasoning models; ignored by the rest. | enum | medium | low | medium | high | Supported |
| Vision | ||||
image content partPublic URL or data: URI (PNG, JPEG, WebP), up to 10 images per request. | object | — | — | Supported |
image detaillow downscales tokens, high tiles at full resolution. Ignored by providers that do not support it. | enum | auto | low | high | auto | Supported |
Sending images
Images travel as an image_url content part — a public URL or a data: base64 URI. PNG, JPEG and WebP are supported, up to 10 images per request. Set detail to control how many tokens each image costs: low downscales, high tiles at full resolution. Providers that do not support detail ignore it.
{
"role": "user",
"content": [
{ "type": "text", "text": "Describe this chart in two bullet points." },
{
"type": "image_url",
"image_url": {
"url": "https://example.com/revenue-chart.png",
"detail": "high"
}
}
]
}Documents and PDFs
The gateway is OpenAI-compatible, so documents travel as text or as page images. The dashboard playground converts a text-based PDF into text automatically and sends attached images as image_url parts. For a scanned PDF, render the pages to images first and send them to a vision model.
Native file content parts depend on the upstream provider and are not available on every deployment. Extracting the text or rendering the pages yourself keeps the request portable across the provider pool.
Using Qwen3.6 27B on APIRaven
Which provider actually runs my request?+
APIRaven routes each request across a pool of managed inference backends. The model id, request shape and response are identical no matter which backend serves it — you never manage provider accounts, keys or regions.
Is the API OpenAI-compatible?+
Yes. Point any OpenAI SDK at https://api.apiraven.com/v1 with your APIRaven key. Chat, vision, images, embeddings and audio all follow the OpenAI request and response shapes.
What happens when a backend degrades?+
Requests are retried and failed over automatically before the first token is returned. If a model is temporarily unavailable, the API returns one stable error envelope instead of a provider-specific failure.
How is usage billed?+
Per token for text, per image for generation and per minute for transcription — deducted from your APIRaven balance. Every response includes normalized usage so you can meter cost per request.
Ship with qwen/qwen3.6-27b
One base URL, one balance, every model. Point your OpenAI SDK at APIRaven and switch models with a single string.