Получить список типов ресурсов booking.v1.resourceType.list

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

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

Scope: booking

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

Метод booking.v1.resourceType.list возвращает список типов ресурсов по фильтру. За один вызов приходит одна страница — до 50 типов.

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

Все параметры необязательные. Без параметров приходит первая страница всех типов ресурсов.

Название
тип

Описание

filter
object

Объект для фильтрации списка типов ресурсов в формате {"field_1": "value_1", ... "field_N": "value_N"}, где

  • field_N — поле типа ресурса для фильтра
  • value_N — значение поля

Условия фильтра объединяются логическим И. Поля, которых нет в списке ниже, метод игнорирует без ошибки

order
object

Объект для сортировки списка типов ресурсов в формате {"field_1": "value_1", ... "field_N": "value_N"}, где

  • field_N — поле типа ресурса для сортировки
  • value_N — направление сортировки

Направление сортировки может принимать значения:

  • asc — по возрастанию
  • desc — по убыванию

Регистр значения не важен. Если параметр не передан, порядок записей не гарантирован — задавайте сортировку явно

start
integer

Параметр для управления постраничной навигацией.

Размер страницы результатов всегда фиксированный: 50 записей.

Чтобы выбрать вторую страницу результатов, передайте значение 50, чтобы выбрать третью — 100 и так далее.

Формула расчета значения параметра start:

start = (N-1) * 50, где N — номер нужной страницы.

Значение, не кратное 50, округляется вниз до границы страницы: при start от 1 до 49 придет первая страница.

Значение -1 отключает подсчет навигации — поля total в ответе не будет.

Значение по умолчанию — 0

Метод распознает названия параметров и полей только в том виде, в каком они приведены в таблицах: записи FILTER или SEARCH_QUERY он игнорирует.

Параметры filter

Название
тип

Описание

searchQuery
string

Поисковый запрос. Метод ищет по подстроке в названии типа ресурса без учета регистра

moduleId
string

Идентификатор модуля, которому принадлежит тип ресурса. У типов, созданных через REST, значение booking.

Без этого фильтра метод возвращает типы всех модулей

name
string

Название типа ресурса. Метод ищет по полному совпадению

code
string

Символьный код типа ресурса. Метод ищет по полному совпадению

Фильтр по идентификатору метод не поддерживает: чтобы получить один тип по id, используйте booking.v1.resourceType.get. Операторы сравнения, например %name, метод тоже не поддерживает.

Параметры order

Название
тип

Описание

id
string

Сортировка по идентификатору

name
string

Сортировка по названию

code
string

Сортировка по коду

Примеры кода

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

curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":{"moduleId":"booking"},"order":{"id":"ASC","name":"DESC","code":"DESC"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/booking.v1.resourceType.list
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"filter":{"moduleId":"booking"},"order":{"id":"ASC","name":"DESC","code":"DESC"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/booking.v1.resourceType.list
// Сниппет — ES-модуль: для top-level await нужен type="module" или сборщик
// $b24 — уже инициализированный экземпляр SDK, смотрите руководство по началу работы с SDK
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

// Структура данных в result — совпадает с разделом «Обработка ответа» этой страницы
type ResourceTypeResult = {
  resourceType: ResourceType[]
}

type ResourceType = {
  cancellationNotificationDelay: number | null
  code: string | null
  confirmationCounterDelay: number | null
  confirmationNotificationDelay: number | null
  confirmationNotificationRepetitions: number | null
  confirmationNotificationRepetitionsInterval: number | null
  delayedCounterDelay: number | null
  delayedNotificationDelay: number | null
  id: number
  infoNotificationDelay: number | null
  isCancellationNotificationOn: string
  isConfirmationNotificationOn: string
  isDelayedNotificationOn: string
  isFeedbackNotificationOn: string
  isInfoNotificationOn: string
  isReminderNotificationOn: string
  name: string | null
  reminderNotificationDelay: number | null
  senderCode: string | null
  templateTypeConfirmation: string
  templateTypeDelayed: string
  templateTypeFeedback: string
  templateTypeReminder: string
}

try {
  // Списочные обертки callList.make() и fetchList.make() для этого метода не подходят:
  // они листают по курсору '>id', а фильтр по id и операторы метод не поддерживает.
  // Следующие страницы запрашивайте через call.make() с start: 50, 100 и так далее
  const response = await $b24.actions.v2.call.make<ResourceTypeResult>({
    method: 'booking.v1.resourceType.list',
    params: {
      filter: {
        moduleId: 'booking',
      },
      order: {
        id: 'ASC',
        name: 'DESC',
        code: 'DESC',
      },
    },
    requestId: Text.getUuidRfc4122()
  })

  // Данные доступны только при успешном ответе
  if (!response.isSuccess) {
    console.error(response.getErrorMessages().join('; '))
  } else {
    const result = response.getData()!.result
    console.info('Типы ресурсов:', result.resourceType.length, result.resourceType)
  }
} catch (error) {
  // Возникает при ошибках транспорта или SDK: AjaxError, SdkError и других
  console.error(error)
}
<!-- Подключаем SDK в UMD-сборке, он доступен как глобальный объект B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
  async function listResourceTypes() {
    try {
      // Инициализируем SDK внутри фрейма Битрикс24
      const $b24 = await B24Js.initializeB24Frame()

      // Списочные обертки callList.make() и fetchList.make() для этого метода не подходят:
      // они листают по курсору '>id', а фильтр по id и операторы метод не поддерживает.
      // Следующие страницы запрашивайте через call.make() с start: 50, 100 и так далее
      const response = await $b24.actions.v2.call.make({
        method: 'booking.v1.resourceType.list',
        params: {
          filter: {
            moduleId: 'booking',
          },
          order: {
            id: 'ASC',
            name: 'DESC',
            code: 'DESC',
          },
        },
        requestId: B24Js.Text.getUuidRfc4122()
      })

      // Данные доступны только при успешном ответе
      if (!response.isSuccess) {
        console.error(response.getErrorMessages().join('; '))
        return
      }

      const result = response.getData().result
      console.info('Типы ресурсов:', result.resourceType.length, result.resourceType)
    } catch (error) {
      // Возникает при ошибках транспорта или SDK: AjaxError, SdkError и других
      console.error(error)
    }
  }

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

try:
    bitrix_response = client.booking.v1.resource_type.list(
        filter={
            "moduleId": "booking",
        },
        order={
            "id": "ASC",
            "name": "DESC",
            "code": "DESC",
        },
    ).response
    result = bitrix_response.result
    print(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(
            'booking.v1.resourceType.list',
            [
                'filter' => [
                    'moduleId'    => 'booking',
                ],
                'order'  => [
                    'id'   => 'ASC',
                    'name' => 'DESC',
                    'code' => 'DESC',
                ],
            ]
        );

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

    if ($result->error()) {
        error_log($result->error());
        echo 'Error: ' . $result->error();
    } else {
        echo 'Success: ' . print_r($result->data(), true);
    }

} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error listing resource types: ' . $e->getMessage();
}
BX24.callMethod(
    "booking.v1.resourceType.list",
    {
        filter: {
                "moduleId": "booking"
    },
    order: {
            id: "ASC",
            name: "DESC",
            code: "DESC"
        }
    },
    result => {
        if (result.error())
            console.error(result.error());
        else
            console.dir(result.data());
    }
);
require_once('crest.php');

$result = CRest::call(
    'booking.v1.resourceType.list',
    [
        'filter' => [
            'moduleId' => 'booking'
        ],
        'order' => [
            'id' => 'ASC',
            'name' => 'DESC',
            'code' => 'DESC'
        ]
    ]
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "booking.v1.resourceType.list", b24.Params{
	"filter": b24.Params{
		"moduleId": "booking",
	},
	"order": b24.Params{
		"id":   "ASC",
		"name": "DESC",
		"code": "DESC",
	},
}, b24.WithIdempotent())
if err != nil {
	return fmt.Errorf("booking.v1.resourceType.list: %w", err)
}

// Ответ приходит как json.RawMessage — разберите его
// в структуру под форму ответа, показанную ниже на этой странице.
fmt.Printf("%s\n", res.Result)

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

HTTP-статус: 200

{
    "result": {
        "resourceType": [
            {
                "cancellationNotificationDelay": 600,
                "code": "equipment",
                "confirmationCounterDelay": 10800,
                "confirmationNotificationDelay": 86400,
                "confirmationNotificationRepetitions": null,
                "confirmationNotificationRepetitionsInterval": 10800,
                "delayedCounterDelay": 300,
                "delayedNotificationDelay": 300,
                "id": 3,
                "infoNotificationDelay": null,
                "isCancellationNotificationOn": "Y",
                "isConfirmationNotificationOn": "Y",
                "isDelayedNotificationOn": "Y",
                "isFeedbackNotificationOn": "N",
                "isInfoNotificationOn": "Y",
                "isReminderNotificationOn": "Y",
                "name": "Оборудование",
                "reminderNotificationDelay": -1,
                "senderCode": null,
                "templateTypeConfirmation": "inanimate",
                "templateTypeDelayed": "inanimate",
                "templateTypeFeedback": "inanimate",
                "templateTypeReminder": "base"
            },
            {
                "cancellationNotificationDelay": 600,
                "code": "expert",
                "confirmationCounterDelay": 10800,
                "confirmationNotificationDelay": 86400,
                "confirmationNotificationRepetitions": null,
                "confirmationNotificationRepetitionsInterval": 10800,
                "delayedCounterDelay": 300,
                "delayedNotificationDelay": 300,
                "id": 5,
                "infoNotificationDelay": null,
                "isCancellationNotificationOn": "Y",
                "isConfirmationNotificationOn": "Y",
                "isDelayedNotificationOn": "Y",
                "isFeedbackNotificationOn": "N",
                "isInfoNotificationOn": "Y",
                "isReminderNotificationOn": "Y",
                "name": "Специалист",
                "reminderNotificationDelay": -1,
                "senderCode": null,
                "templateTypeConfirmation": "inanimate",
                "templateTypeDelayed": "inanimate",
                "templateTypeFeedback": "inanimate",
                "templateTypeReminder": "base"
            }
        ]
    },
    "total": 0,
    "time": {
        "start": 1746540454.261779,
        "finish": 1746540454.303483,
        "duration": 0.04170393943786621,
        "processing": 0.009412050247192383,
        "date_start": "2025-05-06T17:07:34+03:00",
        "date_finish": "2025-05-06T17:07:34+03:00",
        "operating_reset_at": 1746541054,
        "operating": 0
    }
}

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

Название
тип

Описание

result
object

Корневой элемент ответа. Содержит единственное поле resourceType — массив объектов с информацией о типах ресурсов, структура объекта описана ниже

total
integer

Служебное поле. Метод всегда возвращает 0, поля next в ответе нет — ориентироваться на них при обходе страниц нельзя

time
time

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

Признак последней страницы — в ответе меньше 50 записей.

Тип ресурса

Числовые и строковые поля возвращаются как null, если значение не задано. Например, при задержке уведомления 0 в ответе придет null. Флаги is* и поля templateType* приходят заполненными всегда.

Название
тип

Описание

cancellationNotificationDelay
integer

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

code
string

Символьный код типа ресурса. Уникален в пределах модуля

confirmationCounterDelay
integer

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

confirmationNotificationDelay
integer

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

confirmationNotificationRepetitions
integer

Количество сообщений, которые приходят клиенту для подтверждения записи, без учета первого

confirmationNotificationRepetitionsInterval
integer

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

delayedCounterDelay
integer

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

delayedNotificationDelay
integer

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

id
integer

Идентификатор типа ресурса

infoNotificationDelay
integer

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

isCancellationNotificationOn
string

Сообщение клиенту после отмены записи. Возможные значения:

  • Y — включено
  • N — выключено

isConfirmationNotificationOn
string

Сообщение клиенту с запросом подтвердить запись. Возможные значения:

  • Y — включено
  • N — выключено

isDelayedNotificationOn
string

Напоминание, когда клиент опаздывает. Возможные значения:

  • Y — включено
  • N — выключено

isFeedbackNotificationOn
string

Запрос обратной связи. Возможные значения:

  • Y — включено
  • N — выключено

isInfoNotificationOn
string

Сообщение клиенту о записи. Возможные значения:

  • Y — включено
  • N — выключено

isReminderNotificationOn
string

Напоминание о записи. Возможные значения:

  • Y — включено
  • N — выключено

name
string

Название типа ресурса

reminderNotificationDelay
integer

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

Значение -1 — напоминание приходит утром в день записи

senderCode
string

Код сервиса, который отправляет клиенту сообщения. Возможные значения:

  • bitrix24 — уведомления Битрикс24
  • ai_call — звонок AI-агента

templateTypeConfirmation
string

Тип шаблона сообщения о подтверждении записи. Возможные значения:

  • inanimate — шаблон для бронирования оборудования и помещений
  • animate — шаблон для записи к специалистам
  • inanimate_long — шаблон для многодневного бронирования

templateTypeDelayed
string

Тип шаблона сообщения об опоздании. Возможные значения:

  • inanimate — шаблон для бронирования оборудования и помещений
  • animate — шаблон для записи к специалистам

templateTypeFeedback
string

Тип шаблона сообщения для запроса обратной связи. Возможные значения:

  • inanimate — шаблон для бронирования оборудования и помещений
  • animate — шаблон для записи к специалистам

templateTypeReminder
string

Тип шаблона сообщения для напоминания. Единственное значение — base

Тип ресурса не возвращает поле templateTypeInfo: через REST шаблон сообщения о записи у типа ресурса недоступен. У самого ресурса это поле есть — смотрите booking.v1.resource.get.

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

HTTP-статус: 400

{
    "error": "100",
    "error_description": "Invalid value {ASC} to match with parameter {order}. Should be value of type array."
}

Название
тип

Описание

error
string

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

error_description
string

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

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

Код

Описание

Значение

100

Invalid value {value} to match with parameter {order}. Should be value of type array.

В параметр order передан не объект

100

Invalid value {value} to match with parameter {filter}. Should be value of type array.

В параметр filter передан не объект

100

Invalid order "XXX"

В параметре order передано направление сортировки, отличное от asc и desc

0

Booking tool is disabled. Please contact your administrator.

В настройках Битрикс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

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

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