Get a List of Storage Items entity.item.get

Choose a tool for developing with an AI agent:

  • use Alaio Vibecode to build an app for Bitrix24 from a task description without knowing any programming language. The agent writes the code and deploys the app to a server, with no manual hosting setup
  • use the MCP server to develop a REST API integration in your own project. The agent refers to the official REST documentation

Scope: entity

Who can execute the method: any user upon application authorization

The entity.item.get method retrieves a list of items from the application's data storage.

This method works only in the context of an application.

Method Parameters

Required parameters are marked with *

Name
type

Description

ENTITY*
string

Identifier of the application's data storage. Use the value specified when creating the storage.

You can obtain the identifier using the entity.get method.

SORT
object

Object format:

{
            field_1: value_1,
            field_2: value_2,
            ...,
            field_n: value_n
        }
        

where:

  • field_n — sorting field
  • value_n — sorting direction: ASC or DESC

Refer to the Item Type section for a list of available sorting fields.

By default, {"ID":"ASC"} is used.

FILTER
object

Object format:

{
            field_1: value_1,
            field_2: value_2,
            ...,
            field_n: value_n
        }
        

where:

  • field_n — filtering field
  • value_n — filter value

Refer to the Item Type section for a list of available filtering fields.

You can add prefixes to the keys field_n:

  • >= — greater than or equal to
  • > — greater than
  • <= — less than or equal to
  • < — less than
  • = — equal (default)
  • != or ! — not equal
  • >< — range
  • !>< — not in range
  • % — LIKE
  • !% — NOT LIKE
  • ? — check for null/not null

start
integer

Pagination parameter.

The page size is fixed at 50 records.

The formula for obtaining the N-th page:
start = (N - 1) * 50

For more details, refer to the article Features of List Methods

Code Examples

How to Use Examples in Documentation

Example of retrieving storage items where:

  • ENTITY — storage identifier dish_v2
  • SORT — sorting by activity date and identifier
  • FILTER — date range of activity
curl -X POST \
        -H "Content-Type: application/json" \
        -H "Accept: application/json" \
        -d '{"ENTITY":"dish_v2","SORT":{"DATE_ACTIVE_FROM":"ASC","ID":"ASC"},"FILTER":{">=DATE_ACTIVE_FROM":"2026-03-01T00:00:00+01:00","<DATE_ACTIVE_FROM":"2026-04-01T00:00:00+01:00"},"start":0,"auth":"**put_access_token_here**"}' \
        https://**put_your_bitrix24_address**/rest/entity.item.get
        
// 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, ISODate } from '@bitrix24/b24jssdk'
        
        declare const $b24: B24Frame
        
        // Shape of each item returned in result[]
        type EntityItem = {
          ID: string
          TIMESTAMP_X: ISODate
          MODIFIED_BY: string
          DATE_CREATE: ISODate
          CREATED_BY: string
          ACTIVE: string
          DATE_ACTIVE_FROM: ISODate | string
          DATE_ACTIVE_TO: ISODate | string
          SORT: string
          NAME: string
          PREVIEW_PICTURE: string | null
          PREVIEW_TEXT: string | null
          DETAIL_PICTURE: string | null
          DETAIL_TEXT: string | null
          CODE: string | null
          ENTITY: string
          SECTION: string | null
          PROPERTY_VALUES?: Record<string, unknown>
        }
        
        try {
          // entity.item.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<EntityItem[]>({
            method: 'entity.item.get',
            params: {
              ENTITY: 'dish_v2',
              SORT: {
                DATE_ACTIVE_FROM: 'ASC',
                ID: 'ASC',
              },
              FILTER: {
                '>=DATE_ACTIVE_FROM': '2026-03-01T00:00:00+03:00',
                '<DATE_ACTIVE_FROM': '2026-04-01T00:00:00+03:00',
              },
              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('Items count:', result.length, 'First item:', result[0])
          }
        } catch (error) {
          // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
          console.error(error)
        }
        
