Contract
- shape
- collection
- authority
- read
- evidence
- none
- subscription
- false
- permission
- any one of: share.recipient (the caller is the user the recipient row named by share_inbound_id is addressed to, on a share the org made that is active, unexpired and not cancelled for them; no membership is asked); a deactivated caller is refused first
- idempotency
- safe
- emits
- none
- MCP tool
- list_shared_catalog
- REST
- POST https://api.containertradehq.com/v1/cap/list_shared_catalog
Idempotency: a read: calling again changes nothing
Inputs
| name | type | required | validation |
|---|---|---|---|
| org_id | org_id | required | tradehq-org-id; 1 to 20 characters The org that made the share. |
| share_inbound_id | text | required | 1 to 20 characters The received share, by its recipient row: the share_inbound_id the received shares list names. |
| filters | filters | optional | Lines matching every term given. |
| sort | sort | optional | 1 to 1 items; default [{"key":"market","dir":"asc"}] One sort key and its direction. By market when left out. |
| fields | fields | optional | 1 to any number of items; unique; default ["market","depot","depot_name","size","type","condition","color","sku_code","lockbox","forklift_pockets","vents","handles","available_count","available_secured_count","available_pending_count"] The fields to answer, from the field groups. The line, hardware and counts groups when left out; a price only where the share shows it. |
| limit | integer | optional | 1 to 500; default 100 The page size. |
| after | cursor | optional | tradehq-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"
},
"available_count": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Its units available to sell.",
"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"
}
},
"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 answersfield_not_granted· 422 · the fields asked for include a price the share does not show
The platform refusals apply to every call: version, authentication, authority, validation and rate limits, each in the same envelope.
Surfaces
- Voice: degraded: visualization
- Push: emits nothing
- OneBox: no document originates a shared catalog listing
- Outbound: a read emits nothing
Events
None emitted.
Related
list_catalog, list_inventory, list_units, summarize_catalog, summarize_inventory