Developers

Status API.

The live data behind this page, open to everyone: JSON for apps, RSS for readers and a badge for READMEs. No key and no sign-up.

GET /api/v1/summary
{
  "status": {
    "indicator": "operational",
    "description": "All systems operational"
  },
  "components": [ 9 services ]
}

JSON

Live summary

The overall state, every service and any open incident, in one request.

Open
<rss version="2.0">
  <item>
    <title>API: degraded performance</title>
    <link>…/incidents/…</link>
  </item>
</rss>

RSS

Incident feed

Every incident update, newest first. Paste the address into any feed reader.

Open
Live Kaer status badge

SVG

Status badge

A live badge that follows the headline, for READMEs and dashboards.

Reference

Every endpoint.

Read-only and open to any origin. JSON unless noted; times are Unix seconds, UTC.

GET/api/v1/summaryOverall status, services and open incidents

Everything on the front page in one answer: the headline state, every public service with its 90-day uptime, any open incident with its updates, and the 90-day figures.

Cached 15 sCORS open
Request
$ curl -s https://status.kaer.ai/api/v1/summary
Response · live at 10:42 UTCOpen
{
  "components": [
    {
      "description": "The web app, workspace, and chat surface.",
      "group": "Platform",
      "id": "app",
      "name": "Kaer",
      "since": 1791057239,
      "status": "operational",
      "uptime_90d": 99.96326517492665
    },
    {
      "description": "Account authentication and connected-app authorisation.",
      "group": "Platform",
      "id": "auth",
      "name": "Sign-in",
      "since": 1789168854,
      "status": "operational",
      "uptime_90d": 100.0
    },
    {
      "description": "Agent runs, sandboxes, and the shared compute pool.",
      "group": "Platform",
      "id": "agents",
      "name": "Agents & compute",
      "since": 1791056389,
      "status": "operational",
      "uptime_90d": 99.92872423523961
    }
    // 6 more
  ],
  "incidents": [],
  "page": {
    "name": "Kaer",
    "revision": "d56d7de198baf68f",
    "updated_at": 1791110530,
    "url": "https://status.kaer.ai"
  },
  "status": {
    "description": "All systems operational",
    "indicator": "operational"
  },
  "summary": {
    "incidents": 26,
    "mttr_secs": 25942,
    "uptime": 99.95103723871065,
    "window_days": 90
  }
}
status.indicator
The headline state. See the status values below.
components[]
Every public service: id, name, group, status, since and uptime_90d (percent, null before the first measurement).
incidents[]
Open incidents only, each with its updates, newest first.
summary
90-day figures: uptime (percent), incidents and mttr_secs, the mean time to recovery.
page.revision
Changes whenever anything on the page changes.
GET/api/v1/revisionA fingerprint to poll

A few bytes that change whenever anything on the page does. Poll this, and fetch the summary only when revision changes.

UncachedCORS open
Request
$ curl -s https://status.kaer.ai/api/v1/revision
Response · live at 10:42 UTCOpen
{
  "revision": "d56d7de198baf68f",
  "status": "operational",
  "updated_at": 1791110530
}
GET/api/v1/components/{id}One service with 90 days of history

One service and a bucket for each of the last 90 days: its worst state, uptime, and seconds spent down, degraded or in maintenance.

Cached 15 sCORS open404 for an unknown id
Request
$ curl -s https://status.kaer.ai/api/v1/components/app
Response · live at 10:42 UTCOpen
{
  "days": [
    {
      "date": "2026-07-07",
      "degraded_secs": 0,
      "down_secs": 0,
      "maintenance_secs": 0,
      "observed": false,
      "status": "operational",
      "uptime": null
    },
    {
      "date": "2026-07-08",
      "degraded_secs": 0,
      "down_secs": 0,
      "maintenance_secs": 0,
      "observed": false,
      "status": "operational",
      "uptime": null
    },
    {
      "date": "2026-07-09",
      "degraded_secs": 0,
      "down_secs": 0,
      "maintenance_secs": 0,
      "observed": false,
      "status": "operational",
      "uptime": null
    }
    // 87 more
  ],
  "description": "The web app, workspace, and chat surface.",
  "group": "Platform",
  "id": "app",
  "name": "Kaer",
  "since": 1791057239,
  "status": "operational",
  "uptime_90d": 99.96326517492665
}
GET/api/v1/incidents?days=90Incident history with every update

Every public incident that was open at any point in the window, newest first, with all of its updates. days runs from 1 to 400 and defaults to 90.

Cached 15 sCORS open
Request
$ curl -s https://status.kaer.ai/api/v1/incidents?days=30
Response · live at 10:42 UTCOpen
{
  "incidents": [
    {
      "components": [
        "api"
      ],
      "id": "inc_kyr1i7nsfg",
      "impact": "degraded",
      "maintenance": false,
      "phase": "resolved",
      "resolved_at": 1790900549,
      "started_at": 1790900359,
      "title": "API: degraded performance",
      "updates": [
        {
          "body": "Monitoring confirms this service has recovered and is operating normally.",
          "created_at": 1790900549,
          "phase": "resolved"
        },
        {
          "body": "Automated monitoring detected a problem affecting this service from multiple independent vantage points. We are investigating.",
          "created_at": 1790900359,
          "phase": "investigating"
        }
      ]
    },
    {
      "components": [
        "api"
      ],
      "id": "inc_rifpaegx5y",
      "impact": "partial",
      "maintenance": false,
      "phase": "resolved",
      "resolved_at": 1790803535,
      "started_at": 1790803145,
      "title": "API: partial outage",
      "updates": [
        {
          "body": "Monitoring confirms this service has recovered and is operating normally.",
          "created_at": 1790803535,
          "phase": "resolved"
        },
        {
          "body": "Automated monitoring detected a problem affecting this service from multiple independent vantage points. We are investigating.",
          "created_at": 1790803145,
          "phase": "investigating"
        }
      ]
    }
    // 24 more
  ]
}
GET/feed.xmlRSS 2.0 feed of incident updates

One item per incident from the last 180 days, carrying its latest update. Readers pick it up from any page of this site automatically.

RSS 2.0Up to 50 items
Feed addressOpen
https://status.kaer.ai/feed.xml
GET/badge.svgLive status badge

An SVG 20 pixels tall whose colour and wording follow the headline.

SVGCached 60 s
Live Kaer status badge
Markdown
[![Kaer status](https://status.kaer.ai/badge.svg)](https://status.kaer.ai)
HTML
<a href="https://status.kaer.ai"><img src="https://status.kaer.ai/badge.svg" alt="Kaer status" height="20"></a>
Reference

Status values.

Every state a service or the page can report, and the phases an incident moves through.

Service and page states

  • operationalOperationalWorking normally.
  • degradedDegraded performanceSlower or less reliable than usual, but usable.
  • partialPartial outageFailing for some requests or some people.
  • majorMajor outageUnavailable for most people.
  • maintenanceUnder maintenancePlanned work is under way.

Incident phases

  • 1investigatingInvestigatingSomething is wrong and we are finding out what.
  • 2identifiedIdentifiedThe cause is known and a fix is under way.
  • 3monitoringMonitoringA fix is in place and we are watching it hold.
  • 4resolvedResolvedBack to normal.
Good to know

Built to be polled.

Cheap to call and safe to embed, within reason.

No key

Every endpoint is public and read-only. There is nothing to sign up for.

Fresh to 15 s

Answers are cached for 15 seconds. Poll the revision every 30 seconds at most.

Any origin

CORS is open, so a browser app can call it directly.

Versioned

Everything lives under /api/v1.

Current statusIncident history