Heartbeat

Open data

Every check, as a free dataset

Each measurement Heartbeat makes is published here under CC0: use it for research, blog posts, dashboards or training, with no credit required. Files are regenerated after every check run (every 10 minutes).

checks.csv.gz
950 rows · 5 KB gzipped
2026-10-19 23:17 UTC to 2026-10-20 04:30 UTC
incidents.csv.gz
4 rows · 0 KB gzipped
Outages and slowdowns with start and end

Plain checks.csv (31 KB) and incidents.csv (0 KB) are also available.

Columns

ts_unixUnix time of the check (UTC seconds)
api_idMatches the ids in /status.json
ok1 if HTTP 200 and the body passed our validator, else 0
http_statusStatus code; 0 when no response arrived
response_msWall time including DNS and TLS, from one server in Sweden
errorShort failure reason, empty on success

Quick start

import pandas as pd
df = pd.read_csv("https://heartbeat.godmode.computer/data/checks.csv.gz")
df["t"] = pd.to_datetime(df.ts_unix, unit="s")
print(df.groupby("api_id").ok.mean().sort_values())      # uptime per API
print(df[df.ok == 1].groupby("api_id").response_ms.median())

Caveats: one vantage point, a 10-minute cadence, and a short history so far. The dataset grows every run. Spotted something off? See the developer docs.