> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uptimeio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Status Page

> Retrieve one status page with its monitors

## Overview

Returns a single status page, including its attached monitors, an aggregate uptime figure and page-view counts.

`GET /api/projects/{projectId}/status-pages/{id}`

## Authentication

| Header | Required | Description |
| - | - | - |
| `X-API-Key` | Yes | Your API key (`Authorization: Bearer {jwt}` also works). Read-only keys are fine. |
| `X-Project-ID` | Yes | Must be the same project UUID as in the URL. |

**Required access:** project viewer or higher.

## Path parameters

| Parameter | Type | Description |
| - | - | - |
| `projectId` | UUID | The project |
| `id` | UUID | The status page |

## Response

### 200 OK

```json theme={null}
{
  "success": true,
  "data": {
    "status_page": {
      "id": "0b7c3a52-7d57-4c35-9f0e-5a3b6f1f2a10",
      "organization_id": "4f6f7b0e-1a52-4d7f-8d7e-6c5b1d2e3f40",
      "project_id": "6ba7b810-9dad-41d1-80b4-00c04fd430c8",
      "name": "Production Status",
      "description": "Live status of production services",
      "subdomain": "acme-production",
      "status": "published",
      "is_public": true,
      "color_scheme": "light",
      "logo_url": null,
      "favicon_url": null,
      "custom_css": null,
      "component_display_order": "custom",
      "show_uptime_percentage": true,
      "show_response_time": true,
      "timezone": "UTC",
      "allow_search_indexing": true,
      "uptime_timeframes": ["24h", "7d", "30d", "90d"],
      "uptime_thresholds": { "operational": 99.9, "degraded": 95 },
      "incident_history_days": 7,
      "maintenance_affects_uptime": false,
      "google_analytics_id": null,
      "custom_domain": null,
      "custom_domain_verified": false,
      "ssl_enabled": false,
      "ssl_certificate_status": null,
      "auto_publish_enabled": true,
      "auto_publish_severities": ["critical", "major"],
      "subscriber_count": 0,
      "monitor_count": 0,
      "page_views_24h": 42,
      "page_views_7d": 0,
      "page_views_30d": 1310,
      "last_published_at": 1790000000000,
      "created_by": null,
      "created_at": 1790000000000,
      "updated_at": 1790000000000,
      "uptime_percentage": 99.9,
      "monitors": [
        {
          "id": "a3f1c2d4-5b6e-4f70-8a91-b2c3d4e5f607",
          "status_page_id": "0b7c3a52-7d57-4c35-9f0e-5a3b6f1f2a10",
          "monitor_id": "a3f1c2d4-5b6e-4f70-8a91-b2c3d4e5f607",
          "display_name": "API",
          "group_name": "Core",
          "display_order": 0,
          "is_visible": true,
          "show_uptime": true,
          "show_response_time": true,
          "created_at": 1790000000000,
          "monitor_name": "API health check",
          "monitor_url": "https://api.example.com/health",
          "monitor_status": "up",
          "current_uptime": 99.95,
          "average_response_time": 145
        }
      ],
      "branding": { "defaultTheme": "light", "primaryColor": "#3B82F6" }
    }
  }
}
```

Only the 24-hour and 30-day page-view counts are filled in by this endpoint; `page_views_7d`, `subscriber_count` and `monitor_count` are populated by [List Status Pages](/api-reference/status-pages/list) and read `0` here.

### The status page object

