Pallet Contents

Retrieve the packed pallet contents for a shipment 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.

Note

Availability: this endpoint returns the ALPHA built pallets. For Air, TruckLTL and OceanLCL these come from the selected pallet optimization. For OceanFCL and TruckFTL they are the pallets built from your order_items and loaded into the containers.

pre_builts and loose_boxes are never returned. A shipment carrying only those gets a 400 (see Error Responses).

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 Error Responses). Use exponential backoff, keep the interval compatible with API rate limits, and avoid tight loops.

Endpoint

GET

{base url}/api/v1/orders/pallet-contents/?order=YOUR_REF

Authentication Requirements

Requires a valid API key. See Authentication.

Query Parameters

Parameter

Type

Description

order

String

Required. Your shipment reference or Alpha ID. Whitespace-only values are rejected.

Success Response (200 OK)

Returns a JSON array of packed pallets. Each pallet contains its identifiers and a grouped list of its contents.

Field

Type

Description

pallet_index

String

Sequential label assigned by the optimization engine (e.g. AP1, AP2).

pallet_code

String

The pallet type code from the lane configuration (e.g. EUR, US).

contents

Array

Items on the pallet, grouped by sku + purchase_order + line_item_number.

contents[].sku

String

Product code of the grouped item.

contents[].purchase_order

String

Purchase order the item belongs to.

contents[].line_item_number

String

Line item number within the purchase order.

contents[].quantity

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).

Error Responses

Errors return JSON. Typical cases:

HTTP

Meaning

What to do

400

No matching order for order in your API key scope

Fix the identifier or confirm the order belongs to your tenant

400

Order exists but optimization results not generated yet

Wait and retry. Contact support if it exceeds ~10 minutes

400

Optimization built no ALPHA pallets for this shipment

Do not retry. This shipment has no pallet contents

403

Bad or missing API key

Fix Authorization header

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.

No ALPHA pallets (400)

{
  "order": [
    "No ALPHA pallets are available in this shipment"
  ]
}

Optimization finished and built no pallets, typically a container shipment carrying only pre_builts and/or loose_boxes. Retrying will not change this.

Invalid or missing API key (403)

No JSON body is guaranteed. Ensure the Authorization: Api-Key header is present and valid.