<!-- 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 getEntityItems() {
            try {
              // Initialize the SDK inside a Bitrix24 frame
              const $b24 = await B24Js.initializeB24Frame()
        
              // entity.item.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: 'entity.item.get',
                params: {
                  ENTITY: 'dish_v2',
                  SORT: {
                    DATE_ACTIVE_FROM: 'ASC',
                    ID: 'ASC',
                  },
                  FILTER: {
                    '>=DATE_ACTIVE_FROM': '2026-03-01T00:00:00+03:00',
                    '<DATE_ACTIVE_FROM': '2026-04-01T00:00:00+03:00',
                  },
                  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('Items count:', result.length, 'First item:', result[0])
            } catch (error) {
              // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
              console.error(error)
            }
          }
        
          document.addEventListener('DOMContentLoaded', getEntityItems)
        </script>
        
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
        
        try:
            bitrix_response = client.entity.item.get(
                entity="dish_v2",
                sort={
                    "DATE_ACTIVE_FROM": "ASC",
                    "ID": "ASC",
                },
                filter={
                    ">=DATE_ACTIVE_FROM": "2026-03-01T00:00:00+03:00",
                    "<DATE_ACTIVE_FROM": "2026-04-01T00:00:00+03:00",
                },
                start=0,
            ).response
            result = bitrix_response.result
            print(result)
        except BitrixAPIError as error:
            print(
                "Bitrix API error",
                f"error: {error.error}",
                f"error_description: {error.error_description}",
                sep="\n",
            )
        except BitrixSDKException as error:
            print(f"Bitrix SDK error: {error.message}")
        except Exception as error:
            print(f"Unexpected error: {error}")
        
try {
            $response = $b24Service
                ->core
                ->call(
                    'entity.item.get',
                    [
                        'ENTITY' => 'dish_v2',
                        'SORT' => [
                            'DATE_ACTIVE_FROM' => 'ASC',
                            'ID' => 'ASC',
                        ],
                        'FILTER' => [
                            '>=DATE_ACTIVE_FROM' => '2026-03-01T00:00:00+01:00',
                            '<DATE_ACTIVE_FROM' => '2026-04-01T00:00:00+01:00',
                        ],
                        'start' => 0,
                    ]
                );
        
            $result = $response
                ->getResponseData()
                ->getResult();
        
            echo '<pre>';
            print_r($result);
            echo '</pre>';
        
        } catch (Throwable $e) {
            error_log($e->getMessage());
            echo 'Error getting entity items: ' . $e->getMessage();
        }
        
BX24.callMethod(
            'entity.item.get',
            {
                ENTITY: 'dish_v2',
                SORT: {
                    DATE_ACTIVE_FROM: 'ASC',
                    ID: 'ASC',
                },
                FILTER: {
                    '>=DATE_ACTIVE_FROM': '2026-03-01T00:00:00+01:00',
                    '<DATE_ACTIVE_FROM': '2026-04-01T00:00:00+01:00',
                },
            },
            (result) => {
                if (result.error()) {
                    console.error(result.error());
                    return;
                }
        
                console.info(result.data());
        
                if (result.more()) {
                    result.next();
                }
            },
        );
        
require_once('crest.php');
        
        $result = CRest::call(
            'entity.item.get',
            [
                'ENTITY' => 'dish_v2',
                'SORT' => [
                    'DATE_ACTIVE_FROM' => 'ASC',
                    'ID' => 'ASC',
                ],
                'FILTER' => [
                    '>=DATE_ACTIVE_FROM' => '2026-03-01T00:00:00+01:00',
                    '<DATE_ACTIVE_FROM' => '2026-04-01T00:00:00+01:00',
                ],
                'start' => 0,
            ]
        );
        
        echo '<PRE>';
        print_r($result);
        echo '</PRE>';
        
// client and ctx are already created — see the Go SDK section
        res, err := client.Core().Call(ctx, "entity.item.get", b24.Params{
        	"ENTITY": "dish_v2",
        	"SORT": b24.Params{
        		"DATE_ACTIVE_FROM": "ASC",
        		"ID":               "ASC",
        	},
        	"FILTER": b24.Params{
        		">=DATE_ACTIVE_FROM": "2026-03-01T00:00:00+03:00",
        		"<DATE_ACTIVE_FROM":  "2026-04-01T00:00:00+03:00",
        	},
        	"start": 0,
        }, b24.WithIdempotent())
        if err != nil {
        	return fmt.Errorf("entity.item.get: %w", err)
        }
        
        var items []struct {
        	ID         b24.ID `json:"ID"`
        	TimestampX string `json:"TIMESTAMP_X"`
        	ModifiedBy string `json:"MODIFIED_BY"`
        	DateCreate string `json:"DATE_CREATE"`
        	CreatedBy  string `json:"CREATED_BY"`
        	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)
        }
        

Response Handling

HTTP Status: 200

{
            "result": [
                {
                    "ID": "2331",
                    "TIMESTAMP_X": "2026-03-25T12:29:06+01:00",
                    "MODIFIED_BY": "577",
                    "DATE_CREATE": "2026-03-25T12:29:06+01:00",
                    "CREATED_BY": "577",
                    "ACTIVE": "Y",
                    "DATE_ACTIVE_FROM": "",
                    "DATE_ACTIVE_TO": "",
                    "SORT": "500",
                    "NAME": "Test Item",
                    "PREVIEW_PICTURE": null,
                    "PREVIEW_TEXT": null,
                    "DETAIL_PICTURE": null,
                    "DETAIL_TEXT": null,
                    "CODE": null,
                    "ENTITY": "dish",
                    "SECTION": null
                }
            ],
            "total": 1,
            "time": {
                "start": 1774430946,
                "finish": 1774430946.627232,
                "duration": 0.6272320747375488,
                "processing": 0,
                "date_start": "2026-03-25T12:29:06+01:00",
                "date_finish": "2026-03-25T12:29:06+01:00",
                "operating_reset_at": 1774431546,
                "operating": 0
            }
        }
        

