Получить конфигурацию подключения к серверам Push&Pull pull.application.config.get

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: pull

Кто может выполнять метод: любой пользователь, авторизованный в приложении

Метод pull.application.config.get возвращает конфигурацию подключения к серверам Push&Pull для текущего приложения.

Метод работает только в контексте приложения. Запрос выполняется с OAuth-токеном приложения и scope pull, а вебхук такой контекст не создает.

По ответу метода клиент собирает адрес подключения. Адрес сервера берется из server.websocket_secure или server.long_pooling_secure, а идентификаторы каналов — из channels.private.id и channels.shared.id, и подставляются в адрес именно в этом порядке. Как из них собрать адрес вручную, описано в статье Собственный Push&Pull клиент; в браузере это делает штатный клиент — Push&Pull в браузере.

Конфигурация персональна: channels.private и publicChannels принадлежат тому пользователю, чьим токеном выполнен запрос. Одну конфигурацию нельзя раздать нескольким пользователям — запрашивайте ее для каждого отдельно.

Отслеживайте время end каждого канала и поле exp в ответе. Когда срок истекает, запрашивайте конфигурацию заново. Если поля exp в ответе нет, ориентируйтесь на end канала.

Параметры метода

Обязательные параметры отмечены *

Обязательных параметров у метода нет.

Название
тип

Описание

CACHE
string

Признак использования кеша:

  • N — не использовать кеш
  • любое другое значение — использовать кеш

По умолчанию — использовать кеш.

В текущей версии Битрикс24 параметр на выдачу конфигурации не влияет: кеш используется всегда

REOPEN
string

Признак выдачи нового канала, если срок действия текущего истек:

  • N — не выдавать
  • любое другое значение — выдавать

По умолчанию — выдавать.

В текущей версии Битрикс24 параметр на выдачу конфигурации не влияет: канал с истекшим сроком выдается заново всегда

Примеры кода

Как использовать примеры в документации

Пример получения конфигурации Push&Pull для приложения. Метод вызывается без параметров.

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "auth": "**put_access_token_here**"
  }' \
  "https://**put.your-domain-here**/rest/pull.application.config.get.json"
// 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

