---
title: "Approve Agent Run Tool Call"
method: POST
path: "/v2/agents/{task_id}/approve"
tags: ["agent-runs"]
---

# Approve Agent Run Tool Call

`POST /v2/agents/{task_id}/approve`

Resolve one pending tool approval on a suspended run.

Delivers the verdict through the task workflow's ``resolve_approval``
update — an acknowledged RPC whose result is the truth about what the
workflow recorded. The handler runs atomically with respect to batch
settlement, so a 200 here always means the decision applied to the exact
call the caller saw in ``pending_approvals``; verdicts racing the 4h
timeout or a concurrent decision come back ``not_pending``/``superseded``
and map to 409 instead of a false accept. Retrying the same verdict is
idempotent (first decision wins). Authorization mirrors check/await
(uniform 404 outside the caller's read scope) — whoever can see a run can
decide its approvals, matching the a2a trust model where the caller agent
is the approver.

## Path parameters

- `task_id` string, required

## Request body

- AgentRunApproveRequest
  - `tool_call_id` string, required
  - `approved` boolean, required

## Response `200`

Successful Response

- AgentRunApproveResponse
  - `task_id` string, required — Opaque agent run identifier.
  - `tool_call_id` string, required
  - `approved` boolean, required
  - `status` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/getauctor/apis/fastapi.md) · [All operations](https://skmtc.dev/getauctor/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getauctor/fastapi/revisions/aeb6faa3b8f0/schema)
