Skip to content

List action executions

GET
/api/v1/action-executions

The durable executions of enqueued operations, oldest id first unless sorted (created_at is when one was queued, done_at when it was executed). You see an execution when you hold the read scope its operation declares (for example messages:read for messages.send); the list is empty otherwise.

after

Opaque cursor: pass the next_cursor of the previous page back unchanged. With sort it must come from a page with the same sort and order; without sort it is the id of the last record.

string

Opaque cursor: pass the next_cursor of the previous page back unchanged. With sort it must come from a page with the same sort and order; without sort it is the id of the last record.

sort

Sort by id or created_at or updated_at or done_at. Stored columns need only this list’s read scope; derived fields need the scopes that show them. null sorts as the lowest value: first in asc, last in desc. Ties break on id in the same direction. Newest first: sort=created_at&order=desc; for mail use sort=occurred_at&order=desc. Without sort the list is in ascending id order with UUID cursors. Paging is by keyset, not a snapshot: values can rise between pages (or fall), so a record may repeat in asc or be missed in desc. In descending mail date order, newly arrived mail ahead of the cursor is not seen; backfilled older mail behind it is. A complete walk uses the default order. An incremental walk also uses the default ascending id order. Mail created_at uses a temporary sort over the workspace’s rows; id is indexed and follows capture order. For executions: created_at is queued at, the moment the execution was authorised (for an approved action request that is the approval, the request’s decided_at, “approved at”; for a direct call, the call). done_at is executed at: when it finished, done or failed, and null while queued or claimed, so unfinished executions come first in asc and last in desc. The latest executed: sort=done_at&order=desc; the latest queued: sort=created_at&order=desc. updated_at moves only at creation and at the outcome, never between attempts.

string
Allowed values: id created_at updated_at done_at

Sort by id or created_at or updated_at or done_at. Stored columns need only this list’s read scope; derived fields need the scopes that show them. null sorts as the lowest value: first in asc, last in desc. Ties break on id in the same direction. Newest first: sort=created_at&order=desc; for mail use sort=occurred_at&order=desc. Without sort the list is in ascending id order with UUID cursors. Paging is by keyset, not a snapshot: values can rise between pages (or fall), so a record may repeat in asc or be missed in desc. In descending mail date order, newly arrived mail ahead of the cursor is not seen; backfilled older mail behind it is. A complete walk uses the default order. An incremental walk also uses the default ascending id order. Mail created_at uses a temporary sort over the workspace’s rows; id is indexed and follows capture order. For executions: created_at is queued at, the moment the execution was authorised (for an approved action request that is the approval, the request’s decided_at, “approved at”; for a direct call, the call). done_at is executed at: when it finished, done or failed, and null while queued or claimed, so unfinished executions come first in asc and last in desc. The latest executed: sort=done_at&order=desc; the latest queued: sort=created_at&order=desc. updated_at moves only at creation and at the outcome, never between attempts.

order

Sort direction: asc (default) or desc. Needs sort.

string
Allowed values: asc desc

Sort direction: asc (default) or desc. Needs sort.

limit
integer
>= 1 <= 200
status
string
Allowed values: queued claimed done failed
operation
string
>= 1 characters <= 100 characters
action_request_id
string format: uuid

Success

object
data
required
Array<object>
object
id
required
string format: uuid
organization_id
required
string format: uuid
operation
required

The enqueued operation this executes, for example messages.send.

string
status
required

Queued (waiting or between attempts), claimed (an attempt is running), done or failed.

string
Allowed values: queued claimed done failed
arguments
required

The operation’s final arguments, fixed when it was authorised.

object
key
additional properties
action_request_id
required

The approved action request this executes; null for a direct call.

string | null format: uuid
created_by
required

The principal that asked: the proposer for an approved request, the caller for a direct call.

string format: uuid
authorised_by
required

The principal whose authority it runs under: the approver, or the caller for a direct call.

string format: uuid
idempotency_key
required

The caller’s key of a direct call; null for an approved request.

string | null
result

What the operation produced; null until done.

error_code
required

Why it failed: reauth_required, permission_missing, anchor_missing, provider_rejected, outcome_unknown, attempts_exhausted or deadline_passed.

string | null
error_message
required

The vault’s sentence for the failure; never a provider’s own text.

string | null
deadline_at
required

When a never-attempted execution stops being attempted.

string
done_at
required

When it was executed: when it finished, done or failed; null while queued or claimed.

string | null
created_at
required

When it was queued: the moment it was authorised. For an approved action request that is the approval, equal to the request’s decided_at; for a direct call, the call.

string
updated_at
required
string
next_cursor
required

Opaque cursor for the next page, or null at the end. Pass it back as after, with the same sort and order.

string | null