import httpx
from urllib.parse import quote
model_id = quote("paddleocr/pp-ocrv6", safe="")
response = httpx.get(
f"https://gateway.vlm.run/openai/models/{model_id}",
headers={"Authorization": "Bearer <VLMRUN_API_KEY>"},
)
print(response.json())
const modelId = encodeURIComponent("paddleocr/pp-ocrv6");
const response = await fetch(`https://gateway.vlm.run/openai/models/${modelId}`, {
headers: { Authorization: "Bearer <VLMRUN_API_KEY>" },
});
console.log(await response.json());
vlmrun gw models pp-ocrv6
curl "https://gateway.vlm.run/openai/models/paddleocr%2Fpp-ocrv6" \
-H "Authorization: Bearer $VLMRUN_API_KEY"
{
"id": "qwen/qwen3.5-0.8b",
"hf_model_id": "Qwen/Qwen3.5-0.8B",
"name": "Qwen3.5 0.8B",
"description": "Multimodal chat model with up to 64 images or one video per request.",
"task": "chat",
"context_length": 262144,
"architecture": {
"input_modalities": ["text", "image", "video"],
"output_modalities": ["text"],
"modality": "text+image+video->text"
},
"capabilities": {
"max_images": 64,
"max_videos": 1,
"supports_text_only": true,
"supports_document_url": false,
"supports_json_object": true,
"supports_json_schema": true,
"supported_input_types": ["text", "image_url", "video_url"]
},
"aliases": ["Qwen/Qwen3.5-0.8B", "qwen3.5-0.8b"],
"methods": [],
"default_method": "",
"task_capabilities": ["chat", "caption", "detection"],
"supported_parameters": ["temperature", "top_p", "top_k", "min_p", "seed", "max_tokens", "max_completion_tokens", "stop", "presence_penalty", "frequency_penalty", "repetition_penalty", "logprobs", "top_logprobs", "response_format", "stream", "stream_options"],
"pricing": {
"prompt": 0.08,
"completion": 0.15,
"input_cache_read": 0.02,
"input_cache_write": 0.0,
"image": 0.0,
"video": 0.0
}
}
{
"detail": {
"error": {
"message": "Model 'does-not/exist' not found.",
"type": "model_not_found",
"code": null,
"param": null
}
}
}
OpenAI Compatible API
Get Model
One gateway model and its capabilities
GET
/
openai
/
models
/
{model_id}
import httpx
from urllib.parse import quote
model_id = quote("paddleocr/pp-ocrv6", safe="")
response = httpx.get(
f"https://gateway.vlm.run/openai/models/{model_id}",
headers={"Authorization": "Bearer <VLMRUN_API_KEY>"},
)
print(response.json())
const modelId = encodeURIComponent("paddleocr/pp-ocrv6");
const response = await fetch(`https://gateway.vlm.run/openai/models/${modelId}`, {
headers: { Authorization: "Bearer <VLMRUN_API_KEY>" },
});
console.log(await response.json());
vlmrun gw models pp-ocrv6
curl "https://gateway.vlm.run/openai/models/paddleocr%2Fpp-ocrv6" \
-H "Authorization: Bearer $VLMRUN_API_KEY"
{
"id": "qwen/qwen3.5-0.8b",
"hf_model_id": "Qwen/Qwen3.5-0.8B",
"name": "Qwen3.5 0.8B",
"description": "Multimodal chat model with up to 64 images or one video per request.",
"task": "chat",
"context_length": 262144,
"architecture": {
"input_modalities": ["text", "image", "video"],
"output_modalities": ["text"],
"modality": "text+image+video->text"
},
"capabilities": {
"max_images": 64,
"max_videos": 1,
"supports_text_only": true,
"supports_document_url": false,
"supports_json_object": true,
"supports_json_schema": true,
"supported_input_types": ["text", "image_url", "video_url"]
},
"aliases": ["Qwen/Qwen3.5-0.8B", "qwen3.5-0.8b"],
"methods": [],
"default_method": "",
"task_capabilities": ["chat", "caption", "detection"],
"supported_parameters": ["temperature", "top_p", "top_k", "min_p", "seed", "max_tokens", "max_completion_tokens", "stop", "presence_penalty", "frequency_penalty", "repetition_penalty", "logprobs", "top_logprobs", "response_format", "stream", "stream_options"],
"pricing": {
"prompt": 0.08,
"completion": 0.15,
"input_cache_read": 0.02,
"input_cache_write": 0.0,
"image": 0.0,
"video": 0.0
}
}
{
"detail": {
"error": {
"message": "Model 'does-not/exist' not found.",
"type": "model_not_found",
"code": null,
"param": null
}
}
}
Omit the
Authorization header for anonymous access. Per-tier quotas are on Rate Limits. This route shares those quotas with the inference routes. For the full catalog, call List Models or see Models.
model_id is a path parameter. The value keeps its /. GET /openai/models/paddleocr/pp-ocrv6 resolves as written. Percent-encoding the slash as %2F also works.
import httpx
from urllib.parse import quote
model_id = quote("paddleocr/pp-ocrv6", safe="")
response = httpx.get(
f"https://gateway.vlm.run/openai/models/{model_id}",
headers={"Authorization": "Bearer <VLMRUN_API_KEY>"},
)
print(response.json())
const modelId = encodeURIComponent("paddleocr/pp-ocrv6");
const response = await fetch(`https://gateway.vlm.run/openai/models/${modelId}`, {
headers: { Authorization: "Bearer <VLMRUN_API_KEY>" },
});
console.log(await response.json());
vlmrun gw models pp-ocrv6
curl "https://gateway.vlm.run/openai/models/paddleocr%2Fpp-ocrv6" \
-H "Authorization: Bearer $VLMRUN_API_KEY"
{
"id": "qwen/qwen3.5-0.8b",
"hf_model_id": "Qwen/Qwen3.5-0.8B",
"name": "Qwen3.5 0.8B",
"description": "Multimodal chat model with up to 64 images or one video per request.",
"task": "chat",
"context_length": 262144,
"architecture": {
"input_modalities": ["text", "image", "video"],
"output_modalities": ["text"],
"modality": "text+image+video->text"
},
"capabilities": {
"max_images": 64,
"max_videos": 1,
"supports_text_only": true,
"supports_document_url": false,
"supports_json_object": true,
"supports_json_schema": true,
"supported_input_types": ["text", "image_url", "video_url"]
},
"aliases": ["Qwen/Qwen3.5-0.8B", "qwen3.5-0.8b"],
"methods": [],
"default_method": "",
"task_capabilities": ["chat", "caption", "detection"],
"supported_parameters": ["temperature", "top_p", "top_k", "min_p", "seed", "max_tokens", "max_completion_tokens", "stop", "presence_penalty", "frequency_penalty", "repetition_penalty", "logprobs", "top_logprobs", "response_format", "stream", "stream_options"],
"pricing": {
"prompt": 0.08,
"completion": 0.15,
"input_cache_read": 0.02,
"input_cache_write": 0.0,
"image": 0.0,
"video": 0.0
}
}
{
"detail": {
"error": {
"message": "Model 'does-not/exist' not found.",
"type": "model_not_found",
"code": null,
"param": null
}
}
}
Response fields
The response is one flat model object.| Field | Description |
|---|---|
id | Preferred public model id. |
name, description | Human-readable catalog metadata. |
hf_model_id | Upstream Hugging Face repo id, when the model is open-weight. |
task | chat, embed, or transcribe. |
context_length | Maximum context length, when defined. |
architecture | input_modalities, output_modalities, and a summary modality string. |
capabilities | Same shape as on List Models: max images/videos, accepted input types. |
aliases, methods, default_method | Accepted request ids, supported method values, and the method applied when method is omitted. methods is empty and default_method is "" for chat models. |
task_capabilities | What the model can do, such as chat, caption, detection, or markdown. |
supported_parameters | Names of the request parameters this model honours. Same list as on List Models, which gives the rule for unlisted parameters. |
pricing | USD per 1M units: prompt, completion, input_cache_read, and input_cache_write per 1M tokens, image per 1M image inputs, and video per 1M video inputs. See Pricing. |
GET /openai/models carries the same pricing object and supported_parameters list on every entry.Related
List Models
Full catalog in one call.
Pricing
How to read the
pricing object, and what each mode bills.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
Successful Response
Flat JSON response for GET /openai/models/{model_id}.
Every field it shares with GET /openai/models carries the same value.
Declared input capabilities exposed via GET /openai/models.
Describes how many images / videos a model accepts, whether it supports
text-only prompts, and whether it can constrain generation to a JSON
schema, so clients can validate a request before sending it. None
means unlimited (no cap on that input type).
Hide child attributes
Hide child attributes
Available options:
chat, embed, transcribe Available options:
ocr, markdown, layout, detection, caption, segmentation, pose, chat, transcription, embedding