GitHub outage on August 17, 2026: seven hours of Unicorn errors and Copilot failures

GitHub outage on August 17, 2026: seven hours of Unicorn errors and Copilot failures

Read more

Monitor dependencies now available in the v3 API

Monitor dependencies now available in the v3 API

Read more

StatusGator logo
Schedule a Demo
StatusGator logo
Use cases

IT Teams

Stay informed of outages and reduce tickets

DevOps

One status page for all your providers

Features designed specifically for K12

Advanced features designed for enterprise

Impress clients with proactive monitoring

Analyze and compare peer performance

Monitor dependencies to prevent revenue loss

Create and manage custom status pages for your product

Features

Status page

A status page with service, website, and custom monitors built-in

Status aggregation

Aggregate the status of all vendors to a single page

Monitor all your cloud services from a single dashboard

Monitor your website with uptime monitoring built-in

Monitor network connectivity

Control the status of custom monitors manually with incidents

Get notified of disruptions before they become public

Pricing

Business

For growing teams and organizations

Enterprise

For larger companies with unique needs

Education

Special plans and discounts for K12 and higher ed

Integrations

Digital Signage

Knowledge Base

Notifications

Third-party Status Pages

Atlassian Statuspage

Incident Management

Opsgenie

Private Status

AWS status
Sign In Sign Up

Get outage reports from your status page as webhooks

StatusGator webhooks now support user outage reports, so you can send reports from your status page to your own tools as soon as they’re confirmed. We’ve also added event settings to each webhook, letting you choose which notifications an endpoint receives.

Use outage reports to create support tickets, alert your on-call team, or collect reports for analysis. Each payload includes the affected service, selected components, the reporter’s comment, and their approximate location.

Choose which events to receive

Each webhook now has three event options:

EventWhen it’s sentPayload type
User outage reportsSomeone reports an issue on your status page and the report is confirmed.OutageReport
Status changesA monitor changes status.StatusChange
Early Warning SignalsStatusGator detects an issue before the provider acknowledges it.EarlyWarningSignal

New webhooks have all three events enabled by default. Existing webhooks continue receiving status changes and Early Warning Signals. To receive outage reports too, enable User outage reports in the webhook’s settings.

You can also use separate endpoints for different events. For example, send outage reports to your support system and status changes to your incident management tool.

Enable outage report webhooks

  1. Open the board associated with your status page.
  2. Go to Integrations → Webhook.
  3. Select User outage reports and any other events you want to receive.
  4. Save your settings.

The next confirmed report submitted through that board’s status page will be sent to your endpoint. Outage reports use your existing signing secret, custom headers, delivery logs, and retries.

Example payload

Outage reports arrive as HTTP POST requests with a JSON body. They always use the v3 format, regardless of the version selected in your webhook settings.

POST https://your-endpoint.example.com/statusgator
Content-Type: application/json
X-Webhook-Version: 3.0
X-Signature: 5d1c0b6e…
{
  "type": "OutageReport",
  "recorded_at": "2026-10-15T14:22:09Z",
  "board": {
    "id": "X1iMbb5HTm",
    "name": "Production"
  },
  "id": "lpZ4nQy7Hk",
  "service": {
    "id": "OUQJLhNcSb",
    "name": "OpenAI",
    "icon_url": "https://favicons.statusgator.com/openai.png",
    "official": true
  },
  "monitor": {
    "id": "UIMPLWZg9D",
    "name": "OpenAI",
    "monitor_type": "ServiceMonitor",
    "icon_url": "https://favicons.statusgator.com/openai.png"
  },
  "summary": {
    "id": "5rX2kQ",
    "description": "Service down"
  },
  "comment": "I can't reach ChatGPT.",
  "email": "reporter@example.com",
  "components": [
    {
      "id": "9aB3cD1eFg",
      "name": "Chat",
      "group_name": "APIs"
    }
  ],
  "location": {
    "city": "Seattle",
    "region": "Washington",
    "country": "United States",
    "country_code": "US"
  },
  "confirmed_at": "2026-10-15T14:22:09.123Z",
  "created_at": "2026-10-15T14:20:51.880Z"
}

