Native channel: Webhooks
The native webhook channel POSTs a structured JSON body the instant a monitor fails, and again when it recovers. Route it into your own services, a queue, a logger, or any tool that speaks HTTP. No middleware, no polling.
Works on every paid plan. 14-day trial, no card required.
{
"monitorName": "Checkout API",
"monitorType": "api",
"monitorUrl": "https://api.acme.io/v2/checkout",
"status": "down",
"httpCode": 503,
"responseTime": 8412,
"location": "London, UK",
"timestamp": "2026-07-25T09:41:07Z"
}The generic webhook channel needs nothing more than a URL that accepts a POST. If your endpoint can read JSON, you are ready.
In your account, open Alert Channels and choose Webhook as a new destination.
Enter the HTTPS endpoint that will receive the POST. Add a secret token if you want to verify it.
Select which monitors should notify this webhook. Mix and match across any of the 8 types.
Choose how many consecutive failures must occur before the webhook fires. Save and you are live.
The body is deliberately flat and predictable so your handler can act on it without guesswork. Here is every field you can rely on.
| Field | Type | Meaning |
|---|---|---|
| monitorName | string | Human label you gave the monitor. |
| monitorType | string | http, keyword, tcp, port, api, heartbeat, dns or domain. |
| monitorUrl | string | The endpoint or host being watched. |
| status | string | down on failure, up on recovery. |
| httpCode | number | The status code returned, where applicable. |
| responseTime | number | Milliseconds for the failing or recovering check. |
| location | string | Which monitoring location observed the event. |
| timestamp | string | ISO 8601 UTC time of the state change. |
Two events share one shape. The only difference is the status field, so a single handler covers both the incident and the all-clear.
{
"monitorName": "Marketing Site",
"monitorType": "http",
"status": "down",
"httpCode": 502,
"responseTime": 15000,
"location": "Frankfurt, EU",
"timestamp": "2026-07-25T09:41:07Z"
}{
"monitorName": "Marketing Site",
"monitorType": "http",
"status": "up",
"httpCode": 200,
"responseTime": 240,
"location": "Frankfurt, EU",
"timestamp": "2026-07-25T09:52:33Z"
}Webhooks are one of eight channels built directly into PulseStack. Use them alone or alongside any of the others on the same monitor.
SMS and voice are available as an add-on on the Team and Enterprise plans. Zapier and Google Chat connect through this webhook channel rather than as native integrations.
Whatever you watch, the same JSON contract applies. Attach the webhook channel to any of these.
Status codes, response time and content checks for any URL.
Confirm a phrase is present, or fire when it disappears.
Reachability checks for any host by ICMP-style probing.
Watch a specific TCP port on SMTP, database or custom services.
Multi-step requests with header, body and JSON assertions.
Cron and background jobs check in, silence raises an alert.
Track A, AAAA, MX, CNAME and TXT records for drift.
Advance warning before a domain lapses and traffic dies.
Pipe events into an internal router that already knows who is on rota, and let it decide who to page.
Append each payload to a data store or observability pipeline to build your own uptime history and audit trail.
Kick off a script that restarts a service, flushes a cache or fails over, the moment a down event lands.
Point the webhook at a Zapier catch-hook and branch into thousands of downstream apps without native support.
Use a Google Chat incoming webhook URL so alerts appear in the room your team already lives in.
Have your receiver flip a tile on an internal dashboard so the whole team sees state without logging in.
10 monitors, 60s checks, all monitor and alert types.
50 monitors plus SSL, DNS and domain insights.
100 monitors, server diagnostics and 3 seats.
200 monitors, 30s checks and 5 seats.
The Free plan covers 5 HTTP monitors with email alerts. Every paid plan starts with a 14-day trial and needs no card up front.
On each alert PulseStack POSTs a JSON payload containing the monitor, its up or down status, the observed HTTP code and the response timing. You can parse that body and route it into any system you run.
Alerts fire on both failure and recovery, after the number of consecutive failed checks you configure. That consecutive-failure threshold keeps noise down so a single blip never triggers a page, while a genuine outage still alerts quickly.
Yes. Services such as Zapier or Google Chat are not native PulseStack integrations, but they accept incoming webhooks. Point the PulseStack Webhook alert at their incoming webhook URL and the same JSON payload is delivered there.
All of them. The six core monitor types - HTTP, Keyword, TCP Ping, Port, API and Heartbeat - plus DNS and Domain Expiry monitors can all route their alerts through the Webhook channel.
Webhooks are one of the eight native alert channels. The free plan includes five monitors with HTTP checks, and paid plans add all monitor types and a 14-day trial so you can wire webhooks into your full setup.
No. You only need a URL that accepts an HTTP POST, such as a serverless function or an internal API route. PulseStack delivers the payload directly with no polling or extra infrastructure in between.
Add the webhook channel, attach it to your monitors and start receiving structured JSON on failure and recovery. It takes minutes.