Integration
POST downtime and recovery events to any HTTP endpoint. Connect PingBase to PagerDuty, OpsGenie, custom dashboards, Zapier, Make, or any internal tool that accepts webhooks.
PingBase sends a POST request with a JSON body to your endpoint when a monitor changes state:
{
"event": "monitor.down",
"monitor": {
"id": "mon_abc123",
"name": "Production API",
"url": "https://api.yourapp.com/health"
},
"incident": {
"started_at": "2026-04-05T14:32:00Z",
"status_code": 503,
"error": "Service Unavailable"
},
"checked_at": "2026-04-05T14:32:15Z"
}
For recovery events, event is "monitor.up" and the payload includes incident.duration_seconds.
Via dashboard
Go to Settings → Alert Channels → Add channel → Webhook. Enter your endpoint URL and save.
Via API
curl -X POST https://pingbase-worker.workers.dev/api/alert-channels \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "webhook",
"name": "PagerDuty",
"webhook_url": "https://events.pagerduty.com/v2/enqueue"
}'
Route incidents to your on-call rotation. Use the PagerDuty Events API v2 URL as the webhook endpoint.
Chain downtime events to any action — send an SMS, create a Jira ticket, update a Google Sheet, post to any service Zapier supports.
POST events to your own backend to aggregate monitoring data alongside your other telemetry.
Route to a small proxy server that reformats the payload and forwards to any channel not natively supported.
import express from 'express'
const app = express()
app.use(express.json())
app.post('/pingbase-webhook', (req, res) => {
const { event, monitor, incident } = req.body
if (event === 'monitor.down') {
console.log(`ALERT: ${monitor.name} is DOWN — ${incident.error}`)
// send SMS, create ticket, etc.
}
if (event === 'monitor.up') {
console.log(`RECOVERED: ${monitor.name} after ${incident.duration_seconds}s`)
}
res.status(200).json({ ok: true })
})
app.listen(3000)
Webhooks are included in PingBase Pro at $9/month, alongside Slack, Discord, 10 monitors, and a public status page.
Start free →