API Documentation
Access IncidentHub data programmatically. All endpoints return JSON and require no authentication for read access.
Base URL
Data Endpoints
/api/incidentsList incidents with filtering and pagination
Parameters
companystringFilter by company slug (e.g. aws, github)severitystringFilter by severity: critical, high, medium, lowsearchstringFull-text search on title and summarytagstringFilter by tag name (e.g. network, api)dateFromstringStart date filter (YYYY-MM-DD)dateTostringEnd date filter (YYYY-MM-DD)pagenumberPage number (default: 1)page_sizenumberResults per page (default: 20)Example
/api/incidents?company=aws&severity=critical&page=1
/api/incidents/:idGet detailed incident by ID, including timeline and sources
Parameters
idnumberIncident IDExample
/api/incidents/413
/api/incidents/:id/similarFind similar incidents based on shared tags
Parameters
idnumberIncident IDlimitnumberMax results (default: 5)Example
/api/incidents/413/similar
/api/companiesList all tracked companies with service info
Example
/api/companies
/api/companies/:slugGet company details by slug
Parameters
slugstringCompany slug (e.g. aws)Example
/api/companies/aws
/api/companies/:slug/statsCompany-specific stats: incidents, severity breakdown, reliability score, uptime
Parameters
slugstringCompany slugExample
/api/companies/aws/stats
/api/statsGlobal statistics: incident counts, monthly trends, reliability leaderboard, resolution times
Example
/api/stats
/api/reliabilityReliability leaderboard: all companies ranked by reliability score
Example
/api/reliability
Alert Endpoints
/api/alertsList your active alert subscriptions
Example
/api/alerts
/api/alertsCreate a new alert subscription (webhook, Slack, PagerDuty, OpsGenie, or email)
Parameters
webhookUrlstringWebhook URL ā auto-detects Slack, Google Chat, PagerDuty, OpsGenieemailstringEmail address for alert deliverycompanyIdsnumber[]Filter by company IDs (empty = all)severityFilterstring[]Filter by severity (empty = all)slackFormatbooleanSend Slack Block Kit formatted payloadsExample
POST /api/alerts
{
"webhookUrl": "https://hooks.slack.com/services/...",
"companyIds": [],
"severityFilter": ["critical", "high"],
"slackFormat": true
}/api/alerts/:idDelete an alert subscription
Parameters
idnumberSubscription IDExample
DELETE /api/alerts/1
Webhook Payload Format
When a new incident is detected, subscribed webhooks receive a POST request with this payload:
{
"event": "new_incident",
"incident": {
"id": 413,
"title": "Elevated Error Rates for API",
"severity": "high",
"company": "OpenAI",
"sourceUrl": "https://status.openai.com/...",
"timestamp": "2026-03-06T12:00:00.000Z"
}
}Slack Integration
Set slackFormat: true when creating an alert subscription. The webhook will send Slack Block Kit formatted messages:
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "šØ New Incident: OpenAI"
}
},
{
"type": "section",
"fields": [
{ "type": "mrkdwn", "text": "*Title:*\nElevated Error Rates" },
{ "type": "mrkdwn", "text": "*Severity:*\nš“ critical" }
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": { "type": "plain_text", "text": "View Incident" },
"url": "https://incidenthub-bay.vercel.app/incident/413"
}
]
}
]
}Public Status API
/api/v1/status/:providerGet real-time status for a specific provider. Use 'all' for all providers.
Parameters
providerstringCompany slug (e.g. openai, aws) or "all"Example
/api/v1/status/openai
Response
{
"provider": "openai",
"name": "OpenAI",
"status": "operational",
"activeIncidents": [],
"incidents24h": 0,
"incidents7d": 3,
"lastIncident": { ... },
"updatedAt": "2026-03-11T..."
}Uptime Badge
Embed a live status badge in your README or documentation. Updates every 5 minutes.
Markdown
[](https://incidenthub-bay.vercel.app/openai-outages) [](https://incidenthub-bay.vercel.app/anthropic-outages)
HTML
<a href="https://incidenthub-bay.vercel.app/openai-outages"> <img src="https://incidenthub-bay.vercel.app/api/badge/openai" alt="OpenAI Status" /> </a>
Embeddable Status Widget
Add a live status widget to your website. Shows real-time status for your chosen AI and cloud providers.
Basic usage
<script src="https://incidenthub-bay.vercel.app/api/widget?providers=openai,anthropic,aws" async></script>
Dark theme
<script src="https://incidenthub-bay.vercel.app/api/widget?providers=openai,anthropic&theme=dark" async></script>
Parameters
providersComma-separated provider slugs. Omit for all providers.theme"light" (default) or "dark"Authentication
Public endpoints work without authentication. For tracked usage and higher rate limits, pass your API key as a Bearer token:
curl -H "Authorization: Bearer ih_YOUR_API_KEY" \ https://incidenthub-bay.vercel.app/api/v1/status/openai
Generate your API key in Profile Settings.
Rate Limits
Rate limits depend on your plan. Without an API key, fair usage applies.
| Plan | Requests / Day |
|---|---|
| Free | 100 |
| Pro | 5,000 |
| Teams | 50,000 |
| Enterprise | Unlimited |