For AI agents: markdown of this page — /docs-content-en/entities/automated-solutions/list.md documentation index — /llms.txt
List workspaces
GET /v1/automated-solutions
Returns the digital workspaces of the Bitrix24 account together with the smart process types bound to each workspace.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
Parameterfilter (query) |
Typeobject | Default— | DescriptionFilter by the id and title fields from GET /v1/automated-solutions/fields.Filtering syntax. Example: ?filter[id]=7 |
Parameterorder (query) |
Typeobject | Defaultid ascending |
DescriptionSort by the id and title fields: ?order[title]=asc. Short form: ?sort=title; descending: ?sort=-title |
Parameterselect (query) |
Typestring | Default— | DescriptionField selection: ?select=id,title |
Parameterlimit (query) |
Typenumber | Default50 |
DescriptionNumber of records, up to 5000 |
Parameteroffset (query) |
Typenumber | Default0 |
DescriptionSkip N records |
Pagination: when limit is greater than 50, Vibecode assembles the response from several pages on its own. The maximum is 5000 records per call.
Examples
curl — personal key
curl -g "https://vibecode.bitrix24.com/v1/automated-solutions?limit=10&order[title]=asc" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -g "https://vibecode.bitrix24.com/v1/automated-solutions?limit=10&order[title]=asc" \
-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?limit=10&order[title]=asc', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
for (const place of data) {
console.log(place.id, place.title, 'types:', place.typeIds.length)
}
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/automated-solutions?limit=10&order[title]=asc', {
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 |
Typearray | DescriptionArray of workspaces |
Fielddata[].id |
Typenumber | DescriptionWorkspace identifier |
Fielddata[].title |
Typestring | DescriptionWorkspace name |
Fielddata[].typeIds |
Typearray | DescriptionIDs of the bound smart process types — the type id field from GET /v1/smart-processes, not its entityTypeId. An empty array if no types are bound |
Fieldmeta.total |
Typenumber | DescriptionTotal number of workspaces matching the filter |
Fieldmeta.hasMore |
Typeboolean | DescriptionWhether more records exist beyond limit |
Response example
{
"success": true,
"data": [
{ "id": 9, "title": "HR processes", "typeIds": [63] },
{ "id": 11, "title": "Procurement", "typeIds": [] },
{ "id": 1, "title": "yay", "typeIds": [3, 13, 15] }
],
"meta": {
"total": 3,
"hasMore": false
}
}
Error response example
400 — filter by the typeIds field:
{
"success": false,
"error": {
"code": "UNKNOWN_FILTER_FIELD",
"message": "Unknown filter field 'typeIds' for entity 'automated-solutions'. Available: id, title"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeUNKNOWN_FILTER_FIELD |
DescriptionFilter by a field other than id and title, including typeIds. The request is rejected before reaching the portal |
| HTTP400 | CodeUNKNOWN_SORT_FIELD |
DescriptionSort by a field other than id and title, in either of the two forms — order[typeIds]=asc or sort=typeIds. The request is rejected before reaching the portal |
| HTTP400 | CodeINVALID_FILTER |
DescriptionThe filter value could not be parsed: one request mixes the JSON form filter={...} and the square-bracket form filter[...], or the string is not a JSON object |
| 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.
Known specifics
Workspaces with the same name. When sorting by title, Vibecode adds id ascending as the second key. Workspaces with the same name come in the same order on every page, so paging through with offset neither loses nor repeats records.