---
title: "Resolve Run Approval"
method: POST
path: "/v1/workflows/runs/{run_id}/approval"
tags: ["workflows"]
---

# Resolve Run Approval

`POST /v1/workflows/runs/{run_id}/approval`

## Request

- Base URL: `https://api.opero.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.opero.pro/v1/workflows/runs/{run_id}/approval`
- Auth: none declared

Approve or reject a run paused on an approval_gate.

Signals WorkflowRunExecutor.resolve_approval. The workflow writes the run
row itself (back to 'running', or 'cancelled' on rejection) — this endpoint
deliberately does not, so the row can never disagree with the workflow.

## Path parameters

- `run_id` string, required

## Request body

- ApprovalRequest
  - `approved` boolean, required
  - `node_id` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/opero/apis/opero-pro-api.md) - [All operations](https://skmtc.dev/opero/apis/opero-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opero/apis/opero-pro-api/revisions/e6ede41aeb9b?raw)
