Skip to main content

Fake Incident & Status Page API

MOCK DATA

Generate coherent status-page incidents with affected components, ordered updates, exact lifecycle dates and impact/status filters.

Generated test data for fixtures and development

Base URL
/api/incidents
Capabilities
1 route Seedable
Last updated
July 29, 2026

GET /api/incidents

Live requestRuns against the public API
No key required
GET/api/incidents?status=monitoring&impact=major&component=api&componentCount=3&count=6&seed=42

Request parameters

Pin the exact lifecycle progress and nullable-date mask.

Pin minor, major or critical impact and derived component state.

Guarantee this component is included exactly once.

Exact number of distinct affected components.

Earliest creation time. With only from, to resolves 30 elapsed days later; with neither, defaults 30 UTC days before today.

Latest creation time. With only to, from resolves 30 elapsed days earlier; with neither, defaults to today's UTC end.

Advanced response options7 options

How many records to generate (1–100).

Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

Return all fields except these (comma-separated).

Response format: json envelope, ndjson (one record per line) or csv.

Pretty-print the JSON response.

Drop the envelope: return the raw array/object without data/meta wrapper.

Response

Example parameters are ready. Send the request to inspect the live response.

Route reference

Code samples Ready-to-copy requests in 4 languages
Choose a code sample language
curl "https://randomapi.dev/api/incidents?component=api&impact=major&status=monitoring&componentCount=3&count=6&seed=42"
const res = await fetch("https://randomapi.dev/api/incidents?component=api&impact=major&status=monitoring&componentCount=3&count=6&seed=42");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/incidents?component=api&impact=major&status=monitoring&componentCount=3&count=6&seed=42").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/incidents?component=api&impact=major&status=monitoring&componentCount=3&count=6&seed=42"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 6
status enum

Pin the exact lifecycle progress and nullable-date mask.

allowed: investigating | identified | monitoring | resolved
example: status=monitoring
impact enum

Pin minor, major or critical impact and derived component state.

allowed: minor | major | critical
example: impact=major
component enum

Guarantee this component is included exactly once.

allowed: api | dashboard | webhooks | uploads | billing | authentication
example: component=api
componentCount int

Exact number of distinct affected components.

default: 2
allowed: 1 – 4
example: componentCount=3
from date

Earliest creation time. With only from, to resolves 30 elapsed days later; with neither, defaults 30 UTC days before today.

example: from=2026-04-01
to date

Latest creation time. With only to, from resolves 30 elapsed days earlier; with neither, defaults to today's UTC end.

example: to=2026-04-30T23:59:59.999Z
Universal parameters Shared response and formatting options 7
count int

How many records to generate (1–100).

default: 10
allowed: 1 – 100
example: count=3
seed int

Deterministic output: the same seed always returns the same records. Omit for random (the used seed is echoed in meta.seed).

example: seed=42
fields list

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

example: fields=id,title
exclude list

Return all fields except these (comma-separated).

example: exclude=updates
format enum

Response format: json envelope, ndjson (one record per line) or csv.

default: json
allowed: json | ndjson | csv
example: format=csv
pretty boolean

Pretty-print the JSON response.

default: false
example: pretty=true
unwrap boolean

Drop the envelope: return the raw array/object without data/meta wrapper.

default: false
example: unwrap=true
Response schema Fields returned in each record 13
id string

Distinct fictional incident ID.

example: inc_72d9ae192c00_00

title string

Synthetic impact/component summary.

example: Major disruption affecting Public API

status string

investigating | identified | monitoring | resolved.

example: monitoring

impact string

minor | major | critical.

example: major

createdAt string (ISO 8601)

Incident start inside from/to.

example: 2026-04-12T09:00:00.000Z

updatedAt string (ISO 8601)

Exactly the final update timestamp.

example: 2026-04-12T10:20:00.000Z

identifiedAt string (ISO 8601) nullable

Present from identified onward.

example: 2026-04-12T09:20:00.000Z

monitoringAt string (ISO 8601) nullable

Present from monitoring onward.

example: 2026-04-12T10:20:00.000Z

resolvedAt string (ISO 8601) nullable

Present only when resolved.

example: null

durationMinutes integer nullable

Exact createdAt→resolvedAt minutes, else null.

example: null

url string (URL)

Fictional status.example.com incident URL.

example: https://status.example.com/incidents/inc_demo

affectedComponents object[]

One to four distinct components with status derived from impact/lifecycle.

example: [{"id":"api","name":"Public API","status":"partialOutage"}]

updates object[]

One to four chronological updates ending at top-level status.

example: [{"id":"upd_demo_1","status":"investigating","message":"Investigating fictional errors affecting Public API.","createdAt":"2026-04-12T09:00:00.000Z"}]

Documented examples

