---
title: "Uptime history, measured from outside Chord's servers"
method: GET
path: "/status"
tags: ["Agents and status"]
---

# Uptime history, measured from outside Chord's servers

`GET /status`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/status`
- Auth: none declared

Served by Cloudflare, not by the API's own servers, so it answers while they do not. A probe runs every minute: it reads `GET /health/chains` and requests one small quote per chain down the public path. Components are `api`, `quotes:<chain>` and `data:<chain>`. Uptime is the share of SAMPLED minutes that were not down; `sampledMin` says how many minutes each window really holds, and a day with no samples has `level: null`: it is never counted as up. An incident opens on the second bad check in a row and closes on the second good one. The same data as a page: https://getchord.xyz/status

## Response `200`

- object
  - `at` string: ISO time.
  - `overall` 'operational' | 'degraded' | 'outage' | 'unknown'
  - `lastProbeAgeSec` integer, nullable: Seconds since the last probe. Above about 180 every status reads `unknown`.
  - `since` string, nullable: First UTC day with a sample.
  - `probe` object
    - `from` string
    - `everySec` integer
    - `openAfterMin` integer
  - `components` object[]
    - `id` string: `api`, `quotes:<chain>` or `data:<chain>`.
    - `group` 'api' | 'quotes' | 'data'
    - `chain` string, nullable
    - `name` string
    - `status` 'operational' | 'degraded' | 'down' | 'unknown'
    - `note` string, nullable: Why it is not operational.
    - `ms` integer, nullable: Last probe: the API call, or the canary quote, in milliseconds. Null for data components.
    - `ageSec` integer, nullable: Data components: seconds behind the chain.
    - `uptime` object: Percent of sampled minutes not down. Null = nothing sampled.
      - `h24` number, nullable
      - `d7` number, nullable
      - `d30` number, nullable
      - `d90` number, nullable
    - `sampledMin` object: Minutes actually sampled in each window.
      - `h24` integer
      - `d7` integer
      - `d30` integer
      - `d90` integer
    - `avgMs30d` integer, nullable
    - `days` object[]: Oldest first, 90 entries.
      - `day` string: UTC day.
      - `level` integer, nullable: Worst level that day: 0 down, 1 degraded, 2 operational; null = no samples.
      - `downMin` integer
      - `degMin` integer
      - `sampled` integer
  - `incidents` object[]: Newest first, last 30 days.
    - `id` string: Component id.
    - `name` string
    - `group` string
    - `start` string: ISO.
    - `end` string, nullable: ISO; null while open.
    - `minutes` integer
    - `worst` string
    - `note` string, nullable

## Other responses

- `503`: The lane behind this endpoint is not ready or not enabled here (`NOT_READY`, `CHAIN_NOT_ENABLED`, `NOT_ENABLED`, `*_UNAVAILABLE`). Retry later; do not treat it as an empty answer.

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
