pushcloud status
History Get updates

Webhook format

Slack, Discord, Teams, Home Assistant, ntfy, Gotify and Pushover URLs are recognised from the URL itself and receive that service's native format. Everything else receives the JSON below, which is a stable contract.

Payload
{
  "event": "incident.updated",
  "incident": {
    "id": "inc_8f2a",
    "title": "Pushes are not being delivered",
    "status": "identified",
    "impact": "major",
    "components": ["Push delivery"],
    "url": "https://status.pushcloud.app/incidents/inc_8f2a"
  },
  "update": {
    "body": "A fix is deploying now.",
    "created_at": "2026-08-12T16:42:08Z"
  }
}
Signature

Every request carries a header of the form x-pushcloud-status-signature: t=<unix>,v1=<hex>, where v1 is HMAC-SHA256 over the string t + "." + rawBody using your signing secret. The timestamp is inside the signed string, so a captured request cannot be replayed later. Reject anything more than five minutes old.

Retries

Any 2xx counts as delivered. A 429 or 5xx is retried at 30 seconds, 2 minutes, 10 minutes, 45 minutes and 3 hours, then given up on. Any other 4xx is treated as permanent. Twenty consecutive failures disables the subscription. Redirects are never followed. Each request carries x-pushcloud-status-delivery-id, stable across retries.

Back to subscribe

pushcloud.app Incident history RSS