For AI agents: markdown of this page — /docs-content-en/ai/models/get.md documentation index — /llms.txt
Get model
The response comes in raw OpenAI format.
The
{success, data}envelope used across the other Vibecode endpoints —/v1/deals,/v1/tasksand others — is not present here.This is done for compatibility with the OpenAI SDK. If you have a single client with an
if (!response.success)check, add an exception for the AI Router.
GET /v1/models/:modelId
Returns the details of a single model by modelId. Used when you need to check a model's characteristics (context, price, capabilities) before a request to /v1/chat/completions. The response format is compatible with GET /v1/models/:id from the OpenAI API.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
modelId (path) |
string | yes | Model ID from GET /v1/models. May contain slashes: openai/gpt-4o, bitrix/bitrixgpt-5.5, bitrix/openai/gpt-oss-120b. The full path after /v1/models/ is treated as the modelId |
Examples
curl — personal key
curl https://vibecode.bitrix24.com/v1/models/bitrix/bitrixgpt-5.5 \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl https://vibecode.bitrix24.com/v1/models/bitrix/bitrixgpt-5.5 \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const modelId = 'bitrix/bitrixgpt-5.5'
const res = await fetch(`https://vibecode.bitrix24.com/v1/models/${modelId}`, {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const model = await res.json()
console.log(`${model.name}: context ${model.context_length}, price ${model.pricing.prompt}/${model.pricing.completion} Vibe credits per 1M tokens`)
JavaScript — OAuth application
const modelId = 'bitrix/bitrixgpt-5.5'
const res = await fetch(`https://vibecode.bitrix24.com/v1/models/${modelId}`, {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const model = await res.json()
console.log('Vision support:', model.capabilities.vision === true)
Response fields
| Field | Type | Description |
|---|---|---|
id |
string | Model ID |
object |
string | Always model |
created |
number | Unix timestamp of registration in the Vibecode catalog (0 for platform models) |
owned_by |
string | System name of the provider: bitrix, openai, anthropic, openrouter, google, etc. Platform models that we resell return vibecode. |
name |
string | Display name of the model |
context_length |
number | Maximum context size in tokens |
max_output_tokens |
number | Maximum tokens in the response |
pricing.prompt |
number | Cost of 1M input tokens |
pricing.completion |
number | Cost of 1M response tokens |
pricing.perCall |
number | Per-call fee in Vibe credits. Present only when greater than 0 |
pricing.perMinute |
number | Per audio-minute fee in Vibe credits. Present only when greater than 0 |
pricing.unit |
string | Pricing unit: vibes |
capabilities |
object | Model capabilities: streaming, vision, reasoning, audio, transcription, tools, structured_outputs, embeddings |
replaced_by |
string | Identifier of the successor model. Present only when the requested id has been retired and its calls are served by another model. In that case pricing shows the successor's price |
This is what the response looks like for a retired model:
"pricing": { "prompt": 68.4, "completion": 342, "unit": "vibes" },
"replaced_by": "bitrix/bitrixgpt-5.5-agent"
Response example
{
"id": "bitrix/bitrixgpt-5.5",
"object": "model",
"created": 0,
"owned_by": "bitrix",
"name": "BitrixGPT 5.5 (free)",
"context_length": 262144,
"max_output_tokens": 65536,
"pricing": {
"prompt": 0,
"completion": 0,
"unit": "vibes"
},
"capabilities": {
"streaming": true,
"vision": true,
"structured_outputs": true
}
}
Error response example
404 ai_model_not_found — model not found or the key has no access to it:
{
"error": {
"message": "Model \"openai/gpt-4o\" not found or disabled.",
"type": "invalid_request_error",
"code": "ai_model_not_found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 404 | ai_model_not_found |
A model with this modelId does not exist, is disabled, or the key has no access |
| 403 | scope_missing |
The API key is missing the vibe:ai scope |
| 401 | MISSING_API_KEY |
The X-Api-Key header was not provided |
| 401 | INVALID_API_KEY |
The key was not found or has been revoked |
| 429 | rate_limit_exceeded |
The request limit for AI endpoints has been exceeded. Time until reset is in the Retry-After header |
The full list of common API errors — Errors.
Known specifics
modelId with slashes. The endpoint accepts any number of segments after /v1/models/. For example, GET /v1/models/bitrix/openai/gpt-oss-120b is read as modelId = "bitrix/openai/gpt-oss-120b". There is no need to URL-encode the slashes.
Visibility matches the list. If a model is not shown in GET /v1/models — a request to GET /v1/models/:modelId returns 404, even if the model formally exists in the platform catalog. This means your key has no access to it. Connect credentials via BYOK.