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
filter (query) object — Filter by the id and title fields from GET /v1/automated-solutions/fields.
Filtering syntax. Example: ?filter[id]=7
order (query) object id ascending Sort by the id and title fields: ?order[title]=asc. Short form: ?sort=title; descending: ?sort=-title
select (query) string — Field selection: ?select=id,title
limit (query) number 50 Number of records, up to 5000
offset (query) number 0 Skip 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

Terminal
curl -g "https://vibecode.bitrix24.com/v1/automated-solutions?limit=10&order[title]=asc" \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
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

javascript
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

javascript
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
success boolean Always true on success
data array Array of workspaces
data[].id number Workspace identifier
data[].title string Workspace name
data[].typeIds array IDs 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
meta.total number Total number of workspaces matching the filter
meta.hasMore boolean Whether more records exist beyond limit

Response example

JSON
{
  "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:

JSON
{
  "success": false,
  "error": {
    "code": "UNKNOWN_FILTER_FIELD",
    "message": "Unknown filter field 'typeIds' for entity 'automated-solutions'. Available: id, title"
  }
}

Errors

HTTP Code Description
400 UNKNOWN_FILTER_FIELD Filter by a field other than id and title, including typeIds. The request is rejected before reaching the portal
400 UNKNOWN_SORT_FIELD Sort 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
400 INVALID_FILTER The 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
401 MISSING_API_KEY The X-Api-Key header was not passed
401 TOKEN_MISSING The API key has no configured tokens
403 SCOPE_DENIED The API key does not have the crm 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

Full list of common API errors — 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.

See also