Decide a pending permission request

POST/v1/threads/{threadId}/permission-requests/{requestId}/decision

Commit an operator decision to the exact runtime approval. Pending decisions do not expire with the runtime transport. Recoverable stopped runs continue through a durable job in the same thread. Retrying the same decision is idempotent; changing a committed decision is a conflict.

How to call this endpoint

Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.

Path, query, and header parameters

These parameters control which ACP object the endpoint acts on and how the request is processed.

Path parameters
NameLocationTypeRequiredDescription
threadIdpathstringYesThread ID
requestIdpathstringYes—
Query parameters
None.

Body schema

Content type: application/json · Required

FieldTypeRequiredDescription
decisionallow | denyYes—
reasonstringNo—

What the API returns

Each response code below includes the documented payload shape for the ACP API.

200Permission decision acceptedapplication/json
FieldTypeRequiredDescription
okbooleanYes—
requestIdstringYes—
decisionallow | denyYes—
activebooleanNoWhether the decision was delivered to a live waiting runtime session.
canonicalMirroredbooleanNoWhether the ruling and resulting run projection were durably published to Thread v2.
continuationqueued | delivered | blocked | cancelled | unavailableNoDelivery state for managed runtime approvals. This does not assert that the tool has executed.
messagestringNoMessage text.
400Decision must be allow or deny
None.
403Organization membership or execution scope is missing
None.
404Thread or permission request not found
None.
409A different decision is already committed, or a legacy runtime cannot receive the decision
None.
Decide a pending permission request
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow