For AI agents: markdown of this page — /docs-content-en/entities/shipment-items/fields.md documentation index — /llms.txt
Shipment item fields
GET /v1/shipment-items/fields
Returns the shipment item field schema — a reference for selecting and filtering fields and for the create and update bodies.
Examples
curl — personal key
curl "https://vibecode.bitrix24.com/v1/shipment-items/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl "https://vibecode.bitrix24.com/v1/shipment-items/fields" \
-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/shipment-items/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data } = await res.json()
console.log('Shipment item fields:', Object.keys(data.fields))
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/shipment-items/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.fields |
Typeobject | DescriptionField schema. The key is the field name, the value is the field description |
Fielddata.fields.<field>.type |
Typestring | DescriptionValue type: number, string, datetime |
Fielddata.fields.<field>.readonly |
Typeboolean | Descriptiontrue means the field is set by the system; passing it on create or update is rejected with 400 READONLY_FIELD |
Fielddata.fields.<field>.required |
Typeboolean | DescriptionPresent only on fields required at creation, always with the value true |
Fielddata.fields.<field>.readonlyOnUpdate |
Typeboolean | DescriptionPresent only on fields that are set at creation and cannot be changed on update, always with the value true. Passing such a field to PATCH /v1/shipment-items/:id is rejected with 400 READONLY_FIELD |
Fielddata.fields.<field>.label |
Typestring | DescriptionShort field name |
Fielddata.fields.<field>.description |
Typestring | DescriptionField explanation |
Fielddata.aggregatable |
Typearray | DescriptionFields allowed in shipment item aggregation: as the field of a numeric function and as a groupBy grouping field |
Fielddata.batch |
Typearray | DescriptionOperations available in batch operations on shipment items: create, update, delete |
Shipment item fields
The full set of fields returned by GET /v1/shipment-items/fields. The RO column marks read-only fields.
| Field | Type | RO | Description |
|---|---|---|---|
Fieldid |
Typenumber | ROyes | DescriptionShipment item ID |
FieldorderDeliveryId |
Typenumber | ROno | DescriptionShipment ID. List: GET /v1/shipments. Required at creation. Set only at creation: on update it is rejected with 400 READONLY_FIELD, marked readonlyOnUpdate in the schema |
FieldbasketId |
Typenumber | ROno | DescriptionID of a basket item of the same order. List: GET /v1/basket-items. Required at creation. Set only at creation: on update it is rejected with 400 READONLY_FIELD, marked readonlyOnUpdate in the schema |
Fieldquantity |
Typenumber | ROno | DescriptionQuantity of the product in the shipment; fractional values are allowed, for example 0.75. Required at creation and in every update: a PATCH without quantity is rejected with 422 BITRIX_ERROR |
FieldreservedQuantity |
Typenumber | ROyes | DescriptionReserved quantity |
FieldxmlId |
Typestring | ROno | DescriptionExternal code of the item |
FielddateInsert |
Typedatetime | ROyes | DescriptionCreation date in ISO 8601 format, for example 2026-10-07T09:55:27.000Z |
Response example
{
"success": true,
"data": {
"fields": {
"basketId": {
"type": "number",
"readonly": false,
"readonlyOnUpdate": true,
"required": true,
"label": "Basket item ID",
"description": "Basket item of the same order. Lookup: GET /v1/basket-items."
},
"dateInsert": {
"type": "datetime",
"readonly": true,
"label": "Creation date",
"description": "Creation date."
},
"id": {
"type": "number",
"readonly": true,
"label": "Shipment item ID",
"description": "Shipment item identifier."
},
"orderDeliveryId": {
"type": "number",
"readonly": false,
"readonlyOnUpdate": true,
"required": true,
"label": "Shipment ID",
"description": "Shipment ID. Lookup: GET /v1/shipments."
},
"quantity": {
"type": "number",
"readonly": false,
"required": true,
"label": "Quantity",
"description": "Quantity."
},
"reservedQuantity": {
"type": "number",
"readonly": true,
"label": "Reserved",
"description": "Reserved."
},
"xmlId": {
"type": "string",
"readonly": false,
"label": "External code",
"description": "External code."
}
},
"aggregatable": [
"quantity",
"reservedQuantity",
"orderDeliveryId",
"basketId"
],
"batch": [
"create",
"update",
"delete"
]
}
}
Error response example
401 — the API key is not passed:
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key required. Pass via X-Api-Key header."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key has no sale scope |
| HTTP403 | CodeMANAGEMENT_KEY_NO_ENTITY_ACCESS |
DescriptionThe request was made with a management key. Entities require an application key or a personal key with the sale scope |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header is not passed |
| HTTP401 | CodeINVALID_API_KEY |
DescriptionThe passed API key was not found |
| 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.