Dla agentów AI: markdown tej strony — /docs-content-en/entities/catalog-price-types.md indeks dokumentacji — /llms.txt
Artykuły dokumentacji są obecnie dostępne w języku angielskim.
Catalog price types
Price types of your Bitrix24 account: list, retrieve and filter. A price type is what catalog prices pass in the catalogGroupId field. Price types are read-only: they are configured in the Bitrix24 interface.
Bitrix24 API: catalog.priceType.*
Scope: catalog
List price types
GET /v1/catalog-price-types
Returns the price types configured in your Bitrix24 account, with filtering, sorting and field selection.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit |
number | 50 |
Number of records (up to 5000). With limit > 50 the response is assembled automatically from several Bitrix24 pages |
offset |
number | 0 |
Skip N records. Together with limit it defines the selection window |
select |
string | — | Field selection: ?select=id,name,base. Only the listed fields are returned |
sort |
string | — | Sort field. The - prefix means descending: ?sort=-sort. The same sort in the long form: ?order[sort]=desc |
filter |
object | — | Filtering by the fields of GET /v1/catalog-price-types/fields.Filtering syntax. Example: ?filter[base]=Y |
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/catalog-price-types" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/catalog-price-types" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-price-types', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data, meta } = await res.json()
const basePriceType = data.find(t => t.base === 'Y')
console.log('catalogGroupId of the base price:', basePriceType.id)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/catalog-price-types', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data, meta } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data |
array | Array of price types (all fields — see Price type fields) |
meta.total |
number | Total number of price types matching the filter |
meta.hasMore |
boolean | Whether more records exist beyond limit |
Response example
The response to GET /v1/catalog-price-types?limit=2 — two of the five price types configured on the account:
{
"success": true,
"data": [
{
"base": "Y",
"createdBy": 1,
"dateCreate": "2020-04-22T05:37:42.000Z",
"id": 1,
"modifiedBy": 1,
"name": "BASE",
"sort": 100,
"timestampX": "2024-10-22T04:31:37.000Z",
"xmlId": "BASE"
},
{
"base": "N",
"createdBy": 29,
"dateCreate": "2021-04-20T12:56:47.000Z",
"id": 3,
"modifiedBy": 1,
"name": "2base",
"sort": 100,
"timestampX": "2024-10-22T04:31:36.000Z",
"xmlId": null
}
],
"meta": {
"total": 5,
"hasMore": true
}
}
The numbers in the example come from one specific account. On yours they will differ: detect the base type by base: "Y", not by the value of id.
Error response example
400 — filtering by a field that does not exist:
{
"success": false,
"error": {
"code": "UNKNOWN_FILTER_FIELD",
"message": "Unknown filter field 'nonExistentField' for entity 'catalog-price-types'. Available: id, name, base, xmlId, sort, createdBy, modifiedBy, dateCreate, timestampX"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | UNKNOWN_FILTER_FIELD |
Filtering by a field a price type does not have. The message lists the available fields |
| 400 | UNKNOWN_SORT_FIELD |
Sorting by a field a price type does not have |
| 422 | BITRIX_ERROR |
Bitrix24 refused to read price types: the key owner has no portal administrator rights |
| 403 | SCOPE_DENIED |
The API key does not carry the catalog scope |
| 401 | MISSING_API_KEY |
The X-Api-Key header is missing |
| 429 | RATE_LIMITED |
Rate limit exceeded: 300 requests per minute per portal, all API keys of the portal share one limit. The exact value arrives in the x-ratelimit-limit header (the cap is divided across replicas). Retry after the delay in the Retry-After header |
The full list of common API errors — Errors.
Known specifics
There is exactly one base price type. The filter ?filter[base]=Y returns a single record — its id is the catalogGroupId of the base price for POST /v1/catalog-prices.
The method requires administrator rights. The catalog scope is not enough: Bitrix24 returns price types only to a key whose owner has the Bitrix24 account administrator role. Otherwise a 422 BITRIX_ERROR arrives with a Bitrix24 message about insufficient rights.
Paging through offset is supported. Vibecode returns the requested window [offset, offset + limit): meta.total is the exact number of records matching the filter, meta.hasMore tells whether records exist beyond the window.
When to use search instead of list: for conditions over several fields, POST /v1/catalog-price-types/search is more convenient — the filter travels in the request body.