# Activate a form

`POST /v1/crm-forms/:id/activate`

Bitrix24 method: `crm.form.activate` (REST v3).

Scope: `crm`. Requires a READWRITE key.

## Behavior and parameters

Activates a form after Bitrix24 checks its configuration and the active-form limit. The limit is `limits.activeForms` in [builder configuration](/docs/entities/crm-forms/configuration). An optional `updatedTime` enables optimistic locking. The response contains the actual `active` and `updatedTime` values.

Bitrix24 does not perform writes on free or demo plans. Permissions, quota and business rules are checked by Bitrix24.

## Example

```bash
curl -X POST 'https://vibecode.bitrix24.com/v1/crm-forms/8/activate' \
  -H 'X-Api-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'
```

For an OAuth application, use its key and the `Authorization: Bearer USER_SESSION_TOKEN` header.

```json
{"success":true,"data":{"active":true,"updatedTime":"2026-10-22T12:00:00Z"}}
```

## Errors

| HTTP | Code | Reason |
|---|---|---|
| 400 | `INVALID_PARAMS` | Invalid id, body or query shape |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | READONLY key |
| 402 | `CRM_FORM_WRITE_RESTRICTED` | Bitrix24 plan does not allow writing CRM forms |
| 403 | `SCOPE_DENIED` | Missing crm scope |
| 403 | `BITRIX_ACCESS_DENIED` | Bitrix24 permission refusal |
| 403 | `CRM_FORM_SYSTEM_IMMUTABLE` | System form cannot be changed |
| 404 | `ENTITY_NOT_FOUND` | Form does not exist |
| 409 | `CRM_FORM_VERSION_MISMATCH` | Version is stale; error.currentUpdatedTime contains the current version |
| 402 | `CRM_FORM_ACTIVATION_LIMIT_REACHED` | Active-form limit reached |
| 422 | `BITRIX_ERROR` | Other Bitrix24 refusal, original message retained |
| 500 | `CRM_FORM_SIDE_EFFECT_FAILED` | Write already happened; read the form before retrying. On creation error.id identifies the saved form |
| 502 | `BITRIX_UNAVAILABLE` | Invalid or unavailable upstream response; re-read the form before retrying a write |

Bitrix24 codes, statuses and messages are retained. See [common limits](/docs/optimization) for shared 429, 502 and 503 responses.
