---
title: "Resume a run parked on an approval"
method: POST
path: "/v1/automations/{automationId}/runs/{runId}/resume"
tags: ["Automations"]
---

# Resume a run parked on an approval

`POST /v1/automations/{automationId}/runs/{runId}/resume`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/automations/{automationId}/runs/{runId}/resume`
- Auth: HTTP bearer

An `approval_request` step parks the run in `awaiting_approval` and stops the
clock. Deciding that approval — via the API, the one-tap email link or the
phone — resumes the run automatically: `approved` continues from the next
step, `rejected` fails the run with the reason. This route is the hand-off
for a decision made elsewhere: it marks the approval approved on the caller's
behalf and continues the run. Human-only. Idempotent — a run that is not
parked is returned unchanged. Later steps see the approval step's output as
`{status, approval_id}` and the optional `payload` as `{{resume.*}}`. A
parked run that nobody decides within 72 hours becomes `timed_out`.
Emits `automation.run.resumed`.

## Path parameters

- `automationId` string, uuid, required
- `runId` string, uuid, required

## Request body

- object
  - `payload` object: Exposed to later steps as `{{resume.*}}`.

## Response `200`

The run, now running (or unchanged if it was not parked)

- AutomationRunResponse
  - `id` string, uuid, required
  - `automation_id` string, uuid, required
  - `agent_id` string, uuid, required
  - `status` 'running' | 'success' | 'completed_with_skips' | 'failed' | 'timed_out' | 'cancelled' | 'awaiting_approval' | 'waiting' | 'awaiting_callback', required: `awaiting_approval`, `waiting` (a `wait_until` park) and `awaiting_callback` are parked states: the run's clock is stopped and it continues when the approval is decided, the wake time passes, or the callback URL is posted to.
  - `paused_reason` 'approval' | 'wait_until' | 'callback', nullable
  - `paused_at_step` integer, nullable
  - `paused_approval_id` string, uuid, nullable
  - `paused_until` string, date-time, nullable
  - `paused_expires_at` string, date-time, nullable
  - `spec_version` integer, nullable
  - `idempotency_key` string, nullable
  - `parent_run_id` string, uuid, nullable: Set when a `call_automation` step started this run.
  - `step_results` unknown
  - `error` string, nullable
  - `trigger_source` string, nullable
  - `context` object, nullable: JSONB context passed between workflow steps
  - `started_at` string, date-time, required
  - `finished_at` string, date-time, nullable
  - `tokens_used` integer, required
  - `cost_cents` integer, required

## Other responses

- `401`: Authentication required or invalid
- `403`: Insufficient permissions
- `404`: Resource not found

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/5fa0918f3b41?raw)
