Skip to main content
PUT
/
status-pages
/
{id}
/
design
/
draft
curl -X PUT "https://kodostatus.com/api/v1/status-pages/<page-id>/design/draft" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "theme_tokens": {
      "brand": { "primary": "#0ea5e9", "secondary": "#22c55e" },
      "font": { "family": "inter" }
    },
    "layout": {
      "sections": [
        { "type": "header", "enabled": true },
        { "type": "overall_status", "enabled": true },
        { "type": "services_list", "enabled": true },
        { "type": "incident_timeline", "enabled": true },
        { "type": "footer", "enabled": true }
      ]
    },
    "summary": "Spring release branding refresh"
  }'
{
  "draft_version": {},
  "warnings": [
    {}
  ]
}

Path Parameters

id
string
required
Status page ID.

Body Parameters

At least one top-level field is required.
Both theme_tokens and layout use strict validation. Any unknown fields will be rejected with a 400 INVALID_SCHEMA error.
theme_tokens
object
Theme token payload. Supports the following sub-fields:
  • brand.primary — Primary brand color in #RRGGBB format
  • brand.secondary — Secondary brand color in #RRGGBB format
  • font.family — Font family identifier
  • logo_url — Logo image URL (string)
  • favicon_url — Favicon image URL (string)
layout
object
Layout payload. Supports a sections array (max 20 entries) with type, optional enabled, optional props. Valid section types: header, overall_status, services_list, incident_timeline, uptime_chart, subscribe_panel, footer.
template
string | null
Custom HTML template body, max 65536 chars (64KB).
template_mode
string
default or custom.
summary
string
Optional summary, min 1 char, max 500 chars. Empty strings are rejected.

Response

draft_version
object
Saved draft version object.
warnings
array
Non-blocking validation warnings.
curl -X PUT "https://kodostatus.com/api/v1/status-pages/<page-id>/design/draft" \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "theme_tokens": {
      "brand": { "primary": "#0ea5e9", "secondary": "#22c55e" },
      "font": { "family": "inter" }
    },
    "layout": {
      "sections": [
        { "type": "header", "enabled": true },
        { "type": "overall_status", "enabled": true },
        { "type": "services_list", "enabled": true },
        { "type": "incident_timeline", "enabled": true },
        { "type": "footer", "enabled": true }
      ]
    },
    "summary": "Spring release branding refresh"
  }'

Common Errors

StatusCodeMeaning
400INVALID_SCHEMASchema or validation failure
403PLAN_RESTRICTEDtemplate_mode=custom is not allowed on current plan. Response includes upgrade_required: true.
404-Status page not found
500-Draft creation/update failed