Skip to main content
POST
/
status-pages
curl -X POST "https://kodostatus.com/api/v1/status-pages" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Partner Dashboard",
    "slug": "acme-partners",
    "status_page_visibility": "private",
    "primary_color": "#6366f1",
    "tagline": "Real-time system health",
    "theme_mode": "dark",
    "font_family": "dm-sans",
    "service_ids": ["svc_abc123", "svc_def456"]
  }'
{
  "page": {
    "id": "uuid",
    "name": "Partner Dashboard",
    "slug": "acme-partners",
    "status_page_visibility": "private",
    "is_default": false,
    "primary_color": "#6366f1",
    "tagline": "Real-time system health",
    "theme_mode": "dark",
    "font_family": "dm-sans",
    "created_at": "2024-06-15T12:00:00Z",
    "updated_at": "2024-06-15T12:00:00Z"
  }
}
Creating status pages is subject to your plan’s page limit. Starter is limited to 1 page, Pro to 2, Team to 3, and Enterprise is unlimited.

Body Parameters

Required

name
string
required
Display name for the status page
slug
string
required
URL slug (must be unique across all organizations). Used in /status/{slug}
The slug must contain only lowercase letters, numbers, and hyphens. For example: my-company, acme-status, api2.

Optional

status_page_visibility
string
default:"public"
Visibility mode: public, private, internal. Availability depends on plan.
service_ids
string[]
Array of service IDs to assign to this page. Services will be displayed in the order provided.
primary_color
string
Brand color in #RRGGBB hex format. Example: "#22c55e"
secondary_color
string
Secondary brand color in #RRGGBB hex format. Example: "#3b82f6"
tagline
string
Short tagline displayed below the page name.
logo_url
string
URL to a logo image displayed in the page header.
favicon_url
string
URL to a favicon image for the status page.
theme_mode
string
default:"dark"
Color scheme: light, dark, or system.
status_page_theme
string
default:"default"
Pre-built theme: default, minimal, corporate, neon, ocean, sunset.
font_family
string
default:"inter"
Font family: inter, dm-sans, space-grotesk, jetbrains-mono, poppins, merriweather, system.
header_style
string
default:"centered"
Header layout: centered or left-aligned.
border_radius
string
default:"rounded"
Border radius preset: rounded, sharp, pill.
show_subscribe_form
boolean
default:true
Whether to show the email subscribe form on the public page.
show_incident_history
boolean
default:true
Whether to show the incident history timeline.
show_uptime_graph
boolean
default:true
Whether to show uptime percentage graphs per service.
announcement_text
string
Banner announcement text displayed at the top of the page.
announcement_type
string
Announcement style: info, warning, critical, maintenance.
announcement_enabled
boolean
default:false
Whether the announcement banner is visible.

Response

Returns the created status page object with a 201 status code.

Common Errors

StatusMessageDescription
400Slug must contain only lowercase letters, numbers, and hyphensInvalid slug format
400Invalid primary_color format (use #RRGGBB)Color must be a 6-digit hex code
400Invalid font_familyFont ID not in the allowed list
403Plan limit reachedYour plan’s status page limit has been reached
409This slug is already takenAnother status page already uses this slug
curl -X POST "https://kodostatus.com/api/v1/status-pages" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Partner Dashboard",
    "slug": "acme-partners",
    "status_page_visibility": "private",
    "primary_color": "#6366f1",
    "tagline": "Real-time system health",
    "theme_mode": "dark",
    "font_family": "dm-sans",
    "service_ids": ["svc_abc123", "svc_def456"]
  }'
{
  "page": {
    "id": "uuid",
    "name": "Partner Dashboard",
    "slug": "acme-partners",
    "status_page_visibility": "private",
    "is_default": false,
    "primary_color": "#6366f1",
    "tagline": "Real-time system health",
    "theme_mode": "dark",
    "font_family": "dm-sans",
    "created_at": "2024-06-15T12:00:00Z",
    "updated_at": "2024-06-15T12:00:00Z"
  }
}