---
title: "Create status page"
method: POST
path: "/me/status-pages"
---

# Create status page

`POST /me/status-pages`

## Request

- Base URL: `https://app.yoping.me/api/v1`
- URL: `https://app.yoping.me/api/v1/me/status-pages`
- Auth: API key in cookie `yp_session`

Creates a status page. Slug format/reserved-name violations and duplicate/foreign monitor ids are 400 validation_failed; plan-gated fields (hide_branding, custom_domain, monitor count) and the per-plan page cap are 422 plan_limit.

## Request body

- StatusPageRequest
  - `slug` string, required: 3-63 lowercase letters, digits, or hyphens; no leading/trailing hyphen. Reserved names (status, api, app, admin, www, mail, statuspage, yopingme, help, support, docs, blog) are rejected.
  - `enabled` boolean
  - `title` string
  - `hide_branding` boolean: Requires a plan with hide_branding (422 plan_limit otherwise).
  - `custom_domain` string, nullable: Requires a plan with custom_domain (422 plan_limit otherwise).
  - `monitor_ids` string[]: Monitors shown on the page, in order. Duplicates and unknown/foreign monitor ids are rejected.

## Response `201`

Status page created.

- object: Uniform success envelope: the payload is always under `data`.
  - `data` StatusPage, required
    - `id` string, required
    - `slug` string, required
    - `enabled` boolean, required
    - `title` string, required
    - `hide_branding` boolean, required
    - `custom_domain` string, nullable, required
    - `monitor_ids` string[], required
    - `public_url` string, nullable, required: Null when the box has no STATUS_PAGE_BASE_URL configured.
    - `created_at` string, date-time, required

## Other responses

- `400`: Invalid input (code `validation_failed`): malformed JSON, a missing or out-of-range field, bad pagination parameters, or a rejected token.
- `401`: Not authenticated (code `unauthorized`): missing, invalid, or expired session; invalid login credentials; or a Bearer token, which this surface rejects.
- `403`: Forbidden. Code `forbidden` for a cross-origin (CSRF) request blocked by origin validation or for API-key management attempted without a browser session; `account_suspended` when a suspended account attempts a mutation; `account_deleted` when an account in its deletion grace window calls a non-exempt route.
- `422`: A plan or account cap was hit (code `plan_limit`): monitor cap, distinct-target-host cap, or API-key cap.
- `429`: Too many requests (code `rate_limited`). A global per-IP budget of 300 requests/minute (burst 60) applies to every endpoint; login, signup, and test alerts have tighter dedicated limits.

---

[API](https://skmtc.dev/yoping/apis/yopingme-api.md) · [All operations](https://skmtc.dev/yoping/apis/yopingme-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yoping/apis/yopingme-api/revisions/76d8deb40173?raw)