| Field | Type | Description |
| - | - | - |
| `id` | UUID | Status page ID |
| `organization_id`, `project_id` | UUID | Owners |
| `name`, `description` | string \| null | Display name and description |
| `subdomain` | string | Public subdomain. Immutable. |
| `status` | string | Publication state: `draft`, `published` or `archived` |
| `is_public` | boolean | `true` only when `status` is `published` |
| `color_scheme` | string | `light`, `dark` or `system` (from `branding.defaultTheme`) |
| `logo_url`, `favicon_url`, `custom_css` | string \| null | From branding |
| `component_display_order` | string | Always `"custom"` (order set by monitor `display_order`) |
| `show_uptime_percentage`, `show_response_time` | boolean | Whether graphs are shown (default `true`) |
| `timezone` | string | Display timezone |
| `allow_search_indexing` | boolean | Whether search engines may index the public page. Defaults to `true`, including when no value has been stored. |
| `uptime_timeframes` | string\[] | Uptime windows shown: any of `24h`, `7d`, `30d`, `90d` |
| `uptime_thresholds` | object | `operational` and `degraded` percentages (default `99.9` and `95`) |
| `incident_history_days` | integer | Days of incident history shown (1-365, default `7`) |
| `maintenance_affects_uptime` | boolean | Whether maintenance windows count against uptime |
| `google_analytics_id` | string \| null | Google Analytics 4 measurement ID, if set |
| `custom_domain` | string \| null | Custom domain, if configured |
| `custom_domain_verified` | boolean | Whether the domain's DNS has been verified |
| `ssl_enabled` | boolean | `true` once the custom domain is verified |
| `ssl_certificate_status` | string \| null | `"active"` once verified, otherwise `null` |
| `auto_publish_enabled` | boolean | Whether matching monitor incidents are posted automatically (default `true`) |
| `auto_publish_severities` | string\[] | Severities that auto-publish (default `["critical","major"]`) |
| `subscriber_count` | integer | Verified email subscribers |
| `monitor_count` | integer | Monitors on the page |
| `page_views_24h`, `page_views_7d`, `page_views_30d` | integer | Page views |
| `last_published_at` | integer \| null | Unix ms of first publication |
| `created_by` | null | Always `null` |
| `created_at`, `updated_at` | integer | Unix ms |
| `uptime_percentage` | number | Average 24-hour uptime of the attached monitors, one decimal. Omitted when there are no monitors. |
| `monitors` | array | Attached monitors. Omitted when there are none. |
| `branding` | object | Branding document in camelCase; see [Branding](/api-reference/status-pages/branding) |

### The monitor object

| Field | Type | Description |
| - | - | - |
| `id`, `monitor_id` | UUID | The monitor's ID |
| `status_page_id` | UUID | The status page |
| `display_name` | string \| null | Name shown on the page instead of the monitor name |
| `group_name` | string \| null | Group heading the monitor is shown under on the page |
| `display_order` | integer | Sort position |
| `is_visible` | boolean | `false` when the monitor is hidden from the public page |
| `show_uptime`, `show_response_time` | boolean | Always `true` |
| `monitor_name` | string | The monitor's own name |
| `monitor_url` | string | The monitor's target |
| `monitor_status` | string | `up`, `down`, `degraded`, `paused` or `maintenance` |
| `current_uptime` | number | 24-hour uptime percentage |
| `average_response_time` | number | Average response time in milliseconds |
| `created_at` | integer | Unix ms |

## Errors

| Status | Code | Cause |
| - | - | - |
| 400 | `PROJECT_ID_REQUIRED` / `INVALID_PROJECT_ID` | `X-Project-ID` header missing or not a UUID |
| 401 | `AUTHENTICATION_REQUIRED` | Missing or invalid credentials |
| 403 | `ACCESS_DENIED` | No access to the project, or the page belongs to another project |
| 403 | `API_KEY_ORGANIZATION_MISMATCH` | The API key belongs to a different organization than the project |
| 404 | `RESOURCE_NOT_FOUND` | The status page does not exist or was deleted (message `Status page not found`) |

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.uptimeio.com/api/projects/YOUR_PROJECT_ID/status-pages/YOUR_STATUS_PAGE_ID \
    -H "X-API-Key: YOUR_API_KEY" \
    -H "X-Project-ID: YOUR_PROJECT_ID"
  ```

  ```javascript JavaScript theme={null}
  const projectId = 'YOUR_PROJECT_ID';
  const statusPageId = 'YOUR_STATUS_PAGE_ID';

  const response = await fetch(
    `https://api.uptimeio.com/api/projects/${projectId}/status-pages/${statusPageId}`,
    {
      headers: {
        'X-API-Key': process.env.UPTIMEIO_API_KEY,
        'X-Project-ID': projectId,
      },
    }
  );

  const { data } = await response.json();
  console.log(data.status_page.status, data.status_page.uptime_percentage);
  ```
</CodeGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.