---
title: "Approve Agent Tool Call"
method: POST
path: "/agent/threads/{thread_id}/approve"
tags: ["agent"]
---

# Approve Agent Tool Call

`POST /agent/threads/{thread_id}/approve`

## Request

- Base URL: `https://api.threadchain.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.threadchain.pro/agent/threads/{thread_id}/approve`
- Auth: OAuth 2
  - Password
  - Token URL: `auth/token`

Resume a paused write/paid tool call (Phase 3, ``approval.required`` event).

Only the thread's own user may decide (mirrors ``resolve_caller_context()``
tenant-binding, no cross-user approval) — reuses the same run lock as
``stream_agent_message`` so a double-click can't double-resume, and streams
the rest of the run back through the identical SSE contract.

## Path parameters

- `thread_id` string, required

## Request body

- ApproveToolCallRequest
  - `approval_id` string, required
  - `approved` boolean, required
  - `edited_args` object, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/threadchain/apis/threadchain-backend.md) - [All operations](https://skmtc.dev/threadchain/apis/threadchain-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/threadchain/apis/threadchain-backend/revisions/8ee288a7e6bd?raw)
