Held Executions

Get a held execution

Changed on

One held execution: its decision, where the call stands, and the held request.

execution_status follows the call from held to its outcome; once it has finished, _links.result returns that outcome. A held execution outside the caller's visibility answers 404.

get/executions/holds/{held_execution_id}

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /executions/holds/{held_execution_id}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL /authorize, token URL /oauth/token)

Path parameters

held_execution_idstring required

ID of the held execution.

Example:held_6968b398a1c4e2d07b5f93c6

Response

Successful Response

agent_idstring required

The agent whose call was held.

agent_namestring nullable

Display name of the agent.

agent_owner_idstring nullable

The agent's owner; null for an ownerless agent (admin-only).

api_namestring required

Name of the API called.

api_vendorstring required

Vendor of the API called.

api_versionstring required

Version of the API called.

created_atstring date-time required

When the call was held.

credential_idstring required

The credential selected when the call was held.

decided_atstring date-time nullable

When it left pending.

decided_bystring nullable

Reviewer who decided it.

decision_reasonstring nullable

Reviewer's reason.

execution_idstring nullable

Execution record written once the approved call ran.

execution_status'held' | 'queued' | 'running' | 'completed' | 'failed' | 'cancelled' nullable

Where the held call stands: held until decided, then queued, running, and completed, failed or cancelled.

expires_atstring date-time required

When a pending held execution expires undecided.

idstring required

Held execution id (held_…).

matched_rule_idstring nullable

The require-approval permission rule that held the call.

methodstring required

HTTP method of the held call.

operation_idstring nullable

Resolved OpenAPI operation id.

pathstring required

Upstream path of the held call.

review_urlstring required

Review page a signed-in reviewer opens to approve or deny the call. Carries no credential.

state'pending' | 'approved' | 'denied' | 'expired' | 'withdrawn' required

Lifecycle of an execution approval; every state but pending is terminal.

trace_idstring nullable

Trace id of the held call.

updated_atstring date-time nullable

Last change.

Example response

{
  "_links": {
    "execution": "https://jentic.example.com/executions/exec_6968b3982706c619fe73f0cf",
    "result": "https://jentic.example.com/executions/holds/held_6968b398a1c4e2d07b5f93c6/result",
    "self": "https://jentic.example.com/executions/holds/held_6968b398a1c4e2d07b5f93c6",
    "withdraw": "https://jentic.example.com/executions/holds/held_6968b398a1c4e2d07b5f93c6:withdraw"
  },
  "agent_id": "agnt_6968b3984d1c238dbe7e2e29",
  "agent_name": "billing-assistant",
  "agent_owner_id": "usr_6968b3987ee4c3ec0b4ee3b9",
  "api_name": "stripe",
  "api_vendor": "stripe.com",
  "api_version": "2024-04-10",
  "created_at": "2026-01-15T09:30:00Z",
  "credential_id": "cred_6968b39855d91a3561684b32",
  "decided_at": "2026-01-15T09:42:00Z",
  "decided_by": "usr_6968b3987ee4c3ec0b4ee3b9",
  "decision_reason": "Not this account",
  "execution_id": "exec_6968b3982706c619fe73f0cf",
  "execution_status": "held",
  "expires_at": "2026-01-15T10:30:00Z",
  "id": "held_6968b398a1c4e2d07b5f93c6",
  "matched_rule_id": "apr_6968b398c4e1a2b3d5f60718",
  "method": "POST",
  "operation_id": "listCharges",
  "path": "/v1/refunds",
  "request": {
    "body": "charge=ch_3MmlLrLkdIwHu7ix0snN0B15",
    "body_truncated": false,
    "method": "POST",
    "url": "https://api.stripe.com/v1/refunds?expand[]=charge"
  },
  "review_url": "https://jentic.example.com/app/agents/approvals/held_6968b398a1c4e2d07b5f93c6",
  "state": "pending",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "updated_at": "2026-01-15T09:42:00Z"
}

Changes