Pallet Contents¶
Overview¶
Retrieve the packed pallet content for a pallet-optimized order after optimization has produced it, typically within a few minutes of submission. Each pallet lists the items it carries, grouped by SKU, purchase order, and line item.
|
HTTP method |
|
|---|---|
|
Authentication |
API key (see Authentication) |
|
Success |
JSON array of pallets |
Note
This endpoint is available for pallet optimization orders only (Air, LTL, LCL).
Container orders (FTL, FCL) are rejected with a 400 (see Errors (4xx)).
Avoid polling where possible: subscribe to the packing_instructions.ready
webhook event (see Events) and fetch once it fires.
Polling: If you do poll, expect 400 responses until optimization results exist (see Errors (4xx)). Use exponential backoff, keep the interval compatible with API rate limits, and avoid tight loops.
Request¶
Endpoint¶
Query parameters¶
|
Parameter |
Type |
Description |
|---|---|---|
|
|
String |
Required. Your shipment reference or Alpha ID. Whitespace-only values are rejected. |
Responses¶
Success (200 OK)¶
What you receive
A JSON array of packed pallets. Each pallet contains its identifiers and a grouped list of its contents.
|
Field |
Type |
Description |
|---|---|---|
|
|
String |
Sequential label assigned by the optimization engine (e.g. |
|
|
String |
The pallet type code from the lane configuration (e.g. |
|
|
Array |
Items on the pallet, grouped by |
|
|
String |
Product code of the grouped item. |
|
|
String |
Purchase order the item belongs to. |
|
|
String |
Line item number within the purchase order. |
|
|
Integer |
Total quantity of the item across all steps on the pallet. |
Example response
[
{
"pallet_index": "AP1",
"pallet_code": "EUR",
"contents": [
{
"sku": "PRD-001",
"purchase_order": "PO-1",
"line_item_number": "L1",
"quantity": 150
},
{
"sku": "PRD-002",
"purchase_order": "PO-2",
"line_item_number": "L2",
"quantity": 30
}
]
}
]
Example (curl)
curl -sS -H "Authorization: Api-Key YOUR_KEY" \
"BASE_URL/api/v1/orders/pallet-contents/?order=YOUR_REF"
Replace BASE_URL with your environment base URL (see API Base URLs).
Errors (4xx)¶
Errors return JSON. Typical cases:
|
HTTP |
Meaning |
What to do |
|---|---|---|
|
|
No matching order for |
Fix the identifier or confirm the order belongs to your tenant |
|
|
Order exists but optimization results not generated yet |
Wait and retry; contact support if it exceeds ~10 minutes |
|
|
Order is not a pallet optimization order (Air, LTL, LCL) |
Use this endpoint only for pallet orders |
|
|
Bad or missing API key |
Fix |
Order not found (400)¶
{
"order": [
"No order found matching the provided reference."
]
}
Shipments that belong to other API customers are invisible; you see the same message as for a typo, by design.
Results not ready yet (400)¶
{
"order": [
"Optimization results not available yet, please try after a couple of minutes. If not ready within 10 minutes, reach out to our support team"
]
}
Optimization may still be running. Retry after a short pause.
Not a pallet order (400)¶
{
"order": [
"Pallet contents are only available for pallet optimization orders (Air, LTL, LCL)."
]
}
Invalid or missing API key (403)¶
No JSON body is guaranteed; ensure the Authorization: Api-Key … header is present
and valid.