Для AI-агентов: markdown этой страницы — /docs-content/onec/tools.md индекс документации — /llms.txt
Каталог инструментов 1С
GET /v1/onec/tools
Возвращает инструменты, которые опубликовал модуль Вайбкод в 1С, и состояние их версии. Каждый инструмент несёт свой метод, название, описание и схему параметров, с которой его можно запросить.
Каталог относится к порталу, а не к пользователю, поэтому сопоставление вызывающего с учётной записью 1С здесь не требуется. Ключ в режиме «только чтение» обслуживается.
Примеры
curl — личный ключ
curl https://vibecode.bitrix24.tech/v1/onec/tools \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl https://vibecode.bitrix24.tech/v1/onec/tools \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/onec/tools', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
for (const tool of data.tools) {
console.log(tool.method, tool.title)
}
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/onec/tools', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.loaded |
boolean | Каталог загружен и применён. false — модуль ещё не присылал свой список инструментов |
data.revision |
string | null | Версия содержимого каталога: значение, объявленное модулем, либо отпечаток sha256:…, если модуль его не объявил |
data.updatedAt |
string | null | Когда применён текущий каталог, ISO 8601. null при loaded: false |
data.stale |
boolean | Модуль объявил версию, отличную от применённой — каталог обновляется |
data.advertisedVersion |
string | null | Последняя версия, объявленная модулем |
data.appliedVersion |
string | null | Версия, зафиксированная применённым каталогом |
data.tools |
array | Инструменты каталога. Пустой массив при loaded: false |
data.tools[].method |
string | Идентификатор инструмента для POST /v1/onec/tools/{method}/call |
data.tools[].title |
string | Название инструмента для отображения |
data.tools[].description |
string | Описание инструмента. Пустая строка, когда модуль описания не дал |
data.tools[].inputSchema |
object | Схема JSON для полей запроса вызова: columns, filters, limit, offset |
Пример ответа
Каталог загружен, модуль объявил новую версию — она применяется:
{
"success": true,
"data": {
"loaded": true,
"revision": "18",
"updatedAt": "2026-09-08T12:00:00.000Z",
"stale": true,
"advertisedVersion": "19",
"appliedVersion": "18",
"tools": [
{
"method": "bank.list",
"title": "Банки",
"description": "Список банков",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"columns": {
"type": "array",
"items": { "type": "string", "enum": ["Код"], "oneOf": [{ "const": "Код", "description": "Код" }] },
"maxItems": 200,
"uniqueItems": true
},
"filters": {
"type": "object",
"additionalProperties": false,
"maxProperties": 50,
"properties": {
"Контекст": {
"type": "object",
"additionalProperties": false,
"maxProperties": 50,
"properties": { "Код": { "type": "string", "maxLength": 1024 } }
}
}
},
"limit": { "type": "integer", "minimum": 1, "maximum": 10000, "default": 1000 },
"offset": { "type": "integer", "minimum": 0, "default": 0 }
}
}
}
]
}
}
1С ещё не присылала свой список инструментов:
{
"success": true,
"data": {
"loaded": false,
"revision": null,
"updatedAt": null,
"stale": false,
"advertisedVersion": null,
"appliedVersion": null,
"tools": []
}
}
Пример ответа при ошибке
404 — на портале нет активного подключения 1С:
{
"success": false,
"error": {
"code": "ONEC_NOT_CONNECTED",
"message": "There is no 1C connection."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | ONEC_NOT_CONNECTED |
На портале нет активного подключения 1С либо оно отключено |
| 404 | ROUTE_NOT_FOUND |
Интеграция 1С на портале недоступна — ответ совпадает с ответом на неизвестный путь |
| 403 | SCOPE_DENIED |
Ключу не хватает скоупа vibe:onec |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 429 | RATE_LIMITED |
Превышен лимит запросов — повторите после времени из заголовка Retry-After |
| 503 | user_self_deletion_pending |
Владелец ключа удаляет свою учётную запись на портале. Заголовок Retry-After равен 604800 — столько длится отсрочка удаления |
Полный список общих ошибок API — Ошибки.
Известные особенности
Пустой каталог — это ответ, а не отказ. Инструменты в такой ответ не домысливаются, поэтому вызывать по угаданному методу нечего — дождитесь непустого каталога.
stale: true не мешает работать. Пока обновление не завершилось, каталог отдаёт последний применённый список, и вызовы по его методам принимаются.
Схема inputSchema — источник допустимых columns и filters. Список колонок лежит в properties.columns.items.enum, состав фильтров — в properties.filters.properties. Инструмент может не иметь ни выбираемых колонок, ни фильтров: тогда columns приходит с maxItems: 0, а filters.properties пустой.
Имя метода приходит как его объявила 1С — включая кириллицу и регистр. Как кодировать его в URL, описано на странице запроса данных.
Каталог не заказывается запросом. Этот вызов читает уже применённый список, а его обновлением управляет 1С.