OpenUptime

Uptime monitoring webhooks

Have OpenUptime POST a small JSON document to your URL whenever an incident opens, escalates or resolves, and route it wherever you like.

Set it up

  1. Set up an endpoint that accepts a POST with a JSON body and answers with a 2xx status.
  2. In OpenUptime, open Alerting, choose Add channel and pick Webhook.
  3. Paste the endpoint URL. Put a long random token in the path or query so only OpenUptime knows it.
  4. Save, then press Test: a test message arrives within seconds, and the delivery log below the channels shows whether it went through.

What arrives

Request body
{
  "kind": "incident.opened",
  "incident": {
    "id": "<incident id>",
    "title": "Expected 200, got 503",
    "startedAt": "2026-11-01T09:14:05.000Z"
  },
  "monitor": {
    "name": "Checkout API",
    "target": "https://api.example.com/health"
  },
  "project": { "id": "<project id>", "name": "Production" }
}

Good to know about Webhook

  • The kind field is incident.opened, incident.resolved or, when this channel is an escalation level, incident.escalated with count set to the level. A slow-response incident adds "slow": true, a reopened one "reopened": true.
  • The project field names the monitor's project, so one endpoint can route alerts for every project. A recovery adds incident.resolvedAt.
  • Any 2xx answer counts as delivered. Each request waits up to 10 seconds, and a failed alert is tried 3 times over about six minutes.

On every channel

  • Every channel is available on every plan, Free included.
  • Choose per monitor which channels it alerts, or turn a channel on for every new monitor.
  • Until someone acknowledges an incident, it can repeat on the mobile app (up to 10 times, by email too if you choose) and escalate to other channels in up to 3 levels.
  • A failed delivery is retried, and the delivery log shows what was sent to which channel and why anything failed.

Get Webhook alerts

Add a monitor, connect the channel and press Test. The Free plan includes every alert channel.

Questions

Is the request signed?

Not today. Treat the URL as the secret: use HTTPS and a long random token in it, and change the URL if it leaks.

Can the webhook reach an address on my private network?

No. On the hosted service, alert requests only go to public addresses.

Can I use it with Zapier, n8n or Make?

Yes. Use their webhook trigger URL as the endpoint and map the fields above.

可用性监控 Webhook

每当事件开始、升级或结束时,OpenUptime 都会向你的地址 POST 一段简短的 JSON,你可以把它转发到任何地方。

配置步骤

  1. 准备一个接收 JSON 格式 POST 请求、并返回 2xx 状态码的接口。
  2. 在 OpenUptime 中打开“告警”,点击“添加渠道”,选择 Webhook。
  3. 粘贴接口地址。在路径或查询参数里加一段较长的随机令牌,这样只有 OpenUptime 知道这个地址。
  4. 保存后点击“测试”:几秒内就会收到一条测试消息,渠道列表下方的投递记录会显示是否发送成功。

收到的内容

请求体
{
  "kind": "incident.opened",
  "incident": {
    "id": "<incident id>",
    "title": "Expected 200, got 503",
    "startedAt": "2026-11-01T09:14:05.000Z"
  },
  "monitor": {
    "name": "Checkout API",
    "target": "https://api.example.com/health"
  },
  "project": { "id": "<project id>", "name": "Production" }
}

关于 Webhook 的说明

  • kind 字段的值为 incident.opened、incident.resolved;如果这个渠道是某一级升级目标,还会收到 incident.escalated,count 为升级级别。响应变慢引起的事件会加上 "slow": true,重新打开的事件会加上 "reopened": true。
  • project 字段标明监控所属的项目,一个接口就能为所有项目分发告警。恢复时 incident 中会加上 resolvedAt。
  • 任何 2xx 响应都算投递成功。每次请求最多等待 10 秒,失败的告警会在大约六分钟内尝试 3 次。

所有渠道通用

  • 所有渠道在所有套餐中都可用,包括免费版。
  • 可以为每个监控选择要通知的渠道,也可以让某个渠道默认对所有新监控开启。
  • 在有人确认事件之前,告警可以在手机 App 上重复提醒(最多 10 次,也可以选择同时发邮件),并最多分 3 级升级到其他渠道。
  • 投递失败会自动重试,投递记录会显示发到了哪个渠道、失败的原因是什么。

接收 Webhook 告警

添加一个监控,连接渠道并点击“测试”。免费版包含所有告警渠道。

常见问题

请求有签名吗?

目前没有。把地址本身当作密钥:使用 HTTPS,并在其中加入一段较长的随机令牌;如果泄露就更换地址。

Webhook 能访问内网地址吗?

不能。在托管服务上,告警请求只会发往公网地址。

能配合 Zapier、n8n 或 Make 使用吗?

可以。把它们的 Webhook 触发地址作为接口地址,再映射上面的字段即可。