[{"data":1,"prerenderedAt":7},["ShallowReactive",2],{"docs-entities\u002Fstatuses\u002Fentity-types":3,"docs-tabs-entities\u002Fstatuses\u002Fentity-types":6},{"content":4,"lastmod":5},"## Status dictionary types\n\n`GET \u002Fv1\u002Fstatuses\u002Fentity-types`\n\nReturns every CRM dictionary in the Bitrix24 account: lead, deal, quote and smart process stages, sources, contact and company types. Pass a dictionary's `id` as `entityId` when requesting that dictionary's records.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fstatuses\u002Fentity-types\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth application\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fstatuses\u002Fentity-types\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — personal key\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fstatuses\u002Fentity-types', {\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\nconst { success, data } = await res.json()\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fstatuses\u002Fentity-types', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\nconst { success, data } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|---------|\n| `success` | boolean | Always `true` on success |\n| `data` | array | Array of dictionaries. There is no pagination; the whole array is returned |\n| `data[].id` | string | Dictionary identifier, for example `STATUS`, `SOURCE`, `DEAL_STAGE`, `DEAL_STAGE_3`, `DYNAMIC_174_STAGE_3`. Pass it as `entityId` in [`GET \u002Fv1\u002Fstatuses?filter[entityId]=\u003Cid>`](\u002Fdocs\u002Fentities\u002Fstatuses\u002Flist) |\n| `data[].name` | string | Dictionary name |\n| `data[].entityTypeId` | number | CRM object type the stage dictionary belongs to: `1` — lead, `2` — deal, `7` — quote, `31` — invoice; for smart processes, their `entityTypeId`. Type list: [`GET \u002Fv1\u002Fsmart-processes`](\u002Fdocs\u002Fentities\u002Fsmart-processes\u002Flist) |\n| `data[].parentId` | string | Identifier of the general dictionary the pipeline dictionary derives from. Returned for the stages of additional deal pipelines, for example `DEAL_STAGE` for `DEAL_STAGE_1` |\n| `data[].categoryId` | number \\| string | Pipeline ID. A string for the stages of additional deal pipelines, a number for other dictionaries. Deal pipelines: [`GET \u002Fv1\u002Fdeal-categories`](\u002Fdocs\u002Fentities\u002Fdeal-categories\u002Flist) |\n| `data[].categoryName` | string | Pipeline name. Returned for smart process stages |\n| `data[].categorySort` | number | Pipeline sort order. Returned for smart process stages |\n| `data[].isDefaultCategory` | boolean | Default pipeline. Returned for smart process stages |\n| `data[].isEnabled` | boolean | The dictionary's `isEnabled` flag. Returned for invoice, smart document and smart process stages |\n| `data[].prefix` | string | Stage code prefix of the pipeline: the `DEAL_STAGE_1` dictionary has the prefix `C1`, and its stages have codes such as `C1:NEW` |\n| `data[].fieldAttributeScope` | string | Pipeline code for field attributes, for example `category_1`. An empty string for the general deal pipeline |\n| `data[].semanticInfo` | object | Codes of the initial and final stages. An empty object `{}` for invoice, smart document and smart process stage dictionaries |\n| `data[].semanticInfo.startField` | string | Initial stage code |\n| `data[].semanticInfo.finalSuccessField` | string | Successful final stage code |\n| `data[].semanticInfo.finalUnsuccessField` | string | Unsuccessful final stage code |\n| `data[].semanticInfo.finalSort` | number | The `finalSort` value from the dictionary settings |\n\nFields other than `id` and `name` are returned only for the dictionaries they apply to. Classifiers such as `SOURCE` and `CONTACT_TYPE` carry only `id` and `name`.\n\n## Response example\n\nThree of 37 dictionaries are shown.\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"STATUS\",\n      \"name\": \"Lead stages\",\n      \"entityTypeId\": 1,\n      \"semanticInfo\": {\n        \"startField\": \"NEW\",\n        \"finalSuccessField\": \"CONVERTED\",\n        \"finalUnsuccessField\": \"JUNK\",\n        \"finalSort\": 0\n      }\n    },\n    {\n      \"id\": \"SOURCE\",\n      \"name\": \"Sources\"\n    },\n    {\n      \"id\": \"DEAL_STAGE_1\",\n      \"name\": \"Deal stages Retail\",\n      \"entityTypeId\": 2,\n      \"parentId\": \"DEAL_STAGE\",\n      \"categoryId\": \"1\",\n      \"prefix\": \"C1\",\n      \"fieldAttributeScope\": \"category_1\",\n      \"semanticInfo\": {\n        \"startField\": \"C1:NEW\",\n        \"finalSuccessField\": \"C1:WON\",\n        \"finalUnsuccessField\": \"C1:LOSE\",\n        \"finalSort\": 0\n      }\n    }\n  ]\n}\n```\n\n## Error response example\n\n401 — the key is not passed:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_API_KEY\",\n    \"message\": \"API key required. Pass via X-Api-Key header.\"\n  }\n}\n```\n\n## Errors\n\n| HTTP | Code | Description |\n|------|-----|---------|\n| 422 | `BITRIX_ERROR` | Bitrix24 rejected the request. The reason is in `error.message` |\n| 403 | `BITRIX_ACCESS_DENIED` | The key's user has no permission to read CRM dictionaries in Bitrix24 |\n| 502 | `BITRIX_RESPONSE_INVALID` | Bitrix24 returned a response of an unexpected shape |\n| 502 | `BITRIX_UNAVAILABLE` | Bitrix24 is unavailable |\n| 403 | `SCOPE_DENIED` | The key lacks the `crm` scope |\n| 401 | `TOKEN_MISSING` | The key has no configured tokens |\n| 401 | `MISSING_API_KEY` | The `X-Api-Key` header is not passed |\n| 401 | `INVALID_API_KEY` | The key is not found or has been revoked |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n**A read-only key works.** The method only reads data, so a key without write access gets the same response as a full-access key.\n\n**One stage dictionary per pipeline.** Each deal pipeline and smart process pipeline has its own stage dictionary: `DEAL_STAGE` is the general pipeline, `DEAL_STAGE_\u003Cpipeline ID>` are additional ones, `DYNAMIC_\u003CentityTypeId>_STAGE_\u003Cpipeline ID>` are smart process pipelines, `SMART_INVOICE_STAGE_\u003Cpipeline ID>` is the invoice pipeline. To get the stages of a specific pipeline, pass its dictionary identifier in `filter[entityId]`.\n\n## See also\n\n- [Dictionary list](\u002Fdocs\u002Fentities\u002Fstatuses\u002Flist)\n- [Dictionary fields](\u002Fdocs\u002Fentities\u002Fstatuses\u002Ffields)\n- [CRM dictionaries](\u002Fdocs\u002Fentities\u002Fstatuses)\n- [Deal pipelines](\u002Fdocs\u002Fentities\u002Fdeal-categories)\n","2026-10-22",{},1794739425287]