Для AI-агентов: markdown этой страницы — /docs-content/entities/bizproc-templates/search.md индекс документации — /llms.txt
Поиск шаблонов
POST /v1/bizproc-templates/search
Отбирает шаблоны бизнес-процессов по условиям и возвращает их списком. Отличие от списка шаблонов — условия отбора передаются в теле запроса, поэтому сложный фильтр не нужно укладывать в адресную строку.
Поля запроса (body)
| Поле | Тип | По умолч. | Описание |
|---|---|---|---|
filter |
object | — | Фильтрация по полям GET /v1/bizproc-templates/fields.Синтаксис фильтрации. Пример: { "entity": "CCrmDocumentLead" }.Значения moduleId и entity — первые два элемента documentType, они перечислены в Загрузить шаблон |
select |
string[] | — | Поля в ответе: id, moduleId, entity, documentType, autoExecute, name, description, modified, isModified, userId. Без select возвращается полный набор объявленных полей |
order |
object | — | Сортировка. Пример: { "id": "desc" } |
limit |
number | 50 |
Количество записей в ответе, до 5000. Ноль не означает «без ограничения» — он игнорируется, приходят 50 записей и предупреждение LIMIT_ZERO_IGNORED |
offset |
number | 0 |
Смещение выборки |
autoWindow |
boolean | true |
Разбивать выборку недельными окнами при фильтре по диапазону modified шире 14 дней. false отключает разбиение |
Примеры
Искать шаблоны можно только ключом авторизации — оба примера отправляют ключ авторизации и заголовок Authorization: Bearer. Токен сессии выдаёт OAuth-авторизация и живёт 24 часа без продления — Передача ключа.
curl — ключ авторизации
curl -X POST "https://vibecode.bitrix24.tech/v1/bizproc-templates/search" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filter": { "moduleId": "crm" },
"select": ["id", "name", "entity", "autoExecute"],
"order": { "id": "desc" },
"limit": 3
}'
JavaScript — ключ авторизации
const res = await fetch('https://vibecode.bitrix24.tech/v1/bizproc-templates/search', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
filter: { moduleId: 'crm' },
select: ['id', 'name', 'entity', 'autoExecute'],
order: { id: 'desc' },
limit: 3,
}),
})
const { success, data, meta } = await res.json()
console.log(`Найдено шаблонов: ${meta.total}`)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
array | Массив шаблонов. Состав полей элемента определяется параметром select, полная схема — Поля шаблона. Файл шаблона templateData в ответах не приходит |
meta.total |
number | Количество шаблонов, попавших под фильтр |
meta.hasMore |
boolean | Есть ли записи за пределами limit |
meta.durationMs |
number | Длительность запроса в миллисекундах |
meta.warnings |
array | Предупреждения о разборе запроса. Каждое — объект с полями code, field и message, например неизвестное имя поля в select с кодом UNKNOWN_SELECT_FIELD |
meta.autoWindowed |
boolean | true, если выборка была разбита по временным окнам |
meta.windowCount |
number | Число окон, на которые разбит диапазон дат. Приходит при autoWindowed равном true |
meta.batchWaves |
number | Число волн параллельных запросов при разбиении по окнам |
Пример ответа
{
"success": true,
"data": [
{
"id": 1237,
"name": "Согласование договора",
"entity": "CCrmDocumentDeal",
"autoExecute": 1
},
{
"id": 1153,
"name": "Заявка на закупку",
"entity": "CCrmDocumentDeal",
"autoExecute": 0
},
{
"id": 1143,
"name": "Обработка обращения",
"entity": "CCrmDocumentLead",
"autoExecute": 0
}
],
"meta": {
"total": 18,
"hasMore": true,
"durationMs": 113
}
}
Пример ответа при ошибке
403 — запрос отправлен API-ключом:
{
"success": false,
"error": {
"code": "OAUTH_REQUIRED",
"message": "bizproc-templates require an OAuth app key (vibe_app_*) with an Authorization: Bearer session — a personal vibe_api_* key lacks the per-user OAuth context Bitrix24 needs for these methods. Create an OAuth app (POST /v1/apps) and retry with its key. On this 403 switch keys — do NOT delete or recreate the app (that discards anything already registered under it, e.g. a bizproc robot you just registered)."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | INVALID_FILTER_OPERATOR |
Неизвестный оператор в фильтре. Сообщение перечисляет поддерживаемые операторы |
| 400 | INVALID_FILTER_OPERATOR |
Логический ключ $or или $and в фильтре. Условие ИЛИ задаётся оператором $in для одного поля или параллельными запросами через POST /v1/batch, условие И — соседними ключами одного фильтра |
| 400 | UNSTABLE_OFFSET_PAGINATION |
offset больше нуля вместе с фильтром по диапазону дат шире 14 дней. Два разных алгоритма выдачи дают несогласованные результаты, поэтому запрос отклоняется. Возьмите всё одним запросом с limit до 5000, либо передайте autoWindow: false с сортировкой по id, либо режьте диапазон дат на части сами |
| 403 | OAUTH_REQUIRED |
Запрос отправлен API-ключом. Искать шаблоны можно только ключом авторизации |
| 401 | TOKEN_MISSING |
Ключ авторизации без заголовка Authorization: Bearer |
| 401 | WRONG_AUTH_SCHEME |
Ключ авторизации отправлен в заголовке Authorization: Bearer. Сам ключ передаётся в X-Api-Key, а Authorization: Bearer несёт токен сессии |
| 401 | INVALID_SESSION |
Токен сессии истёк или недействителен — пройдите авторизацию заново |
| 403 | SCOPE_DENIED |
Ключу не хватает скоупа bizproc |
Полный список общих ошибок API — Ошибки.
Известные особенности
Идентификатор в select перечисляется явно. К выбранным полям id не добавляется — если он нужен для последующего обновления или удаления, включите его в select сами.
При разбиении по окнам meta.total считает только прочитанные окна. Фильтр по диапазону modified шире 14 дней читает выборку недельными окнами и останавливается, когда набрал limit записей: в meta.total тогда приходит количество из уже прочитанных окон, оно меньше полного. Точное количество даёт запрос с autoWindow: false либо чтение всей выборки одним запросом с limit до 5000.
Неизвестное имя поля не прерывает запрос. В filter выборка не сужается, в order порядок не меняется, в select поле отсутствует в записях, а в meta.warnings приходит предупреждение с кодом UNKNOWN_SELECT_FIELD. Имена полей сверяйте со схемой GET /v1/bizproc-templates/fields.