Update an endpoint
/v1/webhooks/{id}Secret key — sk_… or sk_test_… · Base URL https://api.volanea.com
Changes an endpoint's URL, description, event patterns, or enabled flag. Omitted fields are left as they are.
The signing secret is not rotated and cannot be set here, so an endpoint you edit keeps verifying against the secret you already deployed.
enabled: false is the reversible way to stop deliveries — the endpoint and its delivery history survive, and flipping it back resumes without re-registering.
Path parameters
idstringrequiredEndpoint id.
Body
Required · application/json
urluridescriptionstringeventsstring[]enabledboolean
Response
200 · WebhookEndpoint
webhookEndpointIdstringrequiredprojectIdstringurlurirequireddescriptionstring | nullsecretstringrequired`whsec_…` — used to HMAC-SHA256-sign every delivery (`X-Volanea-Signature: t=<ms>,v1=<hex>` over `<t>.<body>`).
eventsarray | nullEvent name patterns, e.g. `["email.*", "contact.created"]`. Empty or null = all events.
enabledbooleanrequiredcreatedAtdate-timerequired
Errors
Every failure returns the standard envelope — branch on `code`, never on the wording of `error`.
401Missing or invalid API key.404Not found.422Request validation failed (code `validation_error`, 422).
Request
curl https://api.volanea.com/v1/webhooks/id_123 \
-X PATCH \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/hooks/volanea",
"description": "What this is for",
"events": [
"<events>"
]
}'Response
200 · application/json
{
"success": true,
"data": {
"webhookEndpointId": "<webhookEndpointId>",
"projectId": "<projectId>",
"url": "https://yourapp.com/hooks/volanea",
"description": "What this is for",
"secret": "<secret>",
"events": [
"<events>"
],
"enabled": true,
"createdAt": "2026-01-01T09:00:00.000Z"
}
}92 endpoints · OpenAPI document