---
title: "Get the public snapshot of a status page"
method: GET
path: "/api/status_pages_public/{slug}"
tags: ["Status Pages"]
---

# Get the public snapshot of a status page

`GET /api/status_pages_public/{slug}`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/status_pages_public/{slug}`
- Auth: none required
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/status_pages_public/:slug/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `slug` string, required

## Response `200`

Success

- PublicStatusPageSnapshot
  - `accent_color` string, nullable
  - `brand_name` string, nullable
  - `current` SnapshotCurrent, required: The hot snapshot half: rewritten on state change (~1-2KB).
    - `components` CurrentComponent[], required
      - `key` string, required: Per-page opaque key ("c0", "c1", …) that joins current↔history on the client. Deliberately NOT the internal component id — that id is a sequential internal handle and must not reach the public plane.
      - `name` string, required
      - `status` 'operational' | 'no_data' | 'maintenance' | 'degraded' | 'partial_outage' | 'major_outage', required: Component status by notice precedence: Major > Partial > Degraded > Maintenance > Operational. NoData is orthogonal (a dead probe is gray, not green — and not an outage either).
    - `generated_at` integer, required
    - `notices` PublicNotice[], required
      - `body` string, required
      - `excluded_from_uptime` boolean, required
      - `impact` 'none' | 'degraded' | 'partial_outage' | 'major_outage', required
      - `kind` 'incident' | 'maintenance' | 'info', required
      - `resolved_at` integer, nullable
      - `starts_at` integer, required
      - `state` 'scheduled' | 'active' | 'resolved', required
      - `title` string, required
      - `updates` PublicNoticeUpdate[], required: The "investigating / mitigated / resolved" narrative timeline, oldest first. No internal update id — same IDOR reasoning as the notice.
        - `at` integer, required
        - `body` string, required
    - `overall` 'operational' | 'no_data' | 'maintenance' | 'degraded' | 'partial_outage' | 'major_outage', required: Component status by notice precedence: Major > Partial > Degraded > Maintenance > Operational. NoData is orthogonal (a dead probe is gray, not green — and not an outage either).
  - `favicon_img` string, nullable
  - `history` SnapshotHistory, required: The cold snapshot half: rewritten on day rollover or notice change (~30KB).
    - `components` HistoryComponent[], required
      - `daily` DayBucket[], required
        - `date` string, required
        - `downtime_min` integer, required
        - `grade` 'ok' | 'minor' | 'major' | 'severe' | 'maint' | 'no_data', required: Day-cell grade, Statuspage-style: one confirmed blip colors a day yellow at most, never solid red.
        - `maint_min` integer, required
      - `key` string, required: Same per-page opaque key as `CurrentComponent.key` — the client join handle, never the internal component id.
      - `name` string, required
      - `uptime` UptimeWindows, required
        - `d1` number, double, nullable
        - `d30` number, double, nullable
        - `d7` number, double, nullable
        - `d90` number, double, nullable
    - `generated_at` integer, required
  - `logo_img` string, nullable
  - `name` string, required

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
