---
title: "Get Public Status Page"
method: GET
path: "/public/status-pages/{slug}"
tags: ["Status pages (public)"]
---

# Get Public Status Page

`GET /public/status-pages/{slug}`

## Request

- Base URL: `https://api.fettle.sh` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fettle.sh/public/status-pages/{slug}`
- Auth: none declared

Return the public status page for a slug.

## Path parameters

- `slug` string, required

## Headers

- `if-none-match` string, nullable

## Response `200`

Successful Response

- StatusPagePublicRead: The anonymous status-page payload. ``history_days`` is the **effective** strip length after clamping by the plan's retention, so the frontend renders the axis it was actually served. ``branding_removable`` is false on FREE, PLUS and PRO, where the mandatory fettle.sh backlink is rendered by the frontend. The core does not own the backlink copy, so this description deliberately does not quote it. ``updated_at`` is when this payload was assembled — data freshness, safe to render as "Last updated" — not when the page was last edited. ``active_incidents`` and ``past_incidents`` are the public incident timelines: every open incident, and resolved incidents within a trailing window (see ``PAST_INCIDENTS_WINDOW_DAYS``/``PAST_INCIDENTS_LIMIT`` in the use case). ``subscriptions_enabled`` mirrors the plan's status-page subscriber cap, so the frontend can hide the subscribe form on a FREE org.
  - `slug` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `status` 'ALL_OPERATIONAL' | 'DEGRADED' | 'PARTIAL_OUTAGE' | 'MAJOR_OUTAGE' | 'MAINTENANCE' | 'UNKNOWN', required: Rollup status shown in the page banner.
  - `branding_removable` boolean, required
  - `history_days` integer, required
  - `updated_at` string, date-time, required
  - `groups` PublicGroupRead[], required
    - `name` string, required
    - `position` integer, required
    - `components` PublicComponentRead[], required
      - `id` string, uuid, required
      - `name` string, required
      - `status` 'OPERATIONAL' | 'DEGRADED_PERFORMANCE' | 'MAJOR_OUTAGE' | 'MAINTENANCE' | 'UNKNOWN', required: Public status of a single component on a status page.
      - `uptime_24h` number, nullable, required
      - `uptime_7d` number, nullable, required
      - `uptime_30d` number, nullable, required
      - `uptime_history` number, nullable, required
      - `history` UptimeDayPoint[], required
        - `date` string, date, required
        - `uptime_percentage` number, nullable, required
        - `total_checks` integer, required
        - `up_checks` integer, required
        - `down_checks` integer, required
        - `degraded_checks` integer
        - `maintenance_checks` integer
  - `ungrouped_components` PublicComponentRead[], required
    - `id` string, uuid, required
    - `name` string, required
    - `status` 'OPERATIONAL' | 'DEGRADED_PERFORMANCE' | 'MAJOR_OUTAGE' | 'MAINTENANCE' | 'UNKNOWN', required: Public status of a single component on a status page.
    - `uptime_24h` number, nullable, required
    - `uptime_7d` number, nullable, required
    - `uptime_30d` number, nullable, required
    - `uptime_history` number, nullable, required
    - `history` UptimeDayPoint[], required
      - `date` string, date, required
      - `uptime_percentage` number, nullable, required
      - `total_checks` integer, required
      - `up_checks` integer, required
      - `down_checks` integer, required
      - `degraded_checks` integer
      - `maintenance_checks` integer
  - `active_incidents` PublicIncidentRead[], required
    - `id` string, uuid, required
    - `title` string, required
    - `status` 'INVESTIGATING' | 'IDENTIFIED' | 'MONITORING' | 'RESOLVED', required: Lifecycle of a public incident on a status page. Persisted.
    - `started_at` string, date-time, required
    - `resolved_at` string, date-time, nullable, required
    - `component_ids` string[], required
    - `updates` PublicIncidentUpdateRead[], required
      - `status` 'INVESTIGATING' | 'IDENTIFIED' | 'MONITORING' | 'RESOLVED', required: Lifecycle of a public incident on a status page. Persisted.
      - `body` string, required
      - `posted_at` string, date-time, required
  - `past_incidents` PublicIncidentRead[], required
    - `id` string, uuid, required
    - `title` string, required
    - `status` 'INVESTIGATING' | 'IDENTIFIED' | 'MONITORING' | 'RESOLVED', required: Lifecycle of a public incident on a status page. Persisted.
    - `started_at` string, date-time, required
    - `resolved_at` string, date-time, nullable, required
    - `component_ids` string[], required
    - `updates` PublicIncidentUpdateRead[], required
      - `status` 'INVESTIGATING' | 'IDENTIFIED' | 'MONITORING' | 'RESOLVED', required: Lifecycle of a public incident on a status page. Persisted.
      - `body` string, required
      - `posted_at` string, date-time, required
  - `subscriptions_enabled` boolean, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/fettle/apis/fettle-sh.md) · [All operations](https://skmtc.dev/fettle/apis/fettle-sh/llms.txt) · [OpenAPI document](https://skmtc.dev/fettle/apis/fettle-sh/revisions/f32c8a18606f?raw)
