For AI agents: markdown of this page — /docs-content-en/entities/basket-item-properties/list.md documentation index — /llms.txt
List basket item properties
GET /v1/basket-item-properties
Returns basket item properties with filtering, sorting and automatic pagination. To get the properties of one item, filter by its identifier.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
filter |
object | — | Filter by the fields from GET /v1/basket-item-properties/fields: id, basketId, name, value, code, sort, xmlId.Filtering syntax. Example: ?filter[basketId]=9. Source of basketId: GET /v1/basket-items |
select |
string | — | Comma-separated fields: ?select=id,basketId,value. An unknown name does not cause an error and is reported in meta.warnings with the code UNKNOWN_SELECT_FIELD |
sort |
string | — | Sorting in short syntax: ?sort=-id, a minus means descending |
order |
object | — | Sorting as an object: ?order[id]=desc |
limit |
number | 50 |
Number of records, from 1 to 5000 |
offset |
number | 0 |
Number of records to skip |
withTotal |
string | — | Accepted as true or false, but for basket item properties it changes neither the count nor the presence of meta.total |
Pagination. With limit > 50, Vibecode automatically reads several pages of 50 records and merges them into one response. For the next batch, increase offset by the number of records received. Continue while meta.hasMore is true.
Examples
curl — personal key
curl -g "https://vibecode.bitrix24.com/v1/basket-item-properties?filter[basketId]=9" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -g "https://vibecode.bitrix24.com/v1/basket-item-properties?filter[basketId]=9" \
-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/basket-item-properties?filter[basketId]=9', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data, meta } = await res.json()
console.log(`Item properties: ${meta.total}`)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/basket-item-properties?filter[basketId]=9', {
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 basket item properties |
data[].id |
number | Property ID |
data[].basketId |
number | Basket item ID. Source: GET /v1/basket-items |
data[].name |
string | Property name |
data[].value |
string | null | Property value |
data[].code |
string | null | Property symbolic code |
data[].sort |
number | Sort order of the property within the item |
data[].xmlId |
string | null | External ID |
meta.total |
number | Total number of properties matching the filter |
meta.hasMore |
boolean | Whether there are records beyond the current batch |
meta.warnings |
array | Parameter warnings, with the fields code, message, field. Present only when there are warnings |
Response example
{
"success": true,
"data": [
{
"basketId": 9,
"code": "CATALOG.XML_ID",
"id": 17,
"name": "Catalog XML_ID",
"sort": 100,
"value": "FUTURE-ERP-CATALOG",
"xmlId": "bx_5fc9f8c57ff3e"
},
{
"basketId": 9,
"code": "PRODUCT.XML_ID",
"id": 19,
"name": "Product XML_ID",
"sort": 100,
"value": "1000000475",
"xmlId": "bx_5fc9f8c57ffb2"
}
],
"meta": {
"total": 2,
"hasMore": false
}
}
Error response example
400 — filter by an unknown field:
{
"success": false,
"error": {
"code": "UNKNOWN_FILTER_FIELD",
"message": "Unknown filter field 'foo' for entity 'basket-item-properties'. Available: id, basketId, name, value, code, sort, xmlId"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 400 | UNKNOWN_FILTER_FIELD |
Filter by a field that is not in the schema. The message lists the available fields |
| 400 | INVALID_FILTER_OPERATOR |
Unknown operator in a filter condition. The message lists the supported ones |
| 400 | INVALID_FILTER |
filter is written neither in brackets nor as a JSON object, one request mixes both forms, or the condition could not be applied |
| 400 | UNKNOWN_SORT_FIELD |
Sorting by a field that is not in the schema |
| 400 | INVALID_SORT_DIRECTION |
The direction in the sort object is not one of asc, desc, ASC, DESC |
| 403 | SCOPE_DENIED |
The API key does not have the sale scope |
| 401 | MISSING_API_KEY |
The X-Api-Key header is missing |
| 401 | TOKEN_MISSING |
No Bitrix24 access tokens are configured |
| 429 | RATE_LIMITED |
Request limit exceeded. The exact value is in the x-ratelimit-limit header. Retry after the time in the Retry-After header |
Full list of common API errors — Error codes.
Known specifics
Properties of all items in an order. Properties have no order filter. First get the IDs of the order items: GET /v1/basket-items with the filter ?filter[orderId]=33&select=id, where orderId comes from GET /v1/orders. Then pass them as a list: ?filter[basketId][]=9&filter[basketId][]=1005.
Nonexistent item. A filter by the basketId of an item that does not exist in the Bitrix24 account returns an empty data with meta.total equal to 0, not an error.