Skip to main content

Webhooks API

Register HTTP webhooks to receive real-time notifications when events occur in Sequenceware.

All webhook endpoints require JWT Bearer Token authentication and admin role.


Register webhook

POST /v1/webhooks

Request body

{
"url": "https://your-service.com/sequenceware-webhook",
"events": ["approval.requested", "tool.blocked", "run.failed"]
}
FieldTypeRequiredDescription
urlstringYesHTTPS endpoint to receive webhook payloads
eventsstring[]YesList of event types to subscribe to

Example

curl -X POST http://localhost:3000/v1/webhooks \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-service.com/webhook",
"events": ["approval.requested", "tool.blocked"]
}'

List webhooks

GET /v1/webhooks
curl http://localhost:3000/v1/webhooks \
-H "Authorization: Bearer $TOKEN"

Remove webhook

DELETE /v1/webhooks/:id
curl -X DELETE http://localhost:3000/v1/webhooks/{id} \
-H "Authorization: Bearer $TOKEN"

Webhook deliveries

GET /v1/webhooks/:id/deliveries

View delivery history for a specific webhook.

ParameterTypeDescription
limitnumberMax results
curl "http://localhost:3000/v1/webhooks/{id}/deliveries?limit=20" \
-H "Authorization: Bearer $TOKEN"

Webhook payload

When an event fires, Sequenceware sends a POST request to your URL with:

{
"event": "approval.requested",
"timestamp": "2026-03-19T10:00:00.000Z",
"data": {
"approvalId": "appr_abc123",
"runId": "run_xyz789",
"toolCallId": "tc_def456",
"toolName": "deploy",
"policyName": "Approve production deploys",
"agentId": "my-agent"
}
}

Your endpoint should return a 2xx status code to acknowledge receipt. Failed deliveries are retried with exponential backoff.