For AI agents: markdown of this page — /docs-content-en/ai/models/list.md documentation index — /llms.txt
List models
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
Returns the catalog of AI models available to the current API key. The response format is fully compatible with GET /v1/models from the OpenAI API. Free Bitrix24 models are visible to everyone. Third-party provider models are visible only to keys that have access to the provider credentials.
Parameters
No request parameters.
Examples
curl — personal key
curl https://vibecode.bitrix24.com/v1/models \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl https://vibecode.bitrix24.com/v1/models \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/models', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
data.forEach((m) => {
console.log(`${m.id} — ${m.name}, context ${m.context_length}, price ${m.pricing.prompt}/${m.pricing.completion} Vibe credits per 1M tokens`)
})
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/models', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
console.log('Models available:', data.length)
Response fields
| Field | Type | Description |
|---|---|---|
object |
string | Always list |
data |
array | Array of models |
data[].id |
string | Model ID — use it in the model of a request to /v1/chat/completions |
data[].object |
string | Always model |
data[].created |
number | Unix timestamp of the model's registration in the Vibecode catalog (0 for platform models) |
data[].owned_by |
string | System name of the provider: bitrix, openai, anthropic, openrouter, google, etc. Platform models that we resell return vibecode. |
data[].name |
string | Display name of the model |
data[].context_length |
number | Maximum context size in tokens (input + output combined) |
data[].max_output_tokens |
number | Maximum tokens in the response |
data[].pricing.prompt |
number | Cost of 1M input tokens |
data[].pricing.completion |
number | Cost of 1M response tokens |
data[].pricing.perCall |
number | Per-call fee in Vibe credits. Present only when greater than 0 |
data[].pricing.perMinute |
number | Per audio-minute fee in Vibe credits. Present only when greater than 0 |
data[].pricing.unit |
string | Pricing unit: vibes — the platform's internal currency |
data[].capabilities |
object | Model capabilities: streaming, vision, reasoning, audio, transcription, tools, structured_outputs, embeddings |
Response example
{
"object": "list",
"data": [
{
"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}
},
{
"id": "bitrix/bitrixgpt-5.5-thinking",
"object": "model",
"created": 0,
"owned_by": "bitrix",
"name": "BitrixGPT 5.5 Thinking (free)",
"context_length": 262144,
"max_output_tokens": 65536,
"pricing": {"prompt": 0, "completion": 0, "unit": "vibes"},
"capabilities": {"streaming": true, "vision": true, "reasoning": true, "structured_outputs": true}
},
{
"id": "bitrix/bitrixgpt-5.5-agent",
"object": "model",
"created": 0,
"owned_by": "bitrix",
"name": "BitrixGPT 5.5 Agent",
"context_length": 262144,
"max_output_tokens": 65535,
"pricing": {"prompt": 68.4, "completion": 342, "unit": "vibes"},
"capabilities": {"streaming": true}
}
]
}
Error response example
403 scope_missing — the API key has no vibe:ai scope:
{
"error": {
"message": "API key does not have the vibe:ai scope required for AI endpoints. Add vibe:ai scope to your API key in portal settings.",
"type": "invalid_request_error",
"code": "scope_missing"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 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
Visibility depends on the configured credentials. The catalog shows only the models for which the current API key has access to provider credentials — shared across the whole platform, shared within the Bitrix24 account, or your personal BYOK. Bitrix24 models (bitrix/*) are available to everyone without connecting BYOK. If the model you need is not in the list — connect your own key.
Models in DEPRECATED status remain in the list. They are marked as deprecated, but requests to them still work — the Deprecation and Sunset headers will be returned. Models in DISABLED status are hidden from the list, but when explicitly specified in model they are transparently redirected to the successor model.
Prices are in Vibe credits per one million tokens. The pricing.unit: "vibes" field explicitly marks the currency so that an external client can programmatically check the unit of measure. Vibe credits are the platform's internal currency; the balance is topped up in your account.
Not all models are billed by tokens. For a speech-recognition model, prompt and completion are 0, and billing is driven by the perMinute field per audio minute and perCall per call. Zero prompt and completion on their own do not mean the call is free — check all four pricing fields.