Integration

PingBase Webhooks

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.

Any HTTP endpoint Pro plan — $9/mo Full JSON payload
Get started free →

Webhook payload

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.

Add a webhook channel

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"
  }'

Common use cases

PagerDuty / OpsGenie

Route incidents to your on-call rotation. Use the PagerDuty Events API v2 URL as the webhook endpoint.

Zapier / Make

Chain downtime events to any action — send an SMS, create a Jira ticket, update a Google Sheet, post to any service Zapier supports.

Custom internal dashboards

POST events to your own backend to aggregate monitoring data alongside your other telemetry.

Telegram / custom bots

Route to a small proxy server that reformats the payload and forwards to any channel not natively supported.

Receiving webhooks (Node.js example)

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)

Connect to anything

Webhooks are included in PingBase Pro at $9/month, alongside Slack, Discord, 10 monitors, and a public status page.

Start free →