> ## Documentation Index
> Fetch the complete documentation index at: https://docs.probalytics.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Platform Status

> Public status API for service uptime and incidents

The status API reports the current health of the Probalytics platform. It is public and does not require authentication.

```
GET https://status.probalytics.io/api
```

The response is a single JSON object. It covers the services that deliver data to you, including the REST API, the ClickHouse service, S3-compatible file downloads, and the data collection and processing pipelines.

## Service names

Data pipeline services are grouped as `<platform>/<entity>`, for example `polymarket/markets`, `polymarket/fills`, `polymarket/orderbook`, `kalshi/markets`. Each group covers the full pipeline for that platform and dataset. Standalone services use flat names: `api` (the REST API), `clickhouse`, `s3`.

## Response format

```json theme={null}
{
  "status": "up",
  "checked_at": "2026-09-05T12:00:00Z",
  "window_seconds": 180,
  "incident_days": 30,
  "services": [
    {
      "name": "clickhouse",
      "status": "up",
      "last_seen": "2026-09-05T11:59:41Z",
      "errors": 0
    },
    {
      "name": "polymarket/orderbook",
      "status": "up",
      "last_seen": "2026-09-05T11:59:55Z",
      "errors": 0
    }
  ],
  "incidents": [
    {
      "service": "kalshi/fills",
      "started_at": "2026-08-30T02:14:00Z",
      "ended_at": "2026-08-30T02:39:00Z",
      "duration_seconds": 1500
    }
  ]
}
```

## Top-level fields

| Field            | Type      | Description                                                                                                                                                          |
| ---------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status`         | `string`  | Overall platform status. The worst status of any monitored service, ignoring `unknown` services. `unknown` when no data is available.                                |
| `checked_at`     | `string`  | RFC 3339 UTC time when the data was computed, not when you made the request. The data can be up to a few minutes old; treat `checked_at` as the freshness timestamp. |
| `window_seconds` | `integer` | The silence window in seconds. A service that has not reported for longer than this window is reported as `down`.                                                    |
| `incident_days`  | `integer` | How many calendar days of incident history the response covers.                                                                                                      |
| `services`       | `array`   | One entry per monitored service, sorted by `name`.                                                                                                                   |
| `incidents`      | `array`   | Known service outage periods within the incident window, sorted by service name and start time.                                                                      |
| `error`          | `string`  | Present only when no status data is available, with `status: "unknown"` and empty `services` and `incidents` lists. Retry after a short delay.                       |

## Service entries

| Field       | Type     | Description                                                                                     |
| ----------- | -------- | ----------------------------------------------------------------------------------------------- |
| `name`      | `string` | Service identifier.                                                                             |
| `status`    | `string` | One of `up`, `degraded`, `down`. See definitions below.                                         |
| `last_seen` | `string` | RFC 3339 UTC time the service last reported.                                                    |
| `errors`    | `number` | Number of errors reported by the service in the recent error window (about the last 5 minutes). |

### Status definitions

* `up`: the service is reporting normally and has no recent errors.
* `degraded`: the service is running and still reporting, but it has reported recent errors. It may behave unreliably.
* `down`: the service has stopped reporting. Its last report is older than `window_seconds`. The service is likely not running.
* `unknown`: no status data is available, for example when the API was queried before its first data refresh. No data available is the only case that reports `unknown`.

A service can only have one status. A stale report (`down`) takes precedence over reported errors (`degraded`).

## Incidents

Each incident is a continuous period in which a service stopped reporting. Incidents are derived from gaps in service reporting, so the recorded duration can be slightly longer than the actual outage.

| Field              | Type      | Description                                          |
| ------------------ | --------- | ---------------------------------------------------- |
| `service`          | `string`  | Service identifier, same value as `services[].name`. |
| `started_at`       | `string`  | RFC 3339 UTC time the reporting gap started.         |
| `ended_at`         | `string`  | RFC 3339 UTC time reporting resumed.                 |
| `duration_seconds` | `integer` | Length of the gap in seconds.                        |

## Polling recommendations

* Poll no more than once per minute. The data changes slowly and is cached.
* Compare `checked_at` with your request time to know how fresh the reading is.
* Treat `errors` above zero as a sign to watch the platform, not as a guaranteed failure.

## Notes

* Timestamps are RFC 3339 in UTC.
* This endpoint monitors the platform services that serve you. It does not report the health of your own queries, clients, or API keys.
