Skip to documentation
Dashboard
Webhooks

Create a webhook endpoint

Register a public HTTPS destination for selected delivery events.

POST/api/v1/webhooks
On this page

Authentication

Send a RouteKite API key as a Bearer token. This endpoint requires the webhook:manage scope.

Required headers
NameTypeRequirementDescription
AuthorizationstringRequiredBearer API key with the required workspace scope.Example: Bearer rk_your_key

Request body

Request fields
NameTypeRequirementDescription
urlhttps URLRequiredA public HTTPS endpoint on port 443.
descriptionstringOptionalA short label, up to 160 characters.
eventsevent[]RequiredOne or more unique email delivery event names.

Response

Response fields
NameTypeRequirementDescription
objectstringAlwaysAlways webhook_endpoint.
iduuidAlwaysEndpoint ID.
urlurlAlwaysThe validated public HTTPS URL.
descriptionstringAlwaysThe endpoint label, or an empty string.
event_typesevent[]AlwaysThe subscribed normalized delivery events.
statestringAlwaysThe endpoint state.
created_atdate-timeAlwaysWhen the endpoint was created.
signing_secretstringCreation onlySecret used to verify signed requests. Present for default API creation only; omitted with secret_delivery=dashboard.
setup_urlhttps URLDashboard handoff onlyAuthenticated setup page for the creating member. The URL contains no signing secret.
setup_secret_expires_atdate-timeDashboard handoff onlyEnd of the one-time reveal window, 24 hours after creation.

Signing secret

The creation response includes the endpoint signing secret. Store it only in your server environment and use it to verify every request.

AI clients use the optional secret_delivery=dashboard query parameter instead. That response contains a setup_url, not signing_secret. The creating member opens the link in RouteKite, verifies their password, and saves the secret once within 24 hours. Existing webhooks and default API creation remain unchanged.

Workspace capacity

A workspace can keep up to 10 active webhook endpoints. Delete an unused endpoint before creating another after the limit is reached.

Errors

StatusCodeWhat it meansWhat to do
400INVALID_REQUESTThe endpoint input or identifier is invalid.Correct the reported field.
401UNAUTHORIZEDThe API key is invalid.Check the Bearer header.
403FORBIDDENThe key lacks webhook:manage access.Use a key with the required scope.
404WEBHOOK_NOT_FOUNDThe endpoint is unavailable in this workspace.Check the endpoint ID and workspace.
409WEBHOOK_ALREADY_EXISTSThe destination is already registered.Use the existing endpoint or delete it first.
409WEBHOOK_ENDPOINT_LIMIT_REACHEDThe workspace already has 10 active webhook endpoints.Delete an unused endpoint before creating another.
422INVALID_WEBHOOK_URLThe destination is not a public HTTPS endpoint.Use a public HTTPS URL on port 443.
503WEBHOOK_DESTINATION_UNAVAILABLEThe destination could not be resolved because of a transient DNS failure.Retry the same request after a short delay.
429RATE_LIMITEDToo many requests were sent in a short period.Honor Retry-After before retrying.
500 / 503INTERNAL_ERRORThe operation could not complete.Retry after a short delay.