Skip to main content

Page object

id
integer
Unique numeric identifier.
page_path
string
URL path for the status page. Lowercase, URL-safe (letters, numbers, hyphens, underscores). Spaces are converted to hyphens; other special characters are removed.
page_title
string
Title shown in the browser tab and page header.
page_header
string
Primary heading displayed at the top of the status page.
page_subheader
string | null
Optional secondary heading beneath the main header.
Optional logo URL displayed on the page.
page_settings
object
Controls what the page displays for incidents and maintenances.
monitors
array
Ordered list of monitors displayed on the page.
created_at
string
ISO 8601 creation timestamp.
updated_at
string
ISO 8601 last-updated timestamp.

List pages

GET /api/v4/pages
Response 200
{
  "pages": [
    {
      "id": 1,
      "page_path": "status",
      "page_title": "System Status",
      "page_header": "All Systems Operational",
      "page_subheader": null,
      "page_logo": null,
      "page_settings": {
        "incidents": {
          "enabled": true,
          "ongoing": { "show": true },
          "resolved": { "show": true, "max_count": 5, "days_in_past": 7 }
        },
        "include_maintenances": {
          "enabled": true,
          "ongoing": {
            "show": true,
            "past": { "show": true, "max_count": 5, "days_in_past": 7 },
            "upcoming": { "show": true, "max_count": 5, "days_in_future": 30 }
          }
        }
      },
      "monitors": [
        { "monitor_tag": "api-gateway", "position": 0 },
        { "monitor_tag": "database", "position": 1 }
      ],
      "created_at": "2026-01-01T00:00:00.000Z",
      "updated_at": "2026-01-01T00:00:00.000Z"
    }
  ]
}
curl -X GET https://your-kener-instance.com/api/v4/pages \
  -H "Authorization: Bearer kener_..."

Get a page

GET /api/v4/pages/{page_path}
Path parameters
page_path
string
required
The URL path of the page (e.g., status).
Response 200
{
  "page": {
    "id": 1,
    "page_path": "status",
    "page_title": "System Status",
    "page_header": "All Systems Operational",
    "page_subheader": null,
    "page_logo": null,
    "page_settings": {
      "incidents": {
        "enabled": true,
        "ongoing": { "show": true },
        "resolved": { "show": true, "max_count": 5, "days_in_past": 7 }
      },
      "include_maintenances": {
        "enabled": true,
        "ongoing": {
          "show": true,
          "past": { "show": true, "max_count": 5, "days_in_past": 7 },
          "upcoming": { "show": true, "max_count": 5, "days_in_future": 30 }
        }
      }
    },
    "monitors": [
      { "monitor_tag": "api-gateway", "position": 0 }
    ],
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  }
}
curl -X GET https://your-kener-instance.com/api/v4/pages/status \
  -H "Authorization: Bearer kener_..."

Create a page

POST /api/v4/pages
page_path
string
required
URL path for the page. Sanitized automatically: converted to lowercase, spaces replaced with hyphens, invalid characters removed.
page_title
string
required
Page title.
page_header
string
required
Primary heading.
page_subheader
string | null
Optional secondary heading.
page_logo
string | null
Optional logo URL.
page_settings
object
Partial settings object. Any missing fields use their defaults.
monitors
array
Ordered array of monitor tags to display on this page. Each tag must belong to an existing monitor.
Response 201
{
  "page": {
    "id": 2,
    "page_path": "infrastructure",
    "page_title": "Infrastructure Status",
    "page_header": "Infrastructure",
    "page_subheader": "Core platform services",
    "page_logo": null,
    "page_settings": {
      "incidents": {
        "enabled": true,
        "ongoing": { "show": true },
        "resolved": { "show": true, "max_count": 5, "days_in_past": 7 }
      },
      "include_maintenances": {
        "enabled": false,
        "ongoing": {
          "show": false,
          "past": { "show": false, "max_count": 5, "days_in_past": 7 },
          "upcoming": { "show": false, "max_count": 5, "days_in_future": 30 }
        }
      }
    },
    "monitors": [
      { "monitor_tag": "api-gateway", "position": 0 },
      { "monitor_tag": "database", "position": 1 }
    ],
    "created_at": "2026-01-15T00:00:00.000Z",
    "updated_at": "2026-01-15T00:00:00.000Z"
  }
}
curl -X POST https://your-kener-instance.com/api/v4/pages \
  -H "Authorization: Bearer kener_..." \
  -H "Content-Type: application/json" \
  -d '{
    "page_path": "infrastructure",
    "page_title": "Infrastructure Status",
    "page_header": "Infrastructure",
    "page_subheader": "Core platform services",
    "monitors": ["api-gateway", "database"],
    "page_settings": {
      "include_maintenances": { "enabled": false }
    }
  }'
Monitor order in the monitors array determines display order. The first element appears at position: 0.

Update a page

Performs a partial update. Only the fields you provide are changed. Updating monitors replaces the full monitor list.
PATCH /api/v4/pages/{page_path}
Path parameters
page_path
string
required
The current URL path of the page.
page_path
string
New URL path. Sanitized the same way as on creation. Must not conflict with an existing page.
page_title
string
New page title.
page_header
string
New primary heading.
page_subheader
string | null
New secondary heading.
page_logo
string | null
New logo URL.
page_settings
object
Partial settings to merge into the existing settings.
monitors
array
Replacement ordered monitor tag list. Replaces all current monitor associations.
Response 200
{
  "page": {
    "id": 1,
    "page_path": "status",
    "page_title": "System Status — Updated",
    "page_header": "All Systems Operational",
    "page_subheader": "Last checked: just now",
    "page_logo": null,
    "page_settings": {
      "incidents": {
        "enabled": true,
        "ongoing": { "show": true },
        "resolved": { "show": true, "max_count": 10, "days_in_past": 14 }
      },
      "include_maintenances": {
        "enabled": true,
        "ongoing": {
          "show": true,
          "past": { "show": true, "max_count": 5, "days_in_past": 7 },
          "upcoming": { "show": true, "max_count": 5, "days_in_future": 30 }
        }
      }
    },
    "monitors": [
      { "monitor_tag": "api-gateway", "position": 0 }
    ],
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-15T16:00:00.000Z"
  }
}
curl -X PATCH https://your-kener-instance.com/api/v4/pages/status \
  -H "Authorization: Bearer kener_..." \
  -H "Content-Type: application/json" \
  -d '{
    "page_title": "System Status — Updated",
    "page_subheader": "Last checked: just now",
    "page_settings": {
      "incidents": {
        "resolved": { "max_count": 10, "days_in_past": 14 }
      }
    }
  }'

Delete a page

Permanently deletes the page and removes all its monitor associations. The monitors themselves are not deleted.
DELETE /api/v4/pages/{page_path}
Path parameters
page_path
string
required
The URL path of the page to delete.
Response 200
{
  "message": "Page 'status' deleted successfully"
}
curl -X DELETE https://your-kener-instance.com/api/v4/pages/infrastructure \
  -H "Authorization: Bearer kener_..."

Build docs developers (and LLMs) love