Skip to main content

Listing, Sorting and Filters

The *_list tools use the same pagination as the v1 API: by cursor (see Pagination, sorting and filters).

ArgumentDefaultRule
limit251 to 100
cursor—the meta.next_cursor of the previous page
{ "name": "kadu_executions_list", "arguments": { "status": "failed", "limit": 50 } }

The result carries the usual envelope:

{
"data": [ /* ... */ ],
"meta": { "next_cursor": "eyJpZCI6IjJmMWMi…", "limit": 50 }
}

Repeat the call with cursor set to next_cursor until it comes back null. The cursor is opaque: do not build or interpret it. An invalid cursor returns VALIDATION_ERROR.

:::note Lists without a cursor Some listings return a fixed set, and the matching tool offers neither cursor nor limit: webhook deliveries (kadu_webhook_deliveries_list, the 50 most recent), the organization's members (kadu_users_list, up to 100), system events (kadu_system_events_list, the 100 most recent) and the execution search (kadu_executions_search). An execution's events, logs and pending items come whole and in order; to read only the new ones, pass after_sequence (kadu_executions_events_list) or after_id (kadu_executions_logs_list). This is intentional: a tool that announced cursor on a route that ignores it would make the model page forever through a list that does not move. :::

Sorting​

ArgumentValuesDefault
sort_bycreated_at, updated_at or a filterable field of the resourcecreated_at
sort_orderasc or descdesc
{ "name": "kadu_executions_list", "arguments": { "sort_by": "created_at", "sort_order": "asc" } }

A sort_by the resource does not sort by returns VALIDATION_ERROR, as in the API. A sort_order that is neither asc nor desc is refused before reaching the route, with VALIDATION_ERROR and the message Invalid tool arguments.. kadu_operation_approvals_list does not sort: approvals always come newest first.

Filters​

Each listing tool declares the resource's filters as named arguments — its inputSchema says which. They become the API filters:

Argument shapeExampleBecomes
One valuestatus: "failed"status=failed
A list (up to 100)status: ["failed", "cancelled"]status[in]=failed,cancelled
<field>_gte / <field>_ltereference_date_gte: "2026-10-01"reference_date[gte]=2026-10-01
{ "name": "kadu_executions_list",
"arguments": { "status": ["failed", "cancelled"], "reference_date_gte": "2026-10-01", "limit": 50 } }

An argument the tool does not declare is dropped before the call — the page size, for example, cannot get past 100 inside a filter.

Data contract​

What holds for the v1 API holds here, because it is the same code (see Conventions):

  • snake_case everywhere, arguments and responses.
  • Dates in ISO 8601 in UTC; reference dates as YYYY-MM-DD.
  • Cost in dollars in the _usd fields; price in reais in the _brl fields.
  • Secret values are never returned, by any tool.
  • Writes accept idempotency_key — see Idempotency.