Create a webhook subscription
/api/v1/webhooksCreates a webhook subscription for the active Application's current Environment from a url, an event_types array, and an optional description. Use ["*"] to subscribe to all events (current and future); the wildcard cannot be mixed with concrete types, and any unsupported event type returns 400. The response includes a freshly minted HMAC signing secret that is shown only once at creation — store it to verify delivery signatures. Requires the webhook.manage permission.
Authentication
Authorization Option A JWT access token. Never send alongside X-API-Key: a request carrying both is refused.
X-API-Key Option B API key for management-tier access. Never send alongside an Authorization header: a request carrying both is refused.
Request body
application/json
urlstring Required event_typesstring[] Required descriptionstring Optional Responses
application/json
data *WebhookCreatedResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Returned object
curl -X POST "https://auth.canopy-io.com/api/v1/webhooks" \ -H "X-API-Key: $CANOPY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "string", "event_types": [ "string" ], "description": "string" }'
{ "data": { "id": "string", "scope": "environment", "url": "string", "event_types": [ "string" ], "description": "string", "is_active": false, "created_at": "2026-04-20T12:00:00.000Z", "secret": "string" } }
Tell us how we can improve this guide.