Payload schema

Report fields appear directly in the JSON body. The payload matches the object returned by the outage reports API, with three additional fields: type, recorded_at, and board.

FieldTypeDescription
typestringAlways "OutageReport".
recorded_atstringWhen the report was confirmed, in ISO 8601 UTC format.
boardobjectThe board whose status page received the report.
board.idstringPublic ID of the board.
board.namestringName of the board.
idstringPublic ID of the outage report.
serviceobjectThe service being reported.
service.idstringPublic ID of the service.
service.namestringName of the service.
service.icon_urlstring or nullURL of the service icon.
service.officialbooleanWhether this is an official StatusGator service.
monitorobject or nullThe monitor on your board for this service. null if the board no longer has it.
monitor.idstringPublic ID of the monitor.
monitor.namestringDisplay name of the monitor.
monitor.monitor_typestringOne of ServiceMonitor, WebsiteMonitor, PingMonitor, or CustomMonitor.
monitor.icon_urlstring or nullURL of the monitor icon.
summaryobject or nullThe problem category, selected by the reporter or derived from their comment.
summary.idstringID of the category.
summary.descriptionstringName of the category, such as "Service down".
commentstring or nullThe reporter’s description of the problem.
emailstring or nullThe reporter’s email address, or null if none was provided.
componentsarrayComponents the reporter marked as affected. May be empty.
components[].idstringPublic ID of the component.
components[].namestringName of the component.
components[].group_namestring or nullThe component’s group.
locationobjectThe reporter’s approximate location, determined from their IP address.
location.citystring or nullCity.
location.regionstring or nullRegion or state.
location.countrystring or nullCountry name.
location.country_codestring or nullISO 3166-1 alpha-2 country code, such as "US".
confirmed_atstringWhen the report was confirmed, in ISO 8601 format.
created_atstringWhen the report was submitted, in ISO 8601 format.

The reporter’s IP address is never included in the payload.

Verify incoming requests

Every request includes an X-Signature header containing the hex-encoded HMAC-SHA256 signature of the raw request body, generated using your webhook’s signing secret.

Before processing a report, calculate the signature on your server and compare it with the header. Use the raw body before JSON parsing.

Here’s a Node.js example:

const crypto = require("crypto");

function verify(rawBody, signature, secret) {
  if (
    typeof signature !== "string" ||
    !/^[a-f0-9]{64}$/i.test(signature)
  ) {
    return false;
  }

  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest();

  const received = Buffer.from(signature, "hex");

  return crypto.timingSafeEqual(received, expected);
}

Fetch outage reports through the API

If your workflow checks for reports on a schedule, you can use the new outage reports endpoint:

GET /api/v3/boards/{board_id}/outage_reports?since=2026-10-15T00:00:00Z

The endpoint returns confirmed reports, newest first, with 25 reports per page. Use the since parameter to retrieve reports confirmed at or after a specific ISO 8601 timestamp. Follow pagination to collect all matching reports.

Each report contains the same report fields as the webhook payload, without type, recorded_at, and board.

For more details, see the Webhook version 3.0 reference.

To get started, open Integrations → Webhook on your board and enable User outage reports.

Published:

by

Valeria KurolapovaVlad Alive

Share this

Valeria Kurolapova
Valeria Kurolapova Co-author

Valeria Kurolapova is the Senior Product Designer and UX Manager at StatusGator. She manages product design initiatives, focusing on improving user experience.

Vlad Alive
Vlad Alive Co-author

Vlad Alive is a Senior Software Engineer at StatusGator, helping build and scale the platform that monitors thousands of cloud services, backed by nearly two decades of software engineering experience.