Build-generated requests and complete responses
3
Major API incidents under monitoring
GET /api/incidents?component=api&impact=major&status=monitoring&componentCount=3&count=6&seed=42
{
  "data": [
    {
      "id": "inc_016cfb6a5c85eac5_00",
      "title": "Major disruption affecting Public API",
      "status": "monitoring",
      "impact": "major",
      "createdAt": "2026-07-15T09:42:36.290Z",
      "updatedAt": "2026-07-15T12:28:36.290Z",
      "identifiedAt": "2026-07-15T10:51:36.290Z",
      "monitoringAt": "2026-07-15T12:28:36.290Z",
      "resolvedAt": null,
      "durationMinutes": null,
      "url": "https://status.example.com/incidents/inc_016cfb6a5c85eac5_00",
      "affectedComponents": [
        {
          "id": "api",
          "name": "Public API",
          "status": "partialOutage"
        },
        {
          "id": "billing",
          "name": "Billing",
          "status": "partialOutage"
        },
        {
          "id": "dashboard",
          "name": "Dashboard",
          "status": "partialOutage"
        }
      ],
      "updates": [
        {
          "id": "inc_016cfb6a5c85eac5_00_u1",
          "status": "investigating",
          "message": "Investigating fictional errors affecting Public API, Billing, Dashboard.",
          "createdAt": "2026-07-15T09:42:36.290Z"
        },
        {
          "id": "inc_016cfb6a5c85eac5_00_u2",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Resolved critical incidents
GET /api/incidents?status=resolved&impact=critical&count=10&seed=17
{
  "data": [
    {
      "id": "inc_bf24f73252bc1d36_00",
      "title": "Critical disruption affecting Billing",
      "status": "resolved",
      "impact": "critical",
      "createdAt": "2026-07-19T21:36:36.878Z",
      "updatedAt": "2026-07-19T23:47:36.878Z",
      "identifiedAt": "2026-07-19T21:46:36.878Z",
      "monitoringAt": "2026-07-19T22:28:36.878Z",
      "resolvedAt": "2026-07-19T23:47:36.878Z",
      "durationMinutes": 131,
      "url": "https://status.example.com/incidents/inc_bf24f73252bc1d36_00",
      "affectedComponents": [
        {
          "id": "billing",
          "name": "Billing",
          "status": "operational"
        },
        {
          "id": "api",
          "name": "Public API",
          "status": "operational"
        }
      ],
      "updates": [
        {
          "id": "inc_bf24f73252bc1d36_00_u1",
          "status": "investigating",
          "message": "Investigating fictional errors affecting Billing, Public API.",
          "createdAt": "2026-07-19T21:36:36.878Z"
        },
        {
          "id": "inc_bf24f73252bc1d36_00_u2",
          "status": "identified",
          "message": "A synthetic dependency issue affecting Billing, Public API has been identified.",
          "createdAt": "2026-07-19T21:46:36.878Z"
        },
        {
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Investigations created in April
GET /api/incidents?status=investigating&from=2026-04-01&to=2026-04-30&count=8&seed=8
{
  "data": [
    {
      "id": "inc_d10ec498125864a0_00",
      "title": "Major disruption affecting Webhook delivery",
      "status": "investigating",
      "impact": "major",
      "createdAt": "2026-04-19T07:41:12.152Z",
      "updatedAt": "2026-04-19T07:41:12.152Z",
      "identifiedAt": null,
      "monitoringAt": null,
      "resolvedAt": null,
      "durationMinutes": null,
      "url": "https://status.example.com/incidents/inc_d10ec498125864a0_00",
      "affectedComponents": [
        {
          "id": "webhooks",
          "name": "Webhook delivery",
          "status": "partialOutage"
        },
        {
          "id": "api",
          "name": "Public API",
          "status": "partialOutage"
        }
      ],
      "updates": [
        {
          "id": "inc_d10ec498125864a0_00_u1",
          "status": "investigating",
          "message": "Investigating fictional errors affecting Webhook delivery, Public API.",
          "createdAt": "2026-04-19T07:41:12.152Z"
        }
      ]
    },
    {
      "id": "inc_1d0f2fb232511ae2_01",
      "title": "Critical disruption affecting File uploads",
      "status": "investigating",
      "impact": "critical",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

About this API

Coverage & behavior

Generates fictional operational incidents for status pages, service-health dashboards and incident timelines. Every record follows one strict progression: investigating → identified → monitoring → resolved. The selected top-level status controls exactly how much of that sequence exists and which nullable timestamps are present.

impact controls every affected component's current condition: minor incidents use degraded performance, major incidents use partial outage, critical incidents use major outage, and resolved incidents restore every component to operational. component guarantees one named component is included, while componentCount fixes the exact distinct total. from/to constrain incident creation.

Updates, names and URLs are synthetic. Every URL uses reserved example.com, messages explicitly call the event fictional/synthetic, and the object makes no status-page vendor compatibility claim. Update arrays are capped at four, so generation and response size stay bounded.

Use it for

  • Populate a public status page with every incident state
  • Test incident update timelines and affected-component badges
  • Create reproducible outage fixtures without implying a real service failure

Frequently asked questions

Do incident updates follow a valid order?

Yes. Every incident starts at investigating and includes each lifecycle update exactly once up to the selected top-level status.

Do resolved incidents restore their components?

Yes. Every affected component is operational when status is resolved; unresolved component states are derived from impact.

Can I guarantee that a component is affected?

Yes. Set component; it is included exactly once, and componentCount still determines the exact distinct total.

Are these records from a real monitoring service?

No. Titles, updates, component states and example.com URLs are explicitly fictional fixtures with no vendor compatibility claim.

Standards & references