لوكلاء AI: ملف markdown لهذه الصفحة — /docs-content-en/lists.md فهرس التوثيق — /llms.txt

مقالات التوثيق متاحة حاليًا باللغة الإنجليزية فقط.

Universal Lists

Programmatic access to the Bitrix24 Lists module: the lists themselves, their fields, sections, and elements.

Scope: lists | Base URL: https://vibecode.bitrix24.com/v1 | Authorization: X-Api-Key

The module must be enabled separately on your Bitrix24 account. Universal Lists is a separate Bitrix24 module. If it is not activated on the account, calls return 409 LISTS_MODULE_NOT_ENABLED. This is not an integration error — ask the Bitrix24 account administrator to enable the Lists module and retry the request.

Data model

A list is an infoblock. Each call addresses data through three levels of keys.

Infoblock type — the iblockTypeId parameter. Possible values:

  • lists — regular lists. The default value.
  • lists_socnet — workgroup lists. They require socnetGroupId.
  • bitrix_processes — internal workflows.
  • structure — company-structure type. The stock absence-calendar infoblock (absence) lives here.

The type is passed in the query for GET and DELETE, and in the body for POST and PATCH.

List — the :iblockId path segment. A digits-only segment is the numeric IBLOCK_ID; a string is the symbolic code IBLOCK_CODE. Both forms are equivalent.

Field, section, or element — the corresponding nested path segment.

Responses are returned in Bitrix24 format. Keys are uppercase with underscores: ID, NAME, IBLOCK_TYPE_ID. Numeric identifiers are returned as strings, for example "ID": "121". Custom element properties are addressed by keys of the form PROPERTY_<id>. These keys are not converted to camelCase — some of them are dynamic.

Documentation sections

  • Lists — creating, reading, updating, and deleting the lists themselves, plus the infoblock type.
  • List fields — the set of list fields and a reference of allowed field types.
  • Sections — grouping elements into sections with nesting support.
  • Elements — list rows and file links from element properties.

Quick start

Terminal
# All lists of type lists
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://vibecode.bitrix24.com/v1/lists?iblockTypeId=lists"

# Elements of list 23
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://vibecode.bitrix24.com/v1/lists/23/elements"

Full example

A five-step scenario: create a list, add a field, add an element with a value for that field, read the result, delete the list.

Terminal
KEY="YOUR_API_KEY"
BASE="https://vibecode.bitrix24.com/v1"

# 1. Create the list → { "success": true, "data": { "id": 135 } }
curl -s -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"iblockCode":"demo_orders","fields":{"NAME":"Demo: orders","SORT":100}}' \
  "$BASE/lists"

# 2. Add a field → { "success": true, "data": { "id": "PROPERTY_1179" } }
curl -s -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"fields":{"NAME":"Status","TYPE":"S","CODE":"STATUS"}}' \
  "$BASE/lists/135/fields"

# 3. Add an element with a property value → { "success": true, "data": { "id": 7043 } }
curl -s -X POST -H "X-Api-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"elementCode":"row-1","fields":{"NAME":"Order #1","PROPERTY_1179":"new"}}' \
  "$BASE/lists/135/elements"

# 4. Read elements → data[0] = { "ID": "7043", "NAME": "Order #1", "PROPERTY_1179": { "3811": "new" } }
curl -s -H "X-Api-Key: $KEY" \
  "$BASE/lists/135/elements?select=ID,NAME,PROPERTY_1179"

# 5. Delete the list → HTTP 204 No Content (fields, sections, and elements are deleted along with it)
curl -s -X DELETE -H "X-Api-Key: $KEY" "$BASE/lists/135"

A field must be created with a CODE. A property value is passed as a string when creating ("PROPERTY_1179": "new"), and returned in the form { value_id: value } when reading.

Endpoint reference

