Contract
- shape
- collection
- authority
- read
- evidence
- none
- subscription
- false
- permission
- any one of: staff.read (the staff role staff_read held in the Internal org, tradehq_role.staff_role); org.admin (carried by the caller's role template in the org `org_id`); account.owner (account role owner or higher in the account of the org `org_id`); a deactivated caller is refused first
- idempotency
- safe
- emits
- none
- MCP tool
- list_agent_reads
- REST
- POST https://api.containertradehq.com/v1/cap/list_agent_reads
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 whose agent reads to list. |
| limit | integer | optional | 1 to 200; default 50 How many of the newest reads to answer. |
Paginated: next next_after · page_max 200 · walk_max 200 · 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": {
"read_id": {
"type": "string",
"description": "The read's id.",
"x-data-class": "operational"
},
"at": {
"type": "string",
"format": "date-time",
"description": "When it was read.",
"x-data-class": "operational"
},
"actor": {
"type": "string",
"description": "The agent that read it: its broker role, <name>@<context>.",
"x-data-class": "operational"
},
"family": {
"type": "string",
"description": "What it read: purchase_orders, sales_orders, order_line_items, invoices, inbound_documents and so on.",
"x-data-class": "operational"
},
"relation": {
"type": "string",
"description": "The table it read.",
"x-data-class": "operational"
},
"classes_read": {
"type": "array",
"items": {
"type": "string"
},
"description": "The kinds of field it was answered: commercial, financial, personal, operational.",
"x-data-class": "operational"
},
"classes_masked": {
"type": "array",
"items": {
"type": "string"
},
"description": "The kinds answered masked, because one of the org's own data policies masks them.",
"x-data-class": "operational"
},
"classes_denied": {
"type": "array",
"items": {
"type": "string"
},
"description": "The kinds never read, because one of the org's own data policies denies them.",
"x-data-class": "operational"
},
"filter_columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "The fields it filtered on, never their values.",
"x-data-class": "operational"
},
"record_count": {
"type": "integer",
"minimum": 0,
"description": "How many records it was answered.",
"x-data-class": "operational"
},
"purpose": {
"type": "string",
"description": "Why it read them, as the agent stated it: a ticket when there is one.",
"x-data-class": "operational"
},
"refused": {
"type": [
"string",
"null"
],
"description": "Why the read was refused, when it was: it filtered on a kind of field your own data policies mask (filter_on_masked_class) or deny (class_restricted_by_customer). Nothing was read.",
"x-data-class": "operational"
}
},
"required": [
"read_id",
"at",
"actor",
"family",
"relation",
"classes_read",
"classes_masked",
"classes_denied",
"filter_columns",
"record_count",
"purpose",
"refused"
],
"additionalProperties": false
},
"maxItems": 200
},
"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
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 an agent read
- Outbound: crosses to no counterparty
Events
None emitted.
Related
list_accounts, list_audit_events, list_audit_exports, list_orgs, list_unit_access, list_users