Getting started
To start using webhooks, you’ll need to create a webhook endpoint. You can do this in the same way that you’d create any other endpoint in your application. If you’d like to play around with our webhooks, we’d recommend using Svix Play which lets you set up an endpoint and inspect payloads via their web interface. There are also other services (e.g. ngrok) which have great debugging tools. Once you have a webhook endpoint set up, head to Settings → Webhooks to configure it. From there you can choose which event types to receive, send test events, see recent deliveries, and retry any failed events.Status codes, errors and retries
When processing webhooks, return a 2xx status code (e.g.200 OK or 204 No Content). If your endpoint returns a non-2xx status code, we’ll retry with exponential backoff over the next 24 hours. If delivery attempts repeatedly fail over a 5 day period, we’ll disable the endpoint and notify you by email.
If you miss some messages (e.g. due to unexpected downtime), Svix offers options for replaying messages which you can access via Settings → Webhooks.
Verifying webhooks
To verify that a webhook came from incident.io, check the signature in the request headers using the Signing secret from your webhook endpoint settings. Each webhook includes three headers:Keeping another system in sync
A common use case is keeping another system up to date with incident.io. Since we deliver webhooks individually over HTTPS, they may not arrive in order. We recommend building your integration to:- Receive a webhook about an incident (e.g. INC-123)
- Fetch the latest state from the API
- Save that state to your system