list_purchase_orders

List purchase orders

read collection tenant-private since 2026-10-01

Lists an org's purchase orders a page at a time, those with no containers yet included: each with its number, supplier, type and status, its origin (origin market, origin depot, P/U Date), its destination (destination market, destination depot, ETA), the transit days between P/U Date and ETA, and how many of its containers have landed. Filtered by vendor, origin_market, destination_market, pickup_date, vendor_eta, acquisition_channel, inventory_type and purchase_order_status, all ANDed, and by q, the start of a purchase order number, unit number or supplier bill. Sorted by one key, paged by its cursor; fields chooses the columns from the field groups. A page holds at most 500 purchase orders and one walk of the cursor at most 10,000 (walk_ceiling_reached). summarize_purchase_orders counts the same ones.

Contract

shape
collection
authority
read
evidence
none
subscription
false
permission
any one of: org.member (carried by the caller's role template in the org `org_id`); a deactivated caller is refused first
idempotency
safe
emits
none
MCP tool
list_purchase_orders
REST
POST https://api.containertradehq.com/v1/cap/list_purchase_orders

Idempotency: a read: calling again changes nothing

Inputs

nametyperequiredvalidation
org_idorg_idrequiredtradehq-org-id; 1 to 20 characters
The org whose purchase orders they are.
filtersfiltersoptional
Purchase orders matching every term given.
qtextoptional1 to 64 characters
The start of a purchase order number, a unit number on it or a supplier bill on it, case ignored.
sortsortoptional1 to 1 items; default [{"key":"created_at","dir":"desc"}]
One sort key and its direction. Newest purchase order first when left out.
fieldsfieldsoptional1 to any number of items; unique; default ["booking_number","vendor","purchase_order_type","acquisition_channel","status","expires_at","created_at","updated_at","origin_market","origin_depot","origin_depot_name","pickup_date","destination_market","destination_depot","destination_depot_name","vendor_eta","transit_days","container_count","landed_count"]
The fields to answer, from the field groups. All three groups when left out.
limitintegeroptional1 to 500; default 100
The page size.
aftercursoroptionaltradehq-keyset-cursor; up to 1024 characters
The previous page's next_after.

Paginated: cursor_input after · next next_after · page_max 500 · walk_max 10000 · ceiling declared

Response

  • items · object[]
  • next_after · stringnull · Pass as `after` for the next page; null on the last one.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "intake_id": {
            "type": "string",
            "description": "The purchase order's id.",
            "x-data-class": "operational"
          },
          "booking_number": {
            "type": "string",
            "description": "The purchase order number.",
            "x-data-class": "operational"
          },
          "vendor": {
            "type": [
              "string",
              "null"
            ],
            "description": "The supplier contact.",
            "x-data-class": "operational"
          },
          "purchase_order_type": {
            "type": "string",
            "description": "The inventory type, as recorded.",
            "x-data-class": "operational"
          },
          "acquisition_channel": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "direct",
              "gate-buy",
              "yard-buy",
              "consignment",
              "factory-direct",
              "inland-transfer",
              "open-inventory",
              null
            ],
            "description": "How it sources its units; null for a lease or sublease.",
            "x-data-class": "operational"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "in-progress",
              "completed",
              "cancelled"
            ],
            "description": "Where it stands.",
            "x-data-class": "operational"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When its still-pending units are discarded as cancelled.",
            "x-data-class": "operational"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "When it was created.",
            "x-data-class": "operational"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "When it last changed.",
            "x-data-class": "operational"
          },
          "origin_market": {
            "type": [
              "string",
              "null"
            ],
            "description": "The market its containers come from.",
            "x-data-class": "operational"
          },
          "origin_depot": {
            "type": [
              "string",
              "null"
            ],
            "description": "The depot they are picked up at.",
            "x-data-class": "operational"
          },
          "origin_depot_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "That depot's name.",
            "x-data-class": "operational"
          },
          "pickup_date": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "format": "date",
            "description": "The day they are picked up (P/U Date).",
            "x-data-class": "operational"
          },
          "destination_market": {
            "type": [
              "string",
              "null"
            ],
            "description": "The market they are delivered to.",
            "x-data-class": "operational"
          },
          "destination_depot": {
            "type": [
              "string",
              "null"
            ],
            "description": "The depot they are delivered to.",
            "x-data-class": "operational"
          },
          "destination_depot_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "That depot's name.",
            "x-data-class": "operational"
          },
          "vendor_eta": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "format": "date",
            "description": "The day the supplier expects them at the destination (ETA).",
            "x-data-class": "operational"
          },
          "transit_days": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Days from P/U Date to ETA; null unless both are known.",
            "x-data-class": "operational"
          },
          "container_count": {
            "type": "integer",
            "minimum": 0,
            "description": "Its containers, not counting cancelled ones.",
            "x-data-class": "operational"
          },
          "landed_count": {
            "type": "integer",
            "minimum": 0,
            "description": "Of those, the ones no longer pending.",
            "x-data-class": "operational"
          }
        },
        "required": [
          "intake_id"
        ],
        "additionalProperties": false
      },
      "maxItems": 500
    },
    "next_after": {
      "type": [
        "string",
        "null"
      ],
      "description": "Pass as `after` for the next page; null on the last one."
    }
  },
  "required": [
    "items",
    "next_after"
  ],
  "additionalProperties": false
}

Refusals

  • walk_ceiling_reached · 422 · the cursor walk has answered 10,000 rows, the most one walk answers

The platform refusals apply to every call: version, authentication, authority, validation and rate limits, each in the same envelope.

Surfaces

DesktopF
MobileF
APIF
MCPF
VoiceD4
PushN
OneBoxN
OutboundN
  • Voice: degraded: visualization
  • Push: emits nothing
  • OneBox: no document originates a purchase-order listing
  • Outbound: a read emits nothing

Events

None emitted.

Related

list_supplier_posts, summarize_purchase_orders