Hantavirus open data

Free to reuse, with attribution. CC BY 4.0.

The structured data behind this site is publicly available at the URLs below. You can fetch it directly. No API key, no rate limit beyond Cloudflare's defaults.

Endpoints

EndpointFormatContents
/data/summary.jsonJSONTop-level aggregates and timestamps
/data/countries.jsonJSONOne row per country
/data/countries.csvCSVSame data, spreadsheet-friendly
/data/timeline.jsonJSONOutbreak event log
/data/timeline.csvCSVSame data, spreadsheet-friendly
/data/news.jsonJSONCurated news headlines
/data/sources.jsonJSONAuthoritative sources cited

License

The structured data is released under Creative Commons Attribution 4.0 International (CC BY 4.0). You may copy, redistribute, and adapt the data, including for commercial purposes, as long as you provide attribution. See /data/LICENSE.txt for the full text.

News headlines and source links remain the property of their publishers. Cite them as you would any other news article.

Citation

Suggested attribution: Data: hantavirus.one (CC BY 4.0). https://hantavirus.one/

Examples

curl

curl -s https://hantavirus.one/data/summary.json | jq .
curl -s https://hantavirus.one/data/countries.csv | column -s, -t | head

Python

import requests, pandas as pd
summary = requests.get("https://hantavirus.one/data/summary.json").json()
countries = pd.read_csv("https://hantavirus.one/data/countries.csv")
print(f"{summary['confirmed_cases']} confirmed, {summary['deaths']} deaths")
print(countries.sort_values("confirmed", ascending=False).head())

JavaScript

const summary = await fetch("https://hantavirus.one/data/summary.json").then(r => r.json());
console.log(`${summary.confirmed_cases} confirmed, ${summary.deaths} deaths`);

Schema

Each endpoint's schema is documented in /data/README.md.

Update cadence

The dataset is rebuilt manually whenever the underlying sources publish new figures. During an active investigation, that happens roughly daily. The generated_at timestamp in summary.json reflects the build time; the last_updated timestamp reflects the most recent change to the underlying numbers.

Caching

Cloudflare caches these files at the edge. Cache TTL is short (a few minutes). If you need fresher data than that, schedule your fetches accordingly. We do not run a push-based update API.