# An approval was asked for: a reviewer's decision is waiting

POST

## Parameters

### Header Parameters

**webhook-id**

required

string

The event id; the same on every retry. Deduplicate on it.

**webhook-timestamp**

required

string

/^\[0-9]+$/

Unix seconds when the request was signed. Reject requests far from your clock.

**webhook-signature**

required

string

`v1,<base64 HMAC-SHA256 of "{webhook-id}.{webhook-timestamp}.{body}">` under the endpoint’s secret; space-separated when two secrets sign during a rotation.

## Request Bodyrequired

application/json

An approval was asked for: a reviewer’s decision is waiting. Sent once per approval (an escalation is a new approval). `projectId` in the endpoint’s filter narrows it to the approval’s project.

object

**id**

required

Event id, also sent as the `webhook-id` header; the same on every retry.

string

**type**

required

string

Allowed value: approval.requested

**createdAt**

required

string format: date-time

**data**

required

object

**approval**

required

The approval an `approval.requested` event names. What it is about stays behind sign-in: no `context`, no tool call or run input.

object

**approvalId**

required

string

**projectId**

string

**requiredRole**

required

The least reviewer role that may decide it.

string

Allowed values: standard senior admin

**title**

string

**assignedTo**

The one reviewer it is assigned to, when it is.

string

**createdAt**

required

string format: date-time

**expiresAt**

string format: date-time

**url**

Its page in the console, when the runtime knows its public address.

string

## Responses

### 2XX

Received. Any other answer, or none within 10 seconds, is retried.
