For AI agents: markdown of this page — /docs-content-en/entities/booking-resource-types/list.md documentation index — /llms.txt
List: Booking resource types
GET /v1/booking-resource-types
Returns all booking resource types of the Bitrix24 account in one response, with filtering by code or name, and sorting.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Parameterfilter (query) |
Typestring | Requiredno | Default— | DescriptionJSON filter object. Fields: code — a string or an array of strings, name — exact name, searchQuery — part of the name. Example: ?filter={"code":["equipment","expert"]} |
Parameterorder (query) |
Typestring | Requiredno | Default{"id":"ASC"} |
DescriptionJSON object for sorting by id, name or code, with values ASC or DESC. Example: ?order={"name":"DESC"} |
Pagination. There is no pagination: the list returns all matching types in one response, up to 500. The limit and offset parameters are not accepted — a request with them is rejected with 400 INVALID_PARAMS. Pass filter and order URL-encoded, as in the examples.
Examples
curl — personal key
curl -G "https://vibecode.bitrix24.com/v1/booking-resource-types" \
-H "X-Api-Key: YOUR_API_KEY" \
--data-urlencode 'filter={"code":["equipment","expert"]}'
curl — OAuth application
curl -G "https://vibecode.bitrix24.com/v1/booking-resource-types" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
--data-urlencode 'filter={"code":["equipment","expert"]}'
JavaScript — personal key
const params = new URLSearchParams({
filter: JSON.stringify({ code: ['equipment', 'expert'] }),
})
const res = await fetch(`https://vibecode.bitrix24.com/v1/booking-resource-types?${params}`, {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data, meta } = await res.json()
console.log(meta.total, data.map((type) => type.code))
JavaScript — OAuth application
const params = new URLSearchParams({
filter: JSON.stringify({ code: ['equipment', 'expert'] }),
})
const res = await fetch(`https://vibecode.bitrix24.com/v1/booking-resource-types?${params}`, {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data, meta } = await res.json()
console.log(meta.total, data.map((type) => type.code))
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | Descriptiontrue on success |
Fielddata |
Typearray | DescriptionArray of type cards. The card fields are listed in the "Response fields" section of the Get a booking resource type page |
Fieldmeta.total |
Typenumber | DescriptionNumber of types in the response |
Fieldmeta.hasMore |
Typeboolean | DescriptionAlways false: the list arrives whole |
Response example
The main card fields are shown. The full set is on the Get a booking resource type page.
{
"success": true,
"data": [
{
"id": 3,
"code": "equipment",
"name": "Equipment",
"senderCode": null,
"isInfoNotificationOn": true,
"isConfirmationNotificationOn": true,
"isReminderNotificationOn": true,
"isFeedbackNotificationOn": false,
"isDelayedNotificationOn": true,
"isCancellationNotificationOn": true,
"templateTypeConfirmation": "inanimate"
},
{
"id": 5,
"code": "expert",
"name": "Expert",
"senderCode": null,
"isInfoNotificationOn": true,
"isConfirmationNotificationOn": true,
"isReminderNotificationOn": true,
"isFeedbackNotificationOn": false,
"isDelayedNotificationOn": true,
"isCancellationNotificationOn": true,
"templateTypeConfirmation": "animate"
}
],
"meta": {
"total": 2,
"hasMore": false
}
}
Error response example
400 — the filter field is not supported:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Unknown resource type filter"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
DescriptionA filter field is not one of the allowed fields. Message Unknown resource type filter |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionA filter field value is an object. Message Filter values must be scalars or scalar arrays |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionSorting by a field other than id, name or code, or in a direction other than ASC / DESC. Message Invalid resource type order |
| HTTP400 | CodeINVALID_PARAMS |
Descriptionfilter or order is not JSON. Message filter and order must be JSON objects |
| HTTP400 | CodeINVALID_PARAMS |
Descriptionfilter or order is JSON but not an object, for example an array. Message filter and order must be objects |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionA parameter other than filter and order is passed. Message Only filter and order are supported |
| HTTP400 | CodeINVALID_PARAMS |
DescriptionA parameter is passed twice. Message Repeated query parameters are not supported |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is not passed |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe key has no Bitrix24 tokens |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe key does not have the booking scope |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRequest rate exceeded. The effective cap is in the x-ratelimit-limit header |
| HTTP502 | CodeBITRIX_RESPONSE_INVALID |
DescriptionThe Bitrix24 account has more than 500 types, or Bitrix24 returned a list of an unexpected shape |
Full list of common API errors — Errors.
Known specifics
A filter by id does not work. The id field and uppercase field names, for example CODE, pass validation but do not filter records: the response contains all types of the Bitrix24 account. To get a single type by its identifier, call GET /v1/booking-resource-types/:id.
Built-in types. Besides the types created through the API, the list contains types that Bitrix24 creates on its own, for example equipment — "Equipment" and room — "Property".