#Search smart process types
POST /v1/smart-processes/search
Search smart process types with filters via POST. Convenient when you need to pass several filter conditions without cluttering the query string.
#Request fields (body)
| Parameter | Type | Default | Description |
|---|---|---|---|
filter |
object | {} |
Filtering by any type fields (title, entityTypeId, isStagesEnabled, isClientEnabled, isAutomationEnabled, etc.). Filtering syntax |
limit |
number | 50 |
Number of records in the response |
Full list of fields you can filter by: Type fields.
#Examples
#curl — personal key
curl -X POST "https://vibecode.bitrix24.tech/v1/smart-processes/search" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": { "isClientEnabled": true, "isStagesEnabled": true },
"limit": 10
}'
#curl — OAuth application
curl -X POST "https://vibecode.bitrix24.tech/v1/smart-processes/search" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filter": { "isClientEnabled": true, "isStagesEnabled": true },
"limit": 10
}'
#JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.tech/v1/smart-processes/search', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
filter: { isClientEnabled: true, isStagesEnabled: true },
limit: 10,
}),
})
const { success, data } = await res.json()
#JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.tech/v1/smart-processes/search', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
filter: { isClientEnabled: true, isStagesEnabled: true },
limit: 10,
}),
})
const { success, data } = await res.json()
#Response fields
| Field | Type | Description |
|---|---|---|
data |
array | Array of types matching the filter. The fields of each type — see Type fields |
The list of items of any type from the data array opens in Bitrix24 by entityTypeId:
https://<portal>.bitrix24.ru/crm/type/<entityTypeId>/list/category/0/
0 — the main pipeline. <portal> — the portal domain. Access is restricted by the employee's permissions in Bitrix24.
#Response example
{
"success": true,
"data": [
{
"id": 3,
"entityTypeId": 174,
"title": "Contracts",
"isStagesEnabled": true,
"isClientEnabled": true,
"isCategoriesEnabled": true,
"isLinkWithProductsEnabled": true
}
]
}
7 fields are shown. The full response contains all type fields.
#Error response example
403 — no scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'crm' scope"
}
}
#Errors
| HTTP | Code | Description |
|---|---|---|
| 401 | MISSING_API_KEY |
The X-Api-Key header was not passed |
| 401 | INVALID_API_KEY |
The key was not found or was revoked |
| 403 | SCOPE_DENIED |
The API key does not have the crm scope |
| 401 | TOKEN_MISSING |
The API key has no configured tokens |
| 422 | BITRIX_ERROR |
An error from Bitrix24. The specific reason is in the message field |
Full list of general API errors — Errors.
#Known specifics
Pass boolean filters as true/false, not as "Y"/"N" — VibeCode converts them for Bitrix24 itself.
When to use search instead of list: when you need several filter conditions at once — the request body is more readable than a long query string. For simply getting all types, GET /v1/smart-processes is enough.
#See also
- List types — a GET request without filters
- Type fields — full list of fields for filtering
- Get type — a single type by
entityTypeId - Smart process items — CRUD over items
- Filtering syntax
- Limits and optimization — rate limits