list_catalog

List catalog

read collection tenant-private since 2026-10-01

Lists an org's sales catalog a line at a time: one line per market, depot, size, type, condition, colour and hardware, with its unit counts. Filtered by market, depot, size, type, condition and availability (available: the line counts an available unit), colour, forklift pockets, lockbox, vents, handles, repair state (the line's damage) and a Wholesale price range, all ANDed. Sorted by one key, paged by its cursor; fields chooses the columns from the field groups. A page holds at most 500 lines and one walk of the cursor at most 10,000 (walk_ceiling_reached). summarize_catalog counts the same lines.

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_catalog
REST
POST https://api.containertradehq.com/v1/cap/list_catalog

Idempotency: a read: calling again changes nothing

Inputs

nametyperequiredvalidation
org_idorg_idrequiredtradehq-org-id; 1 to 20 characters
The org whose catalog it is.
filtersfiltersoptional
Lines matching every term given.
sortsortoptional1 to 1 items; default [{"key":"market","dir":"asc"}]
One sort key and its direction. By market when left out.
fieldsfieldsoptional1 to any number of items; unique; default ["market","depot","depot_name","size","type","condition","color","sku_code","lockbox","forklift_pockets","vents","handles","total_count","available_count","reserved_count","secured_count","pending_count","available_secured_count","available_pending_count"]
The fields to answer, from the field groups. The line, hardware and counts 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": {
          "catalog_id": {
            "type": "string",
            "description": "The line's catalog id.",
            "x-data-class": "operational"
          },
          "line": {
            "type": "integer",
            "description": "The line's ordinal under its catalog id (1 unless today's catalog emits two rows under one id).",
            "x-data-class": "operational"
          },
          "market": {
            "type": [
              "string",
              "null"
            ],
            "description": "The line's market.",
            "x-data-class": "operational"
          },
          "depot": {
            "type": [
              "string",
              "null"
            ],
            "description": "The depot the line's units are in.",
            "x-data-class": "operational"
          },
          "depot_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "That depot's name.",
            "x-data-class": "operational"
          },
          "size": {
            "type": [
              "string",
              "null"
            ],
            "description": "The container size, as recorded.",
            "x-data-class": "operational"
          },
          "type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The container type, as recorded.",
            "x-data-class": "operational"
          },
          "condition": {
            "type": [
              "string",
              "null"
            ],
            "description": "The condition grade, as recorded.",
            "x-data-class": "operational"
          },
          "color": {
            "type": [
              "string",
              "null"
            ],
            "description": "The colour.",
            "x-data-class": "operational"
          },
          "sku_code": {
            "type": [
              "string",
              "null"
            ],
            "description": "The line's SKU code.",
            "x-data-class": "operational"
          },
          "lockbox": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether the containers have a lockbox.",
            "x-data-class": "operational"
          },
          "forklift_pockets": {
            "type": [
              "boolean",
              "null"
            ],
            "description": "Whether they have forklift pockets.",
            "x-data-class": "operational"
          },
          "vents": {
            "type": [
              "string",
              "null"
            ],
            "description": "Their vents.",
            "x-data-class": "operational"
          },
          "handles": {
            "type": [
              "string",
              "null"
            ],
            "description": "Their door handles.",
            "x-data-class": "operational"
          },
          "total_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "The line's units.",
            "x-data-class": "operational"
          },
          "available_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "Its units available to sell.",
            "x-data-class": "operational"
          },
          "reserved_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "Its units reserved.",
            "x-data-class": "operational"
          },
          "secured_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "Its units secured.",
            "x-data-class": "operational"
          },
          "pending_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "Its units pending.",
            "x-data-class": "operational"
          },
          "available_secured_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "Its units available and secured.",
            "x-data-class": "operational"
          },
          "available_pending_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "Its units available and pending.",
            "x-data-class": "operational"
          },
          "suggested_price": {
            "anyOf": [
              {
                "type": [
                  "string",
                  "null"
                ]
              },
              {
                "const": "•••",
                "description": "Masked by the caller's data policy."
              },
              {
                "type": "null",
                "description": "Denied by the caller's data policy."
              }
            ],
            "description": "The line's suggested price, as a decimal string.",
            "x-data-class": "commercial"
          },
          "retail_price": {
            "anyOf": [
              {
                "type": [
                  "string",
                  "null"
                ]
              },
              {
                "const": "•••",
                "description": "Masked by the caller's data policy."
              },
              {
                "type": "null",
                "description": "Denied by the caller's data policy."
              }
            ],
            "description": "The line's retail price, as a decimal string.",
            "x-data-class": "commercial"
          },
          "damage": {
            "type": [
              "string",
              "null"
            ],
            "description": "The damage the line groups by, as recorded.",
            "x-data-class": "operational"
          },
          "purchase_order_type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The purchase order type the line groups by, as recorded.",
            "x-data-class": "operational"
          }
        },
        "required": [
          "catalog_id",
          "line"
        ],
        "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 catalog listing
  • Outbound: a read emits nothing

Events

None emitted.

Related

list_inventory, list_shared_catalog, list_units, summarize_catalog, summarize_inventory