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

GET

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

GET

{base url}/api/v1/orders/pallet-contents/

Query parameters

Parameter

Type

Description

order

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

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

Errors (4xx)

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

Order is not a pallet optimization order (Air, LTL, LCL)

Use this endpoint only for pallet orders

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.

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.