<?php use \Bitrix24\CRM\Contact as B24Contact; use \Bitrix24\Presets\CRM\Contact\Fields as B24ContactFields; require_once __DIR__.'/vendor/autoload.php'; // init lib $obB24App = new \Bitrix24\Bitrix24(false, $log); // $obB24App->setApplicationScope(array("crm", "users")); $obB24App->setApplicationId("appid"); $obB24App->setApplicationSecret("appsecret"); // set user-specific settings $obB24App->setDomain($_REQUEST['domain']); $obB24App->setMemberId($_REQUEST['memberid']); $obB24App->setAccessToken($_REQUEST['auth']); // $obB24App->setRefreshToken($arParams['REFRESH_ID']); $arContacts = []; $obB24App->addBatchCall('crm.contact.list', [ 'select' => ['ID', 'NAME', 'LAST_NAME'], 'order' => ['ID' => 'ASC'], 'filter' => ["ID" => $arContactsID] ], function ($result) use ($obB24App, &$arContacts) { // save first page foreach ($result['result'] as $contact) { $arContacts[$contact['ID']] = $contact; } // add calls for subsequent pages for ($i = $result['next']; $i < $result['total']; $i += $result['next']) { $obB24App->addBatchCall('crm.contact.list', [ 'start' => $i, 'select' => ['ID', 'NAME', 'LAST_NAME'], 'order' => ['ID' => 'ASC'], 'filter' => ["ID" => $arContactsID] ], function ($result) use (&$arContacts) { // save subsequent page foreach ($result['result'] as $contact) { $arContacts[$contact['ID']] = $contact; } }); } }); $obB24App->processBatchCalls(); print_r($arContacts);
bitrix24 rest api mesilov sdk batch get contacts example

Пример batch запроса для выборки полного списка контактов CRM. Если вам требуется собрать все контакты црм битрикс24, а их у вас больше 50, смело используйте метод batch. Пример представлен на основе sdk для битрикс24 от Месилова Максима. Ссылка на репозиторий: https://github.com/mesilov/bitrix24-php-sdk. Устанавливаем и подключаем sdk, заполняем данные приложения б24: id, secret, токены, домен. Далее выполняем батч запрос. Преимущество батч в том, что методом батч мы собираем все нужные запросы в пачку и отправляем их как один запрос. Давайте посчитаем, у нас 900 контактов, по простому мы бы выполнили 900/50 = 18 запросов, вместо этого батч выполнить один запрос вместо 18. В батч помечащется так же 50 запросов, то есть если контактов больше 2500, необходимо больше 1 батч запроса. Разница во времени выполнения таких запросов большая. Пользуйтесь на здоровье.