curl --request POST \
--url https://api.anchorbrowser.io/v1/webhooks \
--header 'Content-Type: application/json' \
--header 'anchor-api-key: <api-key>' \
--data '
{
"url": "https://your-app.example.com/anchor/webhooks",
"subscribed_events": [
"task.completed",
"task.failed",
"task.healed"
]
}
'{
"id": "wh_01HXJ4MZ7K9P3Q6R8S2T4V5W7Y",
"project_id": "5d2c31f6-ab7e-481a-b6fd-8b4a96a4e197",
"url": "https://your-app.example.com/anchor/webhooks",
"description": "Production task notifications",
"subscribed_events": [
"task.completed"
],
"enabled": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"secret": "36da51b166a69268a59a8d5ee0b32c9f5e5aaee7d301c7a5a36844318e116fc6"
}Create Webhook
Register a new HTTPS endpoint to receive events. The response includes
a one-time secret (HMAC-SHA256 signing key) — store it; Anchor never
returns it again. Up to 5 webhooks per project.
curl --request POST \
--url https://api.anchorbrowser.io/v1/webhooks \
--header 'Content-Type: application/json' \
--header 'anchor-api-key: <api-key>' \
--data '
{
"url": "https://your-app.example.com/anchor/webhooks",
"subscribed_events": [
"task.completed",
"task.failed",
"task.healed"
]
}
'{
"id": "wh_01HXJ4MZ7K9P3Q6R8S2T4V5W7Y",
"project_id": "5d2c31f6-ab7e-481a-b6fd-8b4a96a4e197",
"url": "https://your-app.example.com/anchor/webhooks",
"description": "Production task notifications",
"subscribed_events": [
"task.completed"
],
"enabled": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"secret": "36da51b166a69268a59a8d5ee0b32c9f5e5aaee7d301c7a5a36844318e116fc6"
}Authorizations
API key for your Anchor Browser account, sent as the anchor-api-key header on every
request. Create one at app.anchorbrowser.io (API Access),
or obtain one programmatically via the unauthenticated agent-access flow
(POST /v1/agent-access).
Body
HTTPS endpoint Anchor will POST events to. Rejected (400) if it points at loopback / private / link-local IPs, cloud metadata services, internal-only TLDs, AWS STS / IAM / EKS endpoints, or contains basic-auth credentials.
1 - 2048"https://your-app.example.com/anchor/webhooks"
Events this webhook should receive. At least one is required.
1Catalog of webhook event types Anchor can deliver. Adding a new event type is a coordinated change between session-manager (publisher), webhook-dispatcher (consumer), and the dashboard.
task.completed, task.failed, task.cancelled, task.healed, session.ready, session.completed, session.failed, session.recording.ready, batch.completed, batch.failed, intervention.requested, intervention.resolved, identity.authenticated, identity.authentication_failed Optional human-readable description.
256"Production task notifications"
Response
Webhook created. The secret field is returned ONCE — copy it now.
Same shape as WebhookPublic plus the freshly minted signing secret.
Returned ONLY by create and rotate-secret. Store it the first time —
Anchor never returns it again. If lost, rotate to mint a new one.
Webhook id. Use as the path parameter on subsequent calls.
"wh_01HXJ4MZ7K9P3Q6R8S2T4V5W7Y"
The project (team) the webhook belongs to.
"5d2c31f6-ab7e-481a-b6fd-8b4a96a4e197"
HTTPS URL Anchor will POST events to.
"https://your-app.example.com/anchor/webhooks"
Optional human-readable description.
256"Production task notifications"
Event types this webhook is currently subscribed to.
Catalog of webhook event types Anchor can deliver. Adding a new event type is a coordinated change between session-manager (publisher), webhook-dispatcher (consumer), and the dashboard.
task.completed, task.failed, task.cancelled, task.healed, session.ready, session.completed, session.failed, session.recording.ready, batch.completed, batch.failed, intervention.requested, intervention.resolved, identity.authenticated, identity.authentication_failed When false, no events fan out to this webhook.
true
HMAC-SHA256 signing secret. Use this to verify the Anchor-Signature header on each delivery.
"36da51b166a69268a59a8d5ee0b32c9f5e5aaee7d301c7a5a36844318e116fc6"
Was this page helpful?

