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_unix | Unix time of the check (UTC seconds) |
| api_id | Matches the ids in /status.json |
| ok | 1 if HTTP 200 and the body passed our validator, else 0 |
| http_status | Status code; 0 when no response arrived |
| response_ms | Wall time including DNS and TLS, from one server in Sweden |
| error | Short 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.