Held Executions

Withdraw a held execution

Changed on

Abandon a held execution — the agent that filed it only.

The call becomes withdrawn and never runs; no result is written. Any other caller gets 404, as if it did not exist; one that is no longer pending (decided, expired or already withdrawn) answers 409. Owners and admins use :decide with deny instead.

post/executions/holds/{held_execution_id}:withdraw

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}:withdraw
  • 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.

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",
  "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",
  "review_url": "https://jentic.example.com/app/agents/approvals/held_6968b398a1c4e2d07b5f93c6",
  "state": "pending",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "updated_at": "2026-01-15T09:42:00Z"
}

Changes