For AI agents: markdown of this page — /docs-content-en/entities/bizproc-robots/fields.md documentation index — /llms.txt
Automation rule fields
GET /v1/bizproc-robots/fields
Returns the field schema of an automation rule: the type of each field, whether it is writable, whether it is required for registration, its label and its description. The response describes the schema and does not query the automation rules registered in your Bitrix24 account.
Examples
The schema can be read only with an authorization key — both examples send an authorization key and the Authorization: Bearer header. The session token is issued by OAuth authorization, is valid for 24 hours, and cannot be renewed — Passing the key.
curl — authorization key
curl -X GET "https://vibecode.bitrix24.com/v1/bizproc-robots/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — authorization key
const res = await fetch('https://vibecode.bitrix24.com/v1/bizproc-robots/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
console.log(Object.keys(data.fields))
Response fields
The label and description field captions are returned in English. Request headers do not switch the language.
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data.fields |
object | Field schema: the key is the field name, the value is its description |
data.fields.<name>.type |
string | Value type: string, number, object, array |
data.fields.<name>.readonly |
boolean | true — the field is filled in by the system and is not passed in write requests |
data.fields.<name>.required |
boolean | Present only on fields that are required for registration |
data.fields.<name>.label |
string | Short field label |
data.fields.<name>.description |
string | Extended field description |
data.batch |
array | Entity operations available in POST /v1/batch |
Schema composition:
| Field | Type | RO | Required | Description |
|---|---|---|---|---|
code |
string | yes | Unique automation rule code. Serves as the identifier in update and delete paths | |
handler |
string | yes | Automation rule handler URL | |
name |
string | yes | Automation rule name | |
description |
string | no | Automation rule description | |
authUserId |
number | no | The user whose token is passed to the app when the automation rule is called. List: GET /v1/users |
|
useSubscription |
string | no | Whether to wait for the app's response before the process continues: Y or N |
|
properties |
object | no | Automation rule input parameters | |
returnProperties |
object | no | Automation rule output parameters | |
documentType |
array | no | The document type the automation rule applies to — an array of three elements: module, object, type. Valid combinations: Register an automation rule | |
filter |
object | no | INCLUDE and EXCLUDE rules by document type |
|
usePlacement |
string | no | Whether to open the automation rule settings in a slider panel: Y or N |
|
placementHandler |
string | no | URL of the settings slider panel |
Response example
{
"success": true,
"data": {
"fields": {
"code": {
"type": "string",
"readonly": false,
"required": true,
"label": "Code",
"description": "Unique robot code. Used as the identifier in update and delete paths."
},
"handler": {
"type": "string",
"readonly": false,
"required": true,
"label": "Handler URL",
"description": "URL of the robot handler."
},
"name": {
"type": "string",
"readonly": false,
"required": true,
"label": "Name",
"description": "Robot name."
},
"description": {
"type": "string",
"readonly": false,
"label": "Description",
"description": "Robot description."
},
"authUserId": {
"type": "number",
"readonly": false,
"label": "Auth user ID",
"description": "User whose token is passed to the app on invocation. List via GET /v1/users."
},
"useSubscription": {
"type": "string",
"readonly": false,
"label": "Use subscription",
"description": "Whether to wait for the app's response before continuing the process: Y or N."
},
"properties": {
"type": "object",
"readonly": false,
"label": "Properties",
"description": "Robot input parameters."
},
"returnProperties": {
"type": "object",
"readonly": false,
"label": "Return properties",
"description": "Robot output parameters."
},
"documentType": {
"type": "array",
"readonly": false,
"label": "Document type",
"description": "Document type the robot applies to."
},
"filter": {
"type": "object",
"readonly": false,
"label": "Filter",
"description": "INCLUDE and EXCLUDE rules by document type."
},
"usePlacement": {
"type": "string",
"readonly": false,
"label": "Use placement",
"description": "Open robot settings in a slide-out panel: Y or N."
},
"placementHandler": {
"type": "string",
"readonly": false,
"label": "Placement handler",
"description": "URL of the settings slide-out panel."
}
},
"batch": ["create", "update", "delete"]
}
}
Error response example
403 — the request was sent with an API key:
{
"success": false,
"error": {
"code": "OAUTH_REQUIRED",
"message": "bizproc-robots 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)."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 403 | OAUTH_REQUIRED |
The request was sent with an API key. The schema is available only to an authorization key |
| 401 | TOKEN_MISSING |
Authorization key without the Authorization: Bearer header |
| 401 | WRONG_AUTH_SCHEME |
The authorization key was sent in the Authorization: Bearer header. The key goes in X-Api-Key, while Authorization: Bearer carries the session token |
| 401 | INVALID_SESSION |
The session token has expired or is invalid — authorize again |
| 403 | SCOPE_DENIED |
The key lacks the bizproc scope |
| 429 | RATE_LIMITED |
Rate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header |
The full list of common API errors — Errors.
Known specifics
The schema is the same for automation rules and activities. Both entities are described by the same set of twelve fields — the meaning differs, not the composition.