[{"data":1,"prerenderedAt":9},["ShallowReactive",2],{"docs-entities\u002Fcrm-enums":3,"docs-tabs-entities\u002Fcrm-enums":6},{"content":4,"lastmod":5},"# CRM reference lists\n\nCRM entity types and address types available in the Bitrix24 account. Use them to convert a numeric entity type into a letter code and to find the allowed address types.\n\nBitrix24 API: `crm.enum.ownertype`, `crm.enum.addresstype`\n\nScope: `crm`\n\n## Operations\n\n- [Entity types](.\u002Fcrm-enums\u002Fowner-types.md) — `GET \u002Fv1\u002Fcrm-enums\u002Fowner-types`\n- [Address types](.\u002Fcrm-enums\u002Faddress-types.md) — `GET \u002Fv1\u002Fcrm-enums\u002Faddress-types`\n\n## Key fields\n\nBoth reference lists return items of the same shape.\n\n| Field | Description |\n|------|----------|\n| `id` | For an entity type, the `entityTypeId` used in CRM routes. For an address type, the `typeId` of the [address methods](\u002Fdocs\u002Fentities\u002Faddresses) |\n| `name` | Name in the Bitrix24 account language |\n| `symbolCode` | Symbolic code of the entity type, for example `DEAL`. For address types it can be `null` |\n| `symbolCodeShort` | Short code of the entity type, matches the `ownerType` of product rows, for example `D`. For address types it can be `null` |\n\n## Before you start\n\n1. **The reference lists are read-only.** A READONLY key works. The methods take no parameters.\n2. **The contents depend on the Bitrix24 account.** Entity types include the smart processes of this account, and names come in the account language. Match items by `id` and symbolic codes, not by `name`.\n3. **Entity types link numeric and letter designations.** CRM routes take a numeric `entityTypeId`, while product rows return a letter `ownerType`. The entity type reference list holds both values in one record.\n\n## Typical scenario\n\n1. Get the entity types: [`GET \u002Fv1\u002Fcrm-enums\u002Fowner-types`](.\u002Fcrm-enums\u002Fowner-types.md).\n2. Find the smart process you need by `symbolCode` and pass its `id` to [`\u002Fv1\u002Fitems\u002F:entityTypeId`](\u002Fdocs\u002Fentities\u002Fitems).\n3. Before writing an address, get the address types: [`GET \u002Fv1\u002Fcrm-enums\u002Faddress-types`](.\u002Fcrm-enums\u002Faddress-types.md), and pass the chosen `id` as `typeId` to the [address methods](\u002Fdocs\u002Fentities\u002Faddresses).\n\n## Limits\n\n| Limit | Value |\n|-------|----------|\n| Pagination | none, the whole reference list is returned in a single response |\n| Rate limit | shared across the Vibecode API — see [Limits and optimization](\u002Fdocs\u002Foptimization) |\n\n## See also\n\n- [Addresses](\u002Fdocs\u002Fentities\u002Faddresses)\n- [Smart processes](\u002Fdocs\u002Fentities\u002Fitems)\n- [CRM settings](\u002Fdocs\u002Fentities\u002Fcrm-settings)\n- [API reference](\u002Fdocs\u002Fapi-reference)\n","2026-10-15",{"crm-enums\u002Fowner-types.md":7,"crm-enums\u002Faddress-types.md":8},"## CRM entity types\n\n`GET \u002Fv1\u002Fcrm-enums\u002Fowner-types`\n\nReference list of the CRM entity types on the Bitrix24 account, smart processes included. Use it to map a numeric entity type to its letter code and back.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-enums\u002Fowner-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\u002Fcrm-enums\u002Fowner-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\u002Fcrm-enums\u002Fowner-types', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { data } = await res.json()\nconst byShortCode = Object.fromEntries(data.map((type) => [type.symbolCodeShort, type.id]))\nconsole.log(byShortCode.D) \u002F\u002F 2\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-enums\u002Fowner-types', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { data } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|----------|\n| `success` | boolean | `true` on a successful request |\n| `data` | array | CRM entity types |\n| `data[].id` | number | Type ID. Matches `entityTypeId` in CRM routes, for example in [`\u002Fv1\u002Fitems\u002F:entityTypeId`](\u002Fdocs\u002Fentities\u002Fitems) |\n| `data[].name` | string | Type name in the Bitrix24 account language |\n| `data[].symbolCode` | string \\| null | Symbolic code, for example `DEAL`, `SMART_INVOICE`, `DYNAMIC_1038` |\n| `data[].symbolCodeShort` | string \\| null | Short code. Matches the `ownerType` of product rows, for example [`D` for a deal](\u002Fdocs\u002Fentities\u002Fdeals\u002Fproducts-get) |\n\n## Response example\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    { \"id\": 1, \"name\": \"Lead\", \"symbolCode\": \"LEAD\", \"symbolCodeShort\": \"L\" },\n    { \"id\": 2, \"name\": \"Deal\", \"symbolCode\": \"DEAL\", \"symbolCodeShort\": \"D\" },\n    { \"id\": 31, \"name\": \"Invoice\", \"symbolCode\": \"SMART_INVOICE\", \"symbolCodeShort\": \"SI\" },\n    { \"id\": 1038, \"name\": \"No fields\", \"symbolCode\": \"DYNAMIC_1038\", \"symbolCodeShort\": \"T40e\" }\n  ]\n}\n```\n\nThe example shows 4 of the 17 types returned by the test Bitrix24 account.\n\n## Error response example\n\n401 — the `X-Api-Key` header is missing:\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| 403 | `BITRIX_ACCESS_DENIED` | The key's user has no permission to read the reference list in Bitrix24 |\n| 422 | `BITRIX_ERROR` | Bitrix24 rejected the request. The reason is in `message` |\n| 429 | `RATE_LIMITED` | Bitrix24 request rate exceeded, retry in 1-2 seconds |\n| 502 | `BITRIX_RESPONSE_INVALID` | Bitrix24 returned the reference list in an unexpected shape |\n| 502 | `BITRIX_UNAVAILABLE` | Bitrix24 is unavailable: it returned a server error or the connection dropped |\n| 401 | `MISSING_API_KEY` | The `X-Api-Key` header is missing |\n| 401 | `TOKEN_MISSING` | The API key has no Bitrix24 tokens configured |\n| 403 | `SCOPE_DENIED` | The API key lacks the `crm` scope |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n- **Smart processes are included in the list.** Their `symbolCode` is `DYNAMIC_` plus `id`, and `symbolCodeShort` is the letter `T` plus `id` in hexadecimal: for type `1038` it is `T40e`. Each Bitrix24 account has its own set of smart processes.\n- **Query parameters are ignored.** The method takes no parameters, and any passed in the URL do not affect the response.\n\n## See also\n\n- [CRM address types](\u002Fdocs\u002Fentities\u002Fcrm-enums\u002Faddress-types)\n- [CRM enums](\u002Fdocs\u002Fentities\u002Fcrm-enums)\n- [Smart process items](\u002Fdocs\u002Fentities\u002Fitems)\n- [Deal product rows](\u002Fdocs\u002Fentities\u002Fdeals\u002Fproducts-get)\n","## CRM address types\n\n`GET \u002Fv1\u002Fcrm-enums\u002Faddress-types`\n\nReference list of address types on the Bitrix24 account: actual, legal, delivery address and others. Use it to pick a type before writing an address.\n\n## Examples\n\n### curl — personal key\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-enums\u002Faddress-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\u002Fcrm-enums\u002Faddress-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\u002Fcrm-enums\u002Faddress-types', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { data } = await res.json()\nfor (const type of data) console.log(type.id, type.name)\n```\n\n### JavaScript — OAuth application\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.com\u002Fv1\u002Fcrm-enums\u002Faddress-types', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { data } = await res.json()\n```\n\n## Response fields\n\n| Field | Type | Description |\n|------|-----|----------|\n| `success` | boolean | `true` on a successful request |\n| `data` | array | The Bitrix24 account's address types |\n| `data[].id` | number | Type ID. Pass it as `typeId` to the [address methods](\u002Fdocs\u002Fentities\u002Faddresses) |\n| `data[].name` | string | Type name in the Bitrix24 account language |\n| `data[].symbolCode` | string \\| null | Symbolic type code. On the test Bitrix24 account it is `null` for every type |\n| `data[].symbolCodeShort` | string \\| null | Short symbolic code. On the test Bitrix24 account it is `null` for every type |\n\n## Response example\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    { \"id\": 11, \"name\": \"Delivery address\", \"symbolCode\": null, \"symbolCodeShort\": null },\n    { \"id\": 1, \"name\": \"Actual address\", \"symbolCode\": null, \"symbolCodeShort\": null },\n    { \"id\": 6, \"name\": \"Legal address\", \"symbolCode\": null, \"symbolCodeShort\": null },\n    { \"id\": 4, \"name\": \"Registration address\", \"symbolCode\": null, \"symbolCodeShort\": null },\n    { \"id\": 8, \"name\": \"Mailing address\", \"symbolCode\": null, \"symbolCodeShort\": null },\n    { \"id\": 9, \"name\": \"Beneficiary address\", \"symbolCode\": null, \"symbolCodeShort\": null }\n  ]\n}\n```\n\n## Error response example\n\n401 — the `X-Api-Key` header is missing:\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| 403 | `BITRIX_ACCESS_DENIED` | The key's user has no permission to read the reference list in Bitrix24 |\n| 422 | `BITRIX_ERROR` | Bitrix24 rejected the request; the reason is in `message` |\n| 429 | `RATE_LIMITED` | Bitrix24 request rate exceeded; retry in 1-2 seconds |\n| 502 | `BITRIX_RESPONSE_INVALID` | Bitrix24 returned the reference list in an unexpected shape |\n| 502 | `BITRIX_UNAVAILABLE` | Bitrix24 is unavailable: it returned a server error or the connection dropped |\n| 401 | `MISSING_API_KEY` | The `X-Api-Key` header is missing |\n| 401 | `TOKEN_MISSING` | The API key has no Bitrix24 tokens configured |\n| 403 | `SCOPE_DENIED` | The API key lacks the `crm` scope |\n\nFull list of common API errors — [Errors](\u002Fdocs\u002Ferrors).\n\n## Known specifics\n\n- **The Bitrix24 account defines the set and order of types.** The list is not sorted by `id`. Match types by `id`, not by name or position in the array.\n- **Query parameters are ignored.** The method takes no parameters; any passed in the URL do not affect the response.\n\n## See also\n\n- [Addresses](\u002Fdocs\u002Fentities\u002Faddresses)\n- [CRM entity types](\u002Fdocs\u002Fentities\u002Fcrm-enums\u002Fowner-types)\n- [CRM reference lists](\u002Fdocs\u002Fentities\u002Fcrm-enums)\n",1794739351536]