Signed JSON webhooks for any custom workflow
Wire PingInsight into anything. On every confirmed outage and recovery we POST a structured JSON payload to your endpoint, signed with HMAC-SHA256 so you can verify it came from us — perfect for custom automations, internal tools, and chatops you build yourself. The payload carries the monitor, event type, confirming regions, timestamps, and the exact downtime on recovery.
Set up in minutes
In-app path: Alerting → Channels → Add channel → Webhook
- 1.Add a webhook channel under Alerting and set your receiving URL.
- 2.Copy the signing secret and verify the HMAC-SHA256 signature on your endpoint.
- 3.Attach the channel to monitors, an escalation policy, or an on-call schedule.
- 4.Send a test alert and confirm your endpoint accepts the signed payload.
What you can do
- ✓Trigger custom automation on confirmed outages and recoveries
- ✓Forward alerts into an internal tool or a channel we don't natively support
- ✓Verify authenticity with HMAC-SHA256 before acting on a payload
- ✓Build chatops and runbooks around structured event data
A sample Webhooks alert
!PingInsight→ Webhooksnow
POST /your-endpoint · X-PingInsight-Signature: sha256=…
{
"event": "monitor.down",
"monitor": { "name": "api.example.com", "type": "http" },
"regions_confirming": ["us-east-2", "eu-west-1"],
"error": "HTTP 503",
"detected_at": "2026-06-29T14:03:07Z"
}Exact formatting varies by Webhooks; the live alert includes the monitor, confirming regions, and the precise downtime on recovery.
Frequently asked questions
- How do I verify the HMAC-SHA256 signature?
- Compute HMAC-SHA256 over the raw request body using your channel signing secret, then compare it (with a constant-time check) to the value in the signature header. Reject any request whose computed digest doesn't match — that's how you confirm the payload genuinely came from PingInsight.
- What happens if my endpoint is down when an alert fires?
- Sign every payload and make your handler idempotent using the event's monitor and timestamp, since a non-2xx response may be retried. Pair the webhook with a second channel such as email so a failing endpoint never means a missed outage.
- Why is my signature check failing on a valid payload?
- The most common cause is hashing a re-serialized body instead of the raw bytes — JSON re-encoding changes whitespace and key order, breaking the digest. Verify against the exact raw request body, and confirm you're using the current channel secret rather than a rotated one.
See all alerting integrations or read about incident management.
Start monitoring in under a minute
Free forever, no credit card. Upgrade when you need finer intervals.