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
| Endpoint | Format | Contents |
|---|---|---|
| /data/summary.json | JSON | Top-level aggregates and timestamps |
| /data/countries.json | JSON | One row per country |
| /data/countries.csv | CSV | Same data, spreadsheet-friendly |
| /data/timeline.json | JSON | Outbreak event log |
| /data/timeline.csv | CSV | Same data, spreadsheet-friendly |
| /data/news.json | JSON | Curated news headlines |
| /data/sources.json | JSON | Authoritative 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.