For AI agents: markdown of this page — /docs-content-en/entities/automated-solutions/fields.md documentation index — /llms.txt
Workspace fields
GET /v1/automated-solutions/fields
Returns descriptions of all digital workspace fields, with their type and read-only flag. Fields without this flag are writable on create and update.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/automated-solutions/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/automated-solutions/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/automated-solutions/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Fields:', Object.keys(data.fields).length)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/automated-solutions/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.fields |
Typeobject | DescriptionMap of workspace fields: the key is the field name, the value describes the field. The fields are listed in the table below |
Fielddata.fields.<field>.type |
Typestring | DescriptionValue type: number, string or array |
Fielddata.fields.<field>.readonly |
Typeboolean | Descriptiontrue — the field is read-only and is not sent on create or update |
Fielddata.fields.<field>.required |
Typeboolean | DescriptionPresent and set to true on the field required on create: title |
Fielddata.fields.<field>.label |
Typestring | DescriptionField label |
Fielddata.fields.<field>.description |
Typestring | DescriptionField description |
Fielddata.fields.typeIds.itemSchema.type |
Typestring | DescriptionItem type of the typeIds array: number |
Fielddata.batch |
Typearray | DescriptionOperations available for a workspace in batch calls: create, update, delete |
Workspace fields in the data.fields map:
| Field | Type | RO | Description |
|---|---|---|---|
Fieldid |
Typenumber | ROyes | DescriptionWorkspace identifier. Assigned on create |
Fieldtitle |
Typestring | RO | DescriptionWorkspace name. Required on create |
FieldtypeIds |
Typearray | RO | DescriptionIDs of the bound smart process types — the type id field from GET /v1/smart-processes, not its entityTypeId. The items are numbers. A value that matches no type of the portal is rejected with 400 UNKNOWN_TYPE_ID when the portal's type list is available; if it is unavailable or incomplete, the write proceeds unchecked. Not accepted in the list filter or sort |
Response example
{
"success": true,
"data": {
"fields": {
"id": {
"type": "number",
"readonly": true,
"label": "Workspace ID",
"description": "Identifier of the digital workspace. Assigned by Bitrix24 on creation."
},
"title": {
"type": "string",
"readonly": false,
"required": true,
"label": "Title",
"description": "Name of the digital workspace. The link to the workspace section on the portal is derived from this title, so renaming the workspace also changes its link."
},
"typeIds": {
"type": "array",
"readonly": false,
"label": "Linked smart process types",
"description": "IDs of the smart process types attached to this workspace — the type `id` from GET /v1/smart-processes, NOT its entityTypeId. This is the write path for attaching a smart process to a digital workspace; a type belongs to one workspace at a time, so attaching it here detaches it from its previous workspace. On PATCH the set is overwritten in full: send the complete list, or omit the key to leave the current set untouched; an empty list detaches every type. A value that names no type of this portal — an entityTypeId included — is refused with 400 UNKNOWN_TYPE_ID before the portal call, because Bitrix24 would otherwise drop it in silence and, the set being replaced in full, detach every type the request does not repeat. The check relies on the portal's type list: if that list is unavailable or incomplete, the write proceeds unchecked — compare typeIds in the response. Not accepted in filter or sort — crm.automatedsolution.list filters and orders by id and title only.",
"itemSchema": {
"type": "number"
}
}
},
"batch": ["create", "update", "delete"]
}
}
Error response example
401 — the API key is missing:
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key required. Pass via X-Api-Key header."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was not passed |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the crm scope |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header |
For the full list of common API errors, see Errors.