try {
  const response = await $b24.actions.v2.call.make<Record<string, any>>({
    method: 'pull.application.config.get',
    params: {},
    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('Push&Pull config:', result)
  }
} 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 getApplicationPullConfig() {
    try {
      // Initialize the SDK inside a Bitrix24 frame
      const $b24 = await B24Js.initializeB24Frame()

      const response = await $b24.actions.v2.call.make({
        method: 'pull.application.config.get',
        params: {},
        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('Push&Pull config:', result)
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  }

  document.addEventListener('DOMContentLoaded', getApplicationPullConfig)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.pull.application.config.get().response
    print(bitrix_response.result)
except BitrixAPIError as error:
    print(
        "Ошибка Bitrix API",
        f"error: {error.error}",
        f"error_description: {error.error_description}",
        sep="\n",
    )
except BitrixSDKException as error:
    print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
    print(f"Непредвиденная ошибка: {error}")
try {
    $response = $b24Service
        ->core
        ->call('pull.application.config.get');

    $result = $response
        ->getResponseData()
        ->getResult();

    echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error getting pull config: ' . $e->getMessage();
}
BX24.callMethod(
    'pull.application.config.get',
    {},
    function(result)
    {
        if (result.error())
        {
            console.error(result.error());
        }
        else
        {
            console.info(result.data());
        }
    }
);
$result = CRest::call('pull.application.config.get');

echo '<pre>';
print_r($result);
echo '</pre>';

Обработка ответа

HTTP-статус: 200

{
    "result": {
        "server": {
            "version": 4,
            "server_enabled": true,
            "mode": "personal",
            "hostname": "your-portal.bitrix24.ru",
            "long_polling": "https://rtc-**.bitrix24.com/sub2/",
            "long_pooling_secure": "https://rtc-**.bitrix24.com/sub2/",
            "websocket_enabled": true,
            "websocket": "wss://rtc-**.bitrix24.com/subws2/",
            "websocket_secure": "wss://rtc-**.bitrix24.com/subws2/",
            "publish_enabled": true,
            "publish": "https://rtc-**.bitrix24.com/rest/",
            "publish_secure": "https://rtc-**.bitrix24.com/rest/",
            "config_timestamp": 1774886062
        },
        "api": {
            "revision_web": 19,
            "revision_mobile": 3
        },
        "channels": {
            "shared": {
                "id": "***masked***",
                "start": "2026-03-31T17:05:18+03:00",
                "end": "2026-04-01T05:05:23+03:00",
                "type": "shared"
            },
            "private": {
                "id": "***masked***",
                "public_id": "***masked***",
                "start": "2026-03-31T17:05:18+03:00",
                "end": "2026-04-01T05:05:23+03:00",
                "type": "private"
            }
        },
        "exp": 1775052318,
        "publicChannels": {
            "577": {
                "user_id": 577,
                "public_id": "***masked***",
                "signature": "***masked***",
                "start": "2026-03-31T10:06:39+03:00",
                "end": "2026-03-31T22:06:44+03:00"
            }
        }
    },
    "time": {
        "start": 1774965918,
        "finish": 1774965918.322255,
        "duration": 0.32225489616394043,
        "processing": 0,
        "date_start": "2026-03-31T17:05:18+03:00",
        "date_finish": "2026-03-31T17:05:18+03:00",
        "operating_reset_at": 1774966518,
        "operating": 0
    }
}

Если Битрикс24 работает на общем сервере Push&Pull, в result дополнительно приходит clientId. В примере показаны только отличия от ответа выше:

{
    "result": {
        "server": {
            "mode": "shared",
            "version": 4
        },
        "clientId": "***masked***"
    }
}

Возвращаемые данные

Название
тип

Описание

result
object

Объект формата:

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

где:

  • field_n — поле объекта result
  • value_n — значение поля result

Поля объекта result(подробное описание)

time
time

Информация о времени выполнения запроса

Объект result

Состав полей зависит от настроек сервера Push&Pull — поля exp, clientId и jwt приходят не всегда.

Название
тип

Описание

server
object

Параметры сервера Push&Pull подробнее

api
object

Ревизии протокола Push&Pull. По ним клиент проверяет, совместима ли его версия библиотеки с сервером:

  • revision_web integer — ревизия для браузерного клиента
  • revision_mobile integer — ревизия для мобильного клиента

channels
object

Каналы приложения.

Содержит два канала: shared — общий канал приложения, private — личный канал пользователя, от чьего имени выполнен запрос.

Поля канала — (подробное описание). Порядок, в котором идентификаторы каналов подставляют в адрес подключения, описан в статье Собственный Push&Pull клиент

exp
integer

Срок действия конфигурации в формате Unix timestamp. В облачном Битрикс24 конфигурация действует 24 часа с момента запроса.

В коробочной версии поле приходит, если администратор задал этот срок. При версии сервера 5 и выше поле приходит всегда и совпадает со сроком действия jwt

publicChannels
object | boolean

Публичный идентификатор личного канала текущего пользователя. Это канал пользователя в Битрикс24, а не канал приложения.

Если версия сервера Push&Pull ниже 4, поле приходит со значением false.

Формат:

{
    "<user_id>": {
        "user_id": user_id,
        "public_id": "string",
        "signature": "string",
        "start": "datetime",
        "end": "datetime"
    }
}

где:

  • <user_id> — ключ объекта, идентификатор пользователя
  • user_id integer — идентификатор пользователя внутри объекта канала
  • public_id string — публичный идентификатор канала
  • signature string — подпись канала
  • start datetime — время выдачи канала
  • end datetime — время окончания работы канала

clientId
string

Публичный идентификатор Битрикс24 на общем сервере Push&Pull.

Возвращается, когда server.mode равен shared. В этом случае добавьте clientId в адрес подключения к серверу — Собственный Push&Pull клиент

jwt
string

Токен JWT для подключения к серверу. Когда он есть, каналы уже зашиты в токен и CHANNEL_ID в адрес подключения не передают — Собственный Push&Pull клиент.

Возвращается, когда server.version равен 5 или выше. На общем сервере Push&Pull токен не выдается, поэтому jwt и clientId в одном ответе не встречаются

Объект server

Название
тип

Описание

version
integer

Версия сервера Push&Pull. От нее зависят протокол подключения и формат работы с историей канала — подробности в статье Собственный Push&Pull клиент.

В режиме shared версия всегда равна 4. В режиме personal значение задает администратор, по умолчанию — 2

server_enabled
boolean

Признак доступности сервера. Если значение false, подключаться не к чему — Push&Pull в этом Битрикс24 не настроен

mode
string

Режим сервера:

  • personal — собственный сервер Push&Pull
  • shared — общий сервер Push&Pull

hostname
string

Домен Битрикс24

long_polling
string

URL long polling

long_pooling_secure
string

URL long polling для защищенного соединения.

Имя поля приходит из API с опечаткой — pooling вместо polling. Читайте его как есть, иначе разбор ответа сломается

websocket_enabled
boolean

Признак доступности websocket. Если значение false, подключайтесь по long polling

websocket
string

URL websocket

websocket_secure
string

URL websocket для защищенного соединения.

Параметры подключения передаются в адресе, поэтому подключайтесь по защищенному адресу. На общем сервере Push&Pull websocket и websocket_secure совпадают, на собственном их задает администратор

publish_enabled
boolean

Признак доступности publish API

publish
string

URL publish API

publish_secure
string

URL publish API для защищенного соединения

config_timestamp
integer

Метка версии конфигурации

Объект канала shared и private

Название
тип

Описание

id
string

Идентификатор канала

public_id
string

Публичный идентификатор канала.

У канала shared поле не возвращается. У канала private поле приходит пустой строкой, если версия сервера Push&Pull 3 или ниже

start
datetime

Время выдачи канала

end
datetime

Время окончания работы канала — через 12 часов после выдачи

type
string

Тип канала:

  • shared
  • private

Обработка ошибок

HTTP-статус: 403

{
    "error": "WRONG_AUTH_TYPE",
    "error_description": "Get access to application config available only for application authorization."
}

HTTP-статус: 500

{
    "error": "SERVER_ERROR",
    "error_description": "Push & Pull server is not configured"
}

Название
тип

Описание

error
string

Строковый код ошибки. Состоит из цифр, латинских букв и знака подчеркивания. Может прийти пустым — тогда причину показывает только error_description

error_description
string

Текст ошибки для разработчика. Не показывайте его конечному пользователю без обработки

Возможные коды ошибок

Статус

Код

Описание

Значение

403

WRONG_AUTH_TYPE

Get access to application config available only for application authorization.

Вызов метода не из контекста приложения, например, через вебхук

500

SERVER_ERROR

Push & Pull server is not configured

Сервер Push&Pull не настроен или выключен в Битрикс24

Статусы и коды системных ошибок

HTTP-статус: 4xx, 5xx

Описанные ниже ошибки возвращает сам REST API, а не логика конкретного метода. Они могут прийти в ответ на любой метод.

Статус

Код
Текст ошибки

Описание

500

INTERNAL_SERVER_ERROR
Internal server error

Возникла внутренняя ошибка сервера. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

500

ERROR_UNEXPECTED_ANSWER
Server returned an unexpected response

Сервер вернул неожиданный ответ. Повторите вызов, а если ошибка сохраняется, обратитесь к администратору сервера или в техническую поддержку Битрикс24

503

QUERY_LIMIT_EXCEEDED
Too many requests

Превышен лимит на интенсивность запросов

429

OPERATION_TIME_LIMIT
Method is blocked due to operation time limit

Метод заблокирован из-за превышения лимита на ресурсоемкость запросов. Блокировка снимается автоматически, когда накопленное время выполнения метода перестает превышать лимит

401

NO_AUTH_FOUND
Wrong authorization data

В запросе нет авторизационных данных: не передан ни access-токен, ни код вебхука

401

INVALID_REQUEST
Https required

Методы вызываются только по протоколу HTTPS

401

OVERLOAD_LIMIT
REST API is blocked due to overload

REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка. Чтобы ее снять, обратитесь в техническую поддержку Битрикс24

401

ACCESS_DENIED
REST is available only on commercial plans

REST API доступен только на коммерческих тарифах. У вебхука текст ошибки другой — REST is available only by subscription

401

INVALID_CREDENTIALS
Invalid request credentials

Не найден активный вебхук с указанным идентификатором пользователя и секретным кодом

404

ERROR_METHOD_NOT_FOUND
Method not found!

Метод с таким именем не найден. Имя написано с ошибкой, метода нет в REST API или он недоступен без нужного скоупа

401

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

Запрос требует более широких прав, чем есть у токена: у вебхука это выданные ему права, у приложения — скоуп. У приложения текст ошибки заканчивается на provided by the access token

401

expired_token
The access token provided has expired

Срок действия access-токена истек

401

user_access_error
The user does not have access to the application

Приложение установлено, но администратор Битрикс24 открыл доступ к нему только конкретным пользователям

403

PORTAL_DELETED
Portal was deleted

Публичная часть сайта закрыта. Чтобы открыть ее на коробочной установке, отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта

Продолжите изучение