disease.sh API
Free open disease and health statistics API with no key: global and per-country case data, historical time series and vaccination figures. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the disease.sh API?
disease.sh is a free, key-free API providing global disease and public health statistics, including per-country breakdowns, historical time series and vaccination data, aggregated from official sources.
disease.sh aggregates public health data from official sources including Johns Hopkins University and the World Health Organization, and exposes it through a single consistent JSON interface with no key.
It is a good example of an API worth using for its structure rather than its novelty: the country endpoints return consistent, comparable records, which makes cross-country charts straightforward to build. Bear in mind that reporting cadence varies by country, so timestamps are per-record rather than global.
Quick facts
- Base URL
https://disease.sh/v3- Authentication
- No key required.
- Rate limit
- Approximately 100 requests per minute per IP.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the disease.sh API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Fetch global health statistics
GET https://disease.sh/v3/covid-19/all
curl 'https://disease.sh/v3/covid-19/all'const res = await fetch("https://disease.sh/v3/covid-19/all");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://disease.sh/v3/covid-19/all", timeout=20)
res.raise_for_status()
print(res.json()){
"updated": 1787144493887,
"cases": 704753890,
"todayCases": 0,
"deaths": 7010681,
"todayDeaths": 0,
"recovered": 675619811,
"todayRecovered": 790,
"active": 22123398,
"critical": 34794,
"casesPerOneMillion": 90413,
"deathsPerOneMillion": 899.4,
"tests": 7026505313,
"testsPerOneMillion": 884400.59,
"population": 7944935131,
"oneCasePerPeople": 0,
"oneDeathPerPeople": 0,
"oneTestPerPeople": 0,
"activePerOneMillion": 2784.59,
"recoveredPerOneMillion": 85037.8,
"criticalPerOneMillion": 4.38,
"affectedCountries": 231
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
<scope> | path | Required | all for global totals, countries for per-country data. all |
<country> | path | Optional | Country name, ISO2 or ISO3 code. pakistan |
lastdays | query | Optional | Days of history on historical endpoints. 30 |
sort | query | Optional | Sort country results by a field. cases |
Response fields
cases / deaths / recoveredinteger- Cumulative totals.
todayCases / todayDeathsinteger- Change reported today.
active / criticalinteger- Current active and critical counts.
populationinteger- Country population, useful for per-capita normalisation.
updatedinteger- Unix timestamp in milliseconds of the last update.
What you can build with the disease.sh API
- Build public health dashboards and comparison charts
- Analyse per-capita rates by combining counts with population
- Plot historical time series for a country or region
- Teach data visualisation with a real, structured dataset
Common errors and how to fix them
404
Country name not recognised.
Fix: Use ISO2 or ISO3 codes rather than informal country names, which vary.
Stale `updated` timestamp
Reporting cadence differs by country.
Fix: Display the per-record `updated` value rather than implying all data is equally fresh.
disease.sh API — frequently asked questions
Is disease.sh free to use?
Yes, completely free and open source with no API key, limited to roughly 100 requests per minute per IP.
Where does the data come from?
It aggregates official sources including Johns Hopkins University and the World Health Organization, normalising them into one consistent JSON schema.
Can I get historical data?
Yes, the historical endpoints accept a `lastdays` parameter and return time series suitable for charting trends.
How do I calculate per-capita rates?
Country records include a `population` field, so you can divide case or death counts by population directly without sourcing demographics separately.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
disease.sh is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.