Method Path Bitrix24 method Description
MethodGET Path/v1/lists Bitrix24 methodlists.get DescriptionLists of the given type
MethodPOST Path/v1/lists Bitrix24 methodlists.add DescriptionCreate a list
MethodGET Path/v1/lists/:iblockId Bitrix24 methodlists.get DescriptionA single list
MethodPATCH Path/v1/lists/:iblockId Bitrix24 methodlists.update DescriptionUpdate a list
MethodDELETE Path/v1/lists/:iblockId Bitrix24 methodlists.delete DescriptionDelete a list
MethodGET Path/v1/lists/:iblockId/type Bitrix24 methodlists.get.iblock.type.id DescriptionInfoblock type by ID or code
MethodGET Path/v1/lists/:iblockId/fields Bitrix24 methodlists.field.get DescriptionAll list fields
MethodGET Path/v1/lists/:iblockId/fields/:fieldId Bitrix24 methodlists.field.get DescriptionA single field
MethodPOST Path/v1/lists/:iblockId/fields Bitrix24 methodlists.field.add DescriptionCreate a field
MethodPATCH Path/v1/lists/:iblockId/fields/:fieldId Bitrix24 methodlists.field.update DescriptionUpdate a field
MethodDELETE Path/v1/lists/:iblockId/fields/:fieldId Bitrix24 methodlists.field.delete DescriptionDelete a field
MethodGET Path/v1/lists/:iblockId/field-types Bitrix24 methodlists.field.type.get DescriptionField type reference
MethodGET Path/v1/lists/:iblockId/sections Bitrix24 methodlists.section.get DescriptionList sections
MethodGET Path/v1/lists/:iblockId/sections/:sectionId Bitrix24 methodlists.section.get DescriptionA single section
MethodPOST Path/v1/lists/:iblockId/sections Bitrix24 methodlists.section.add DescriptionCreate a section
MethodPATCH Path/v1/lists/:iblockId/sections/:sectionId Bitrix24 methodlists.section.update DescriptionUpdate a section
MethodDELETE Path/v1/lists/:iblockId/sections/:sectionId Bitrix24 methodlists.section.delete DescriptionDelete a section
MethodGET Path/v1/lists/:iblockId/elements Bitrix24 methodlists.element.get DescriptionList elements
MethodGET Path/v1/lists/:iblockId/elements/:elementId Bitrix24 methodlists.element.get DescriptionA single element
MethodPOST Path/v1/lists/:iblockId/elements Bitrix24 methodlists.element.add DescriptionCreate an element
MethodPATCH Path/v1/lists/:iblockId/elements/:elementId Bitrix24 methodlists.element.update DescriptionUpdate an element
MethodDELETE Path/v1/lists/:iblockId/elements/:elementId Bitrix24 methodlists.element.delete DescriptionDelete an element
MethodGET Path/v1/lists/:iblockId/elements/:elementId/files/:fieldId Bitrix24 methodlists.element.get.file.url DescriptionFile links from a property

Error codes

HTTP Code When
HTTP409 CodeLISTS_MODULE_NOT_ENABLED WhenThe Lists module is not enabled on the portal
HTTP400 CodeINVALID_IBLOCK_TYPE WheniblockTypeId is not one of lists, lists_socnet, bitrix_processes, structure
HTTP400 CodeMISSING_REQUIRED_FIELDS WhenA required iblockCode, sectionCode, elementCode, or fields was not provided
HTTP400 CodeINVALID_PARAMS WhenA non-numeric :sectionId or :elementId, or a fieldId with the PROPERTY_ prefix in the files route
HTTP400 CodeINVALID_FILTER WhenThe filter parameter is not valid JSON. An ambiguous envelope is rejected as well: the bracket form and JSON in one request (in either order), or a bracket condition deeper than two levels — half of the conditions are irrecoverably lost during parsing, so the request is refused rather than half-applied.
HTTP400 CodeINVALID_SORT_FIELD WhenThe sort parameter references an unsupported field or direction
HTTP422 CodeBITRIX_ERROR WhenBitrix24 rejected the request. For example, a field is created without CODE, updated without TYPE, or an element filter names a field that cannot be filtered on
HTTP403 CodeBITRIX_ACCESS_DENIED WhenNo permissions for the list. A missing list is reported differently depending on the endpoint: 404 where Bitrix24 reports it with a machine code (the element and field collections, the field-type set, a single element, a single field, element files), 422 on sections, and — when reading the list itself — 403 for a numeric ID or 404 for a symbolic code
HTTP404 CodeLIST_NOT_FOUND / SECTION_NOT_FOUND / ELEMENT_NOT_FOUND / FIELD_NOT_FOUND WhenObject not found
HTTP403 CodeWRITE_BLOCKED_READONLY_KEY WhenThe key is in read-only mode
HTTP403 CodeSCOPE_DENIED WhenThe key lacks the lists scope
HTTP401 CodeMISSING_API_KEY WhenThe X-Api-Key header was not provided. The key is checked before the request body, so this error and INVALID_API_KEY are returned regardless of the size and content of the body
HTTP401 CodeINVALID_API_KEY WhenThe key is not recognized — no such key exists on the platform
HTTP401 CodeTOKEN_MISSING WhenThe key has no Bitrix24 tokens configured
HTTP400 CodeUNSUPPORTED_FILTER WhenA filter parameter was passed, and this endpoint has none. The error text names what to use instead

The full list of common API errors — Errors.

Limits

Limit Value
LimitList and element pagination ValueThe offset for GET /v1/lists and GET /v1/lists/:iblockId/elements is set by the start parameter or by its alias offset. When both are passed, start applies. The response is returned in pages. Get the next page by increasing the offset. There is no automatic traversal of all pages
LimitRate limit ValueShared across the Vibecode API — see Limits and optimization

See also