
## Workspace fields

`GET /v1/automated-solutions/fields`

Returns the description 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

```bash
curl "https://vibecode.bitrix24.com/v1/automated-solutions/fields" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth application

```bash
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

```javascript
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

```javascript
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

The `data` object contains a `fields` map with three entries and a `batch` list — the operations available for this entity in a batch call: `create`, `update`, `delete`. Each field in the map is described by its `type`, the read-only flag `readonly`, a `label` and a `description`. A field required on creation carries `required: true`; an array field carries its item schema in `itemSchema`.

| Field | Type | RO | Description |
|------|-----|:--:|---------|
| `id` | number | yes | Workspace identifier. Assigned on create |
| `title` | string | | Workspace name. Required on create |
| `typeIds` | array | | IDs of the bound smart process types — the type `id` field from [`GET /v1/smart-processes`](/docs/entities/smart-processes/list), not its `entityTypeId`. The items are numbers. Not accepted in the list filter or sort |

## Response example

```json
{
  "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 unknown value (an entityTypeId included) is dropped without an error, and since the set is overwritten in full this can detach every type — check 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:

```json
{
  "success": false,
  "error": {
    "code": "MISSING_API_KEY",
    "message": "API key required. Pass via X-Api-Key header."
  }
}
```

## Errors

| HTTP | Code | Description |
|------|-----|---------|
| 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](/docs/errors).

## See also

- [Create a workspace](/docs/entities/automated-solutions/create)
- [Update a workspace](/docs/entities/automated-solutions/update)
- [Digital workspaces](/docs/entities/automated-solutions)
- [Smart process type fields](/docs/entities/smart-processes/fields)
- [Entity API](/docs/entity-api)
