Для AI-агентов: markdown этой страницы — /docs-content/onec/tools.md индекс документации — /llms.txt

Каталог инструментов 1С

GET /v1/onec/tools

Возвращает инструменты, которые опубликовал модуль Вайбкод в 1С, и состояние их версии. Каждый инструмент несёт свой метод, название, описание и схему параметров, с которой его можно запросить.

Каталог относится к порталу, а не к пользователю, поэтому сопоставление вызывающего с учётной записью 1С здесь не требуется. Ключ в режиме «только чтение» обслуживается.

Примеры

curl — личный ключ

Terminal
curl https://vibecode.bitrix24.tech/v1/onec/tools \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth-приложение

Terminal
curl https://vibecode.bitrix24.tech/v1/onec/tools \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — личный ключ

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-приложение

javascript
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

Пример ответа

Каталог загружен, модуль объявил новую версию — она применяется:

JSON
{
  "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С ещё не присылала свой список инструментов:

JSON
{
  "success": true,
  "data": {
    "loaded": false,
    "revision": null,
    "updatedAt": null,
    "stale": false,
    "advertisedVersion": null,
    "appliedVersion": null,
    "tools": []
  }
}

Пример ответа при ошибке

404 — на портале нет активного подключения 1С:

JSON
{
  "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С.

Смотрите также