Skip to content

Webhook Endpoints API

Register and manage outbound webhook endpoints that receive email event notifications from Synapse.

Note

For a guide on setting up webhooks, see Subscribing to Webhooks. For event payload details, see Event Types & Payloads.


Authentication

All webhook endpoint management requires JWT authentication (dashboard session) with webhooks:read or webhooks:write permissions.


Endpoints

MethodPathDescription
GET/v1/workspace/webhook-endpointsList all webhook endpoints
POST/v1/workspace/webhook-endpointsCreate a webhook endpoint
PATCH/v1/workspace/webhook-endpoints/{id}Update a webhook endpoint
DELETE/v1/workspace/webhook-endpoints/{id}Delete a webhook endpoint
POST/v1/workspace/webhook-endpoints/{id}/rotate-secretRotate the signing secret
POST/v1/workspace/webhook-endpoints/{id}/testSend a test delivery
GET/v1/workspace/webhook-endpoints/{id}/deliveriesList delivery history

Create Endpoint

POST /v1/workspace/webhook-endpoints

Permission: webhooks:write

Request Body

json
{
"name": "Order notifications",
"url": "https://example.com/webhooks/synapse",
"event_types": ["email_delivered", "email_bounced", "email_opened"],
"environment": "live"
}
FieldTypeRequiredDescription
namestringYesHuman-readable label (1--100 characters)
urlstringYesHTTPS URL that will receive POST requests
event_typesstring[]YesEvent types to subscribe to
environmentstringNolive (default) or test

Response (201 Created)

json
{
"endpoint": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Order notifications",
"url": "https://example.com/webhooks/synapse",
"event_types": ["email_delivered", "email_bounced", "email_opened"],
"is_active": true,
"environment": "live",
"consecutive_failures": 0,
"suspended_at": null,
"created_at": "2026-05-06T10:00:00Z",
"updated_at": "2026-05-06T10:00:00Z"
},
"signing_secret": "whsec_a1b2c3d4e5f6..."
}
Warning

The signing_secret is returned only in the creation response. Store it securely -- you cannot retrieve it again.


Update Endpoint

PATCH /v1/workspace/webhook-endpoints/{id}

Permission: webhooks:write

Update the name, URL, event types, or active status. Re-enabling a suspended endpoint resets the failure counter.


Rotate Secret

POST /v1/workspace/webhook-endpoints/{id}/rotate-secret

Permission: webhooks:write

Generates a new signing secret. The old secret is immediately invalidated.


Test Delivery

POST /v1/workspace/webhook-endpoints/{id}/test

Permission: webhooks:write

Sends a synthetic test event to verify your endpoint is reachable.

json
{
"event_type": "email_delivered"
}

Delivery History

GET /v1/workspace/webhook-endpoints/{id}/deliveries

Permission: webhooks:read

Returns a paginated list of delivery attempts with status, HTTP response code, duration, and error details.

ParameterTypeDefaultDescription
status_filterstring(all)Filter by success or failed
limitinteger20Max items per page (max 100)
offsetinteger0Pagination offset

Plan Limits

PlanMax Webhook Endpoints
Free2
Starter5
Growth15
EnterpriseUnlimited