List invocations
const url = 'https://example.com/v1/invocations?status=pending&mode=transactional&settlement=pending&policy=allow&limit=20&offset=0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/invocations?status=pending&mode=transactional&settlement=pending&policy=allow&limit=20&offset=0' \ --header 'Authorization: Bearer <token>'Paginated (offset-based), tenant-scoped, filterable invocation history. Bodies are never returned on this endpoint (spec 0003).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Passed through without validation; an unrecognized value simply returns no results.
Filter by the policy decision recorded on the invocation. Only allow and warn are accepted — a policy deny returns before the invocation is created, so no invocation can carry one. Rows with no decision (no policy configured) match neither value.
RFC 3339 timestamp; inclusive lower bound on created_at.
RFC 3339 timestamp; inclusive upper bound on created_at.
Responses
Section titled “Responses”A page of invocations.
object
object
The inv_<uuidv7> resource ID.
What the policy engine decided about this call, recorded at the moment the decision was made (spec 0009). Null means no decision applied — the tenant has no policy document — which is a different fact from allow and must not be read as one.
deny never appears: a denied call returns before the invocation is created, so the absence of denials here is not evidence that nothing is being denied. Read the policy decision log for those.
The Treeship artifact signed for this invocation, or null when none was recorded. Null is not proof none exists — emission is fail-open. The receipt itself is at GET /v1/invocations/{id}/receipt.
The 1-based position of the rule that produced policy_action, or an empty string when the tenant’s configured default applied because no rule matched. Null whenever policy_action is null.
object
Smallest-unit decimal string.
Settled_amount minus facilitator_fee.
Absent on a self-hosted facilitator that reports no fee.
Coarse failure reason; never raw facilitator response bytes.
Time to first byte; null unless the streaming path received at least one byte.
Example
{ "data": [ { "mode": "transactional", "status": "pending", "error_class": "timeout", "policy_action": "allow", "settlement": { "status": "pending" } } ]}An invalid status, mode, settlement, since, or until value.
The uniform error body for all 4xx responses that carry one.
object
A coarse, caller-safe message. Never contains internal state (invariant
Examplegenerated
{ "error": "example"}Missing or invalid bearer token, or the token’s tenant/user claims are absent. No body.
An unexpected server-side error. No body (internal detail is never returned to callers, invariant