{% note tip "" %}
If you are developing integrations for Bitrix24 using AI tools (Codex, Claude Code, Cursor), connect to the MCP server so that the assistant can utilize the official REST documentation.
{% endnote %}
Scope:
listsWho can execute the method: a user with "Read" access permission for lists
The lists.get method returns a universal list or an array of lists.
{% include Note on required parameters %}
#|
|| Name
type | Description ||
|| IBLOCK_TYPE_ID*
string | Identifier of the information block type. Possible values:
lists— list information block typebitrix_processes— processes information block typelists_socnet— group lists information block type
The identifier can be obtained using the lists.get.iblock.type.id method ||
|| IBLOCK_ID
integer | Identifier of the information block ||
|| IBLOCK_CODE
string | Symbolic code of the information block
{% note info "" %}
When requesting without IBLOCK_ID or IBLOCK_CODE, all lists of the specified type available to the user will be returned.
{% endnote %} ||
|| SOCNET_GROUP_ID
integer | Group identifier. Required for group lists; otherwise, an access error will occur.
The identifier can be obtained using the socialnetwork.api.workgroup.list, sonet_group.get, and sonet_group.user.groups methods ||
|| IBLOCK_ORDER
object | Object for sorting list fields in the format {"field_1": "value_1", ... "field_N": "value_N"}.
The sorting direction can take the following values:
asc— ascendingdesc— descending
Allowed fields:
ID- list identifierIBLOCK_TYPE- information block typeNAME- list nameCODE- symbolic code of the listSORT- sortingTIMESTAMP_X- last modification time
Default value — decs ||
|| start
integer | Parameter used for pagination control.
The result page size is always static — 50 records.
To select the second page of results, you need to pass the value 50. To select the third page of results — the value 100, and so on.
The formula for calculating the start parameter value:
start = (N - 1) * 50, where N is the desired page number ||
|#
{% include Note on Examples %}
{% list tabs %}
-
cURL (Webhook)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"IBLOCK_TYPE_ID":"lists_socnet","SOCNET_GROUP_ID":33,"IBLOCK_ORDER":{"SORT":"asc","NAME":"asc"},"start":0}' \ https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/lists.get
-
cURL (OAuth)
curl -X POST \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"IBLOCK_TYPE_ID":"lists_socnet","SOCNET_GROUP_ID":33,"IBLOCK_ORDER":{"SORT":"asc","NAME":"asc"},"start":0,"auth":"**put_access_token_here**"}' \ https://**put_your_bitrix24_address**/rest/lists.get
-
JS (TS)
// This snippet is an ES module: top-level await requires type="module" or a bundler. // $b24 is an already-initialized SDK instance (see the SDK "Get started" guide). import { Text } from '@bitrix24/b24jssdk' import type { B24Frame } from '@bitrix24/b24jssdk' declare const $b24: B24Frame // Shape of each list item returned in result[] type ListItem = { ID: string TIMESTAMP_X: string IBLOCK_TYPE_ID: string LID: string CODE: string | null API_CODE: string | null NAME: string ACTIVE: string SORT: string SOCNET_GROUP_ID: string | null } try { // lists.get returns a single page (max 50 records). For the whole result set // use a list helper: $b24.actions.v2.callList.make() returns every record as one // array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator). // NOTE: the list helpers do not accept `order` (it is excluded from their params, so // passing it is a TS error) — keep this call.make + `start` variant when sort matters. const response = await $b24.actions.v2.call.make<ListItem[]>({ method: 'lists.get', params: { IBLOCK_TYPE_ID: 'lists_socnet', SOCNET_GROUP_ID: 33, IBLOCK_ORDER: { SORT: 'asc', NAME: 'asc', }, start: 0, }, requestId: Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) } else { const result = response.getData()!.result console.info('Fetched lists:', result.length, result[0]?.NAME) } } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) }
-
JS (UMD)
<!-- Load the SDK (UMD build); it is exposed as the global B24Js --> <script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script> <script> async function fetchLists() { try { // Initialize the SDK inside a Bitrix24 frame const $b24 = await B24Js.initializeB24Frame() // lists.get returns a single page (max 50 records). For the whole result set // use a list helper: $b24.actions.v2.callList.make() returns every record as one // array, $b24.actions.v2.fetchList.make() yields them in chunks (async generator). // NOTE: the list helpers do not accept `order` (it is excluded from their params, so // passing it is a TS error) — keep this call.make + `start` variant when sort matters. const response = await $b24.actions.v2.call.make({ method: 'lists.get', params: { IBLOCK_TYPE_ID: 'lists_socnet', SOCNET_GROUP_ID: 33, IBLOCK_ORDER: { SORT: 'asc', NAME: 'asc', }, start: 0, }, requestId: B24Js.Text.getUuidRfc4122() }) // The payload is available only on a successful response if (!response.isSuccess) { console.error(response.getErrorMessages().join('; ')) return } const result = response.getData().result console.info('Fetched lists:', result.length, result[0]?.NAME) } catch (error) { // Thrown on transport or SDK failures (AjaxError, SdkError, etc.) console.error(error) } } document.addEventListener('DOMContentLoaded', fetchLists) </script>
-
PHP
try { $response = $b24Service ->core ->call( 'lists.get', [ 'IBLOCK_TYPE_ID' => 'lists_socnet', 'SOCNET_GROUP_ID' => 33, 'IBLOCK_ORDER' => [ 'SORT' => 'asc', 'NAME' => 'asc' ], 'start' => 0 ] ); $result = $response ->getResponseData() ->getResult(); echo 'Success: ' . print_r($result, true); processData($result); } catch (Throwable $e) { error_log($e->getMessage()); echo 'Error fetching lists: ' . $e->getMessage(); }
-
BX24.js
BX24.callMethod( 'lists.get', { IBLOCK_TYPE_ID: 'lists_socnet', SOCNET_GROUP_ID: 33, IBLOCK_ORDER: { SORT: 'asc', NAME: 'asc' } }, function(result) { if (result.error()) { console.error(result.error()); } else { console.log(result.data()); if (result.more()) { result.next(); } } } );
-
PHP CRest
require_once('crest.php'); $result = CRest::call( 'lists.get', [ 'IBLOCK_TYPE_ID' => 'lists_socnet', 'SOCNET_GROUP_ID' => 33, 'IBLOCK_ORDER' => [ 'SORT' => 'asc', 'NAME' => 'asc' ], 'start' => 0 ] ); echo '<PRE>'; print_r($result); echo '</PRE>';
-
Go
// client and ctx are already created — see the Go SDK section res, err := client.Core().Call(ctx, "lists.get", b24.Params{ "IBLOCK_TYPE_ID": "lists_socnet", "SOCNET_GROUP_ID": 33, "IBLOCK_ORDER": b24.Params{ "SORT": "asc", "NAME": "asc", }, "start": 0, }, b24.WithIdempotent()) if err != nil { return fmt.Errorf("lists.get: %w", err) } var items []struct { ID b24.ID `json:"ID"` TimestampX string `json:"TIMESTAMP_X"` IblockTypeID string `json:"IBLOCK_TYPE_ID"` Lid string `json:"LID"` Name string `json:"NAME"` Active string `json:"ACTIVE"` } if err := json.Unmarshal(res.Result, &items); err != nil { return fmt.Errorf("parse response: %w", err) } for _, it := range items { fmt.Println(it.ID, it.TimestampX) }
{% endlist %}
HTTP Status: 200
{
"result": [
{
"ID": "89",
"TIMESTAMP_X": "05/17/2023 04:09:23 pm",
"IBLOCK_TYPE_ID": "lists_socnet",
"LID": "s1",
"CODE": null,
"API_CODE": null,
"NAME": "Group List",
"ACTIVE": "Y",
"SORT": "500",
"LIST_PAGE_URL": null,
"DETAIL_PAGE_URL": null,
"SECTION_PAGE_URL": null,
"CANONICAL_PAGE_URL": null,
"PICTURE": null,
"DESCRIPTION": "",
"DESCRIPTION_TYPE": "text",
"RSS_TTL": "24",
"RSS_ACTIVE": "Y",
"RSS_FILE_ACTIVE": "N",
"RSS_FILE_LIMIT": null,
"RSS_FILE_DAYS": null,
"RSS_YANDEX_ACTIVE": "N",
"XML_ID": null,
"TMP_ID": null,
"INDEX_ELEMENT": "Y",
"INDEX_SECTION": "N",
"WORKFLOW": "N",
"BIZPROC": "Y",
"SECTION_CHOOSER": "L",
"LIST_MODE": null,
"RIGHTS_MODE": "E",
"SECTION_PROPERTY": null,
"PROPERTY_INDEX": null,
"VERSION": "1",
"LAST_CONV_ELEMENT": "0",
"SOCNET_GROUP_ID": "33",
"EDIT_FILE_BEFORE": null,
"EDIT_FILE_AFTER": null,
"SECTIONS_NAME": "Sections",
"SECTION_NAME": "Section",
"ELEMENTS_NAME": "Elements",
"ELEMENT_NAME": "Element",
"REST_ON": "N",
"FULLTEXT_INDEX": "N",
"EXTERNAL_ID": null,
"LANG_DIR": "/",
"SERVER_NAME": null
}
],
"total": 1,
"time": {
"start": 1764694297,
"finish": 1764694298.018582,
"duration": 1.0185821056365967,
"processing": 1,
"date_start": "2025-12-02T15:51:37+01:00",
"date_finish": "2025-12-02T15:51:38+01:00",
"operating_reset_at": 1764694897,
"operating": 0
}
}#|
|| Name
type | Description ||
|| result
array | Data of the list or array of lists.
An empty array means that no lists were found ||
|| total
integer | Total number of lists ||
|| time
time | Information about the execution time of the request ||
|#
HTTP Status: 400
{
"error":"ERROR_REQUIRED_PARAMETERS_MISSING",
"error_description":"Required parameter `X` is missing"
}{% include notitle error handling %}
#|
|| Code | Description | Value ||
|| ERROR_REQUIRED_PARAMETERS_MISSING | Required parameter X is missing | Required parameter is missing ||
|| ACCESS_DENIED | Access denied | Insufficient rights to read the list ||
|#
{% include system errors %}