Returned Data

Name
type

Description

result
item[]

List of storage items

total
integer

Total number of items in the selection

next
integer

Offset for retrieving the next page (if available)

time
time

Information about the execution time of the request

Item Type

Name
type

Description

ID
integer

Identifier of the item

TIMESTAMP_X
datetime

Date and time of the last modification

MODIFIED_BY
integer

Identifier of the user who modified the item

DATE_CREATE
datetime

Date and time of creation

CREATED_BY
integer

Identifier of the user who created the item

ACTIVE
string

Active flag (Y or N)

DATE_ACTIVE_FROM
datetime | string

Start date of activity or empty string

DATE_ACTIVE_TO
datetime | string

End date of activity or empty string

SORT
integer

Sorting index

NAME
string

Name of the item

PREVIEW_PICTURE
string | null

URL of the preview image

PREVIEW_TEXT
string | null

Preview text

DETAIL_PICTURE
string | null

URL of the detailed image

DETAIL_TEXT
string | null

Detailed text

CODE
string | null

Symbolic code of the item

ENTITY
string

Identifier of the storage

SECTION
integer | null

Identifier of the section

PROPERTY_VALUES
object

Object of property values in the format {"PROPERTY_CODE": value}. The field is present if the storage has properties.

To filter by a property value, use the key PROPERTY_<PROPERTY_CODE>, for example {"PROPERTY_PRICE": 100}.

You can obtain a list of available property codes using the entity.item.property.get method.

Error Handling

HTTP Status: 400

{
            "error": "ERROR_ARGUMENT",
            "error_description": "Argument 'ENTITY' is null or empty",
            "argument": "ENTITY"
        }
        
{
            "error": "ERROR_ENTITY_NOT_FOUND",
            "error_description": "Entity not found"
        }
        

Name
type

Description

error
string

String error code. It consists of digits, Latin letters, and underscores. It may arrive empty — in that case only error_description shows the reason

error_description
string

Error message for the developer. Do not show it to the end user without processing

Possible Error Codes

Code

Description

Value

ERROR_ARGUMENT

Argument 'ENTITY' is null or empty

The ENTITY parameter is not provided or is empty after cleanup.

ERROR_ARGUMENT

Entity code is too long. Max length is N characters.

The ENTITY value is too long.

ERROR_ARGUMENT

Filter validator errors

Invalid values were provided for the FILTER parameter.

ERROR_ENTITY_NOT_FOUND

Entity not found

The storage with the provided ENTITY was not found.

ACCESS_DENIED

Access denied! Application context required

No application context (clientId).

Statuses and System Error Codes

HTTP Status: 4xx, 5xx

The errors described below are returned by the REST API itself, not by the logic of a specific method. They can arrive in response to any method.

Status

Code
Error Message

Description

500

INTERNAL_SERVER_ERROR
Internal server error

An internal server error has occurred. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

The server returned an unexpected response. Retry the call, and if the error persists, contact the server administrator or Bitrix24 technical support

503

QUERY_LIMIT_EXCEEDED
Too many requests

The request intensity limit has been exceeded

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

The method is blocked because the request resource intensity limit has been exceeded. The block is lifted automatically once the accumulated execution time of the method no longer exceeds the limit

401

NO_AUTH_FOUND
Wrong authorization data

The request contains no authorization data: neither an access token nor a webhook code was passed

401

INVALID_REQUEST
Https required

Methods are called over the HTTPS protocol only

401

OVERLOAD_LIMIT
REST API is blocked due to overload

The REST API is blocked due to overload. This is a manual individual block. To have it lifted, contact Bitrix24 technical support

401

ACCESS_DENIED
REST is available only on commercial plans

REST API access is not active for this account. In Bitrix24 Cloud, check the current plan or trial status: Vibe+ plans include REST API access, while Essentials plans do not. A webhook receives a different error message — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

No active webhook with the specified user identifier and secret code was found

404

ERROR_METHOD_NOT_FOUND
Method not found!

No method with this name was found. The name is misspelled, the method does not exist in the REST API, or it is unavailable without the required scope

401

insufficient_scope
The request requires higher privileges than provided by the webhook token

The request requires broader permissions than the token has: for a webhook these are the permissions granted to it, for an application it is the scope. For an application, the error message ends with provided by the access token

401

expired_token
The access token provided has expired

The access token has expired

401

user_access_error
The user does not have access to the application

The application is installed, but the Bitrix24 administrator has granted access to it only to specific users

403

PORTAL_DELETED
Portal was deleted

The public part of the site is closed. To open it on an on-premise installation, disable the "Temporary closure of the public part of the site" option. Path to the setting: Desktop > Settings > Product Settings > Module Settings > Main Module > Temporary closure of the public part of the site

Continue Learning