For AI agents: markdown of this page — /docs-content-en/entities/crm-forms/get.md documentation index — /llms.txt
Get a form
GET /v1/crm-forms/:id
Bitrix24 method: crm.form.get (REST v3).
Scope: crm. READONLY keys are supported.
Behavior and parameters
Reads the form directly; an absent form returns 404. The selected blocks are appearance, crm, fields, responsible, agreements, submission, callback, payment, booking, presetFields and dependencies. Analytics, integrations and spam protection are excluded even if the upstream response contains them.
Legacy aliases remain: title/description/buttonCaption from appearance, result.successText/failureText from submission, responsible.userIds, fields and agreements. The raw agreement block is available as agreementsSettings. Agreement name is AGREEMENT_<id>; label is null. The separate consent API requires an additional scope and is not called. Person-name field type is now string; visible is true. Hidden-field equivalence is not established.
List/checkbox/radio fields receive items through one additional entity-field dictionary call; forms without such fields need one Bitrix24 call.
Examples
curl 'https://vibecode.bitrix24.com/v1/crm-forms/37' \
-H 'X-Api-Key: YOUR_API_KEY'
const response = await fetch('https://vibecode.bitrix24.com/v1/crm-forms/37', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await response.json()
For an OAuth application, use its key and add Authorization: Bearer USER_SESSION_TOKEN.
Response fields
| Field | Type | Description |
|---|---|---|
| Fieldsuccess | Typeboolean | Descriptiontrue |
| Fielddata | Typeobject | DescriptionResult |
| Fielddata.id | Typenumber | DescriptionID |
| Fielddata.name | Typestring | DescriptionName |
| Fielddata.fields | Typearray | Descriptionid, name, type, label, required, visible, multiple, placeholder, items, sort, valueType, value |
| Fielddata.result | Typeobject | DescriptionsuccessText, failureText |
| Fielddata.responsible | Typeobject | DescriptionuserIds, checkWorkTime |
| Fielddata.agreements | Typearray | Descriptionid, name, label, required, checked |
| Fielddata.agreementsSettings | Typeobject | null | Descriptionenabled, items |
Errors
| HTTP | Code | Meaning |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
MeaningMalformed query or id |
| HTTP400 | CodeUNKNOWN_FILTER_FIELD |
MeaningUnknown query parameter or filter |
| HTTP401 | CodeMISSING_API_KEY / TOKEN_MISSING |
MeaningMissing key or Bitrix24 credentials |
| HTTP403 | CodeSCOPE_DENIED |
MeaningThe key lacks crm |
| HTTP403 | CodeBITRIX_ACCESS_DENIED / CRM_FORM_* |
MeaningBitrix24 refused access |
| HTTP404 | CodeENTITY_NOT_FOUND |
MeaningBitrix24 did not find the record |
| HTTP409 | CodeCRM_FORM_* |
MeaningBitrix24 domain refusal; code and message preserved |
| HTTP422 | CodeBITRIX_ERROR |
MeaningOther Bitrix24 refusal; message and b24Code retained |
| HTTP429 | CodeRATE_LIMITED |
MeaningBitrix24 rate limit |
| HTTP502 | CodeBITRIX_UNAVAILABLE |
MeaningUnavailable or malformed Bitrix24 response |
| HTTP503 | CodeBITRIX_TIMEOUT |
MeaningBitrix24 timeout |