For AI agents: markdown of this page — /docs-content-en/entities/statuses/fields.md documentation index — /llms.txt
Dictionary fields
GET /v1/statuses/fields
Returns a description of all entity fields with their types and attributes.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/statuses/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/statuses/fields" \
-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/statuses/fields', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { success, data } = await res.json()
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/statuses/fields', {
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.fields |
Typeobject | DescriptionMap of record fields. The key is the field name in camelCase, as in API responses, and the value is its description |
Fielddata.fields.<field>.type |
Typestring | DescriptionValue type: number, string, boolean, object |
Fielddata.fields.<field>.readonly |
Typeboolean | DescriptionRead-only field |
Fielddata.fields.<field>.label |
Typestring | DescriptionField label |
Fielddata.fields.<field>.description |
Typestring | DescriptionField description |
Fielddata.batch |
Typestring[] | DescriptionWrite operations available to the dictionary in the batch call POST /v1/statuses/batch: create, update, delete — see Batch calls |
The label and description values are returned in English. Request headers do not switch the language.
Dictionary record fields described by data.fields:
| Field | Type | RO | Description |
|---|---|---|---|
Fieldid |
Typenumber | ROyes | DescriptionRecord ID |
FieldentityId |
Typestring | RO | DescriptionDictionary type (DEAL_STAGE, SOURCE, etc.). Set only when creating a record. PATCH does not change it |
FieldstatusId |
Typestring | RO | DescriptionSymbolic code of the value. Set only when creating a record. PATCH does not change it |
Fieldname |
Typestring | RO | DescriptionName |
FieldnameInit |
Typestring/null | RO | DescriptionOriginal name |
Fielddescription |
Typestring/null | RO | DescriptionRecord description. Not returned on every Bitrix24 account. Where it is missing, the field arrives as null |
Fieldsort |
Typenumber | RO | DescriptionSort order |
Fieldcolor |
Typestring/null | RO | DescriptionColor in HEX with a leading # |
Fieldsemantics |
Typestring/null | RO | DescriptionSemantics: S — success, F — failure. null — an in-progress stage or a dictionary without semantics. Set only when creating a record. PATCH does not change it |
Fieldsystem |
Typeboolean | ROyes | DescriptionSystem value that cannot be changed or deleted |
FieldcategoryId |
Typenumber/null | RO | DescriptionPipeline ID. Populated for dictionaries of the form DEAL_STAGE_N, otherwise 0 or null. Determined by the dictionary in entityId, PATCH does not change it |
Fieldextra |
Typeobject | ROyes | DescriptionAdditional data for dictionaries with stages — STATUS, DEAL_STAGE, DEAL_STAGE_N, QUOTE_STATUS. Contains the nested keys SEMANTICS and COLOR. Other dictionaries do not have this field |
Response example
{
"success": true,
"data": {
"fields": {
"id": { "type": "number", "readonly": true, "label": "ID", "description": "Unique numeric identifier of the reference-book entry." },
"entityId": { "type": "string", "readonly": false, "label": "Reference type", "description": "Reference-book type this entry belongs to (e.g. DEAL_STAGE, SOURCE, STATUS)." },
"statusId": { "type": "string", "readonly": false, "label": "Status code", "description": "Symbolic code of the value within its reference book." },
"name": { "type": "string", "readonly": false, "label": "Name", "description": "Display name of the entry." },
"nameInit": { "type": "string", "readonly": false, "label": "Initial name", "description": "Original name assigned when the entry was created." },
"description": { "type": "string", "readonly": false, "label": "Description", "description": "Text description of the entry. The field is not available on every Bitrix24 account." },
"sort": { "type": "number", "readonly": false, "label": "Sort", "description": "Sort order within the reference book." },
"color": { "type": "string", "readonly": false, "label": "Color", "description": "HEX color of the value." },
"semantics": { "type": "string", "readonly": false, "label": "Semantics", "description": "Stage semantics: S — success, F — failure, null — in progress or no semantics." },
"system": { "type": "boolean", "readonly": true, "label": "System", "description": "System value that cannot be changed or deleted." },
"categoryId": { "type": "number", "readonly": false, "label": "Pipeline ID", "description": "Pipeline ID for entityId values of the DEAL_STAGE_N form." },
"extra": { "type": "object", "readonly": true, "label": "Extra data", "description": "Additional data of stage directories — an object with the nested keys SEMANTICS (stage semantics) and COLOR (stage colour). Filled by Bitrix24, read-only." }
},
"batch": ["create", "update", "delete"]
}
}
Error response example
403 — missing scope:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'crm' scope"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP403 | CodeSCOPE_DENIED |
DescriptionAPI key does not have the crm scope |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| 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 errors, see Errors.
Known specifics
The SEMANTICS key inside extra is more detailed than the semantics field. The field distinguishes three states, while the nested key distinguishes four. The mapping below holds for a stage whose sort places it within its own group:
extra.SEMANTICS |
semantics |
Stage state |
|---|---|---|
extra.SEMANTICSprocess |
semanticsnull |
Stage stateIntermediate stage |
extra.SEMANTICSsuccess |
semanticsS |
Stage stateSuccessful completion |
extra.SEMANTICSfailure |
semanticsF |
Stage stateFailure |
extra.SEMANTICSapology |
semanticsF |
Stage stateAnother final failure stage |
The failure and apology stages are indistinguishable in the semantics field — both arrive as F. If your scenario needs to tell them apart, read extra.SEMANTICS.
extra.SEMANTICS follows sort, while semantics does not. The nested key is computed from the stage position relative to the success stage: a stage with semantics: "F" placed before the success stage by sort returns extra.SEMANTICS: "process", while the semantics field stays F. So changing sort does not change the stage group. To replace a stage with one from another group, see Update dictionary record.