Skip to content

Webhooks

Receive real-time notifications about monitor events.

  1. Go to Settings → Webhooks
  2. Click Add Webhook
  3. Enter your endpoint URL
  4. Select events to receive
  5. Save the webhook

Triggered when a monitor fails.

{
"event": "monitor.down",
"monitor": {
"id": "mon_abc123",
"name": "Production API",
"url": "https://api.example.com"
},
"incident": {
"started_at": "2024-01-15T10:30:00Z",
"error": "Connection timeout"
}
}

Triggered when a monitor recovers.

{
"event": "monitor.up",
"monitor": {
"id": "mon_abc123",
"name": "Production API",
"url": "https://api.example.com"
},
"incident": {
"started_at": "2024-01-15T10:30:00Z",
"resolved_at": "2024-01-15T10:35:00Z",
"duration_seconds": 300
}
}

All webhooks include a signature header for verification:

X-Uptimenine-Signature: sha256=...

Verify using your webhook secret:

const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return `sha256=${expected}` === signature;
}

Failed webhook deliveries are retried:

  • 1st retry: 1 minute
  • 2nd retry: 5 minutes
  • 3rd retry: 30 minutes
  • Final retry: 2 hours

After 4 failed attempts, the webhook is marked as failing.