For AI agents: markdown of this page — /docs-content-en/entities/shipments/list.md documentation index — /llms.txt
List shipments
GET /v1/shipments
Returns a list of online store order shipments with support for filtering, sorting, and automatic pagination.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
Parameterlimit (query) |
Typenumber | Default50 |
DescriptionNumber of records, from 1 to 5000. A value above 5000 is reduced to 5000 without an error |
Parameteroffset (query) |
Typenumber | Default0 |
DescriptionSkip N records: offset=7 starts the selection at the 8th record |
Parameterselect (query) |
Typestring | Default— | DescriptionComma-separated field selection: ?select=id,orderId,deducted,trackingNumber. An unknown field does not cause an error: it is absent from the data items, and meta.warnings carries an UNKNOWN_SELECT_FIELD warning with the field name in field |
Parametersort (query) |
Typestring | Default— | DescriptionSorting via the short syntax: ?sort=-id, where a leading minus means descending order |
Parameterorder (query) |
Typeobject | Default— | DescriptionSorting: ?order[id]=desc |
Parameterfilter (query) |
Typeobject | Default— | DescriptionFiltering by the fields from GET /v1/shipments/fields.Filtering syntax. Example: ?filter[orderId]=1027 |
ParameterwithTotal (query) |
Typestring | Default— | DescriptionWhether to return the record count in meta.total: true or false. Details — Paging and record counts |
Pagination. With limit > 50, Vibecode assembles the response from several sequential reads of 50 records each and returns all records in one response. meta.hasMore shows whether more records follow.
Examples
curl — personal key
curl -g "https://vibecode.bitrix24.com/v1/shipments?select=id,orderId,deducted,trackingNumber&filter[orderId]=1027" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -g "https://vibecode.bitrix24.com/v1/shipments?select=id,orderId,deducted,trackingNumber&filter[orderId]=1027" \
-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/shipments?select=id,orderId,deducted,trackingNumber&filter[orderId]=1027', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data, meta } = await res.json()
console.log(`Shipments in the order: ${data.length}`)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/shipments?select=id,orderId,deducted,trackingNumber&filter[orderId]=1027', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data, meta } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata |
Typearray | DescriptionArray of shipments. All fields — Shipment fields |
Fieldmeta.total |
Typenumber | DescriptionTotal number of records matching the filter. May be absent — see the withTotal parameter |
Fieldmeta.hasMore |
Typeboolean | DescriptionWhether there are more records beyond limit |
Fieldmeta.warnings |
Typearray | DescriptionWarnings about request parameters: code, message, field. Present only when there are warnings |
Fieldmeta.pageErrorSample |
Typeobject | DescriptionCode and text of the error that stopped automatic pagination early. data then contains the records up to the stopping point |
Response example
A request with select returns only the listed fields:
{
"success": true,
"data": [
{
"id": 1205,
"orderId": 1027,
"deducted": false,
"trackingNumber": "VIBE-DOC-1"
}
],
"meta": {
"total": 1,
"hasMore": false
}
}
Error response example
400 — filter by a nonexistent field:
{
"success": false,
"error": {
"code": "UNKNOWN_FILTER_FIELD",
"message": "Unknown filter field 'foo' for entity 'shipments'. Available: accountNumber, allowDelivery, basePriceDelivery, canceled, comments, companyId, currency, customPriceDelivery, dateAllowDelivery, dateCanceled, dateDeducted, dateInsert, dateMarked, dateResponsibleId, deducted, deliveryDocDate, deliveryDocNum, deliveryId, deliveryName, deliveryXmlId, discountPrice, empAllowDeliveryId, empCanceledId, empDeductedId, empMarkedId, empResponsibleId, externalDelivery, id, id1c, marked, orderId, priceDelivery, reasonMarked, reasonUndoDeducted, responsibleId, statusId, statusXmlId, system, trackingDescription, trackingLastCheck, trackingNumber, trackingStatus, updated1c, version1c, xmlId, shipmentItems"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeUNKNOWN_FILTER_FIELD |
DescriptionFilter by a field that is not in the schema. Field list: GET /v1/shipments/fields |
| HTTP400 | CodeINVALID_FILTER_FIELD |
DescriptionThe field name in the filter starts with the unsupported prefix @ or !@ |
| HTTP400 | CodeINVALID_FILTER_OPERATOR |
DescriptionUnknown filter operator, or the logical condition $or, which cannot be expressed in a query string |
| HTTP400 | CodeINVALID_FILTER |
DescriptionThe filter parameter is neither an object nor a JSON string, or one request mixes both filter notations |
| HTTP400 | CodeINVALID_DUPLICATE_FILTER_FIELD |
DescriptionTwo filter conditions reduce to one Bitrix24 condition, for example $ne and != on the same field. Pass only one of them |
| HTTP400 | CodeUNKNOWN_SORT_FIELD |
DescriptionSorting by a field that is not in the schema or cannot be sorted on |
| HTTP400 | CodeINVALID_SORT_DIRECTION |
DescriptionThe direction in order is not one of asc, desc, ASC, DESC, 1, -1 |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the sale scope |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is missing |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
| HTTP429 | CodeRATE_LIMITED |
DescriptionRate limit exceeded: 300 requests per minute per portal. All API keys of the portal share one limit. The current limit is returned in the x-ratelimit-limit header. Retry after the delay in the Retry-After header |
For the full list of common API errors, see Errors.
Known specifics
The list has no shipment items. The data items do not contain the shipmentItems field. The shipment contents are returned by GET /v1/shipments/:id.
When to use search instead of list: POST /v1/shipments/search passes parameters in the request body rather than the query string, and splits the selection into time windows when filtering by a date range wider than 14 days.