fshy

Home / Data APIs

Open Disease API (disease.sh)

disease.sh/Open disease statistics APIdata-apis/disease-shJSONcomparereport an errorprovider JSON

Free allowance
Free to use, with no key and no request limit stated on the home page, the docs or the README: COVID-19 and influenza statistics as JSON.
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
anonymousno card, no phone
Binding limit
noneno named constraint binds
Evidence
documented25 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-03checked 2026-11-02 (live); stale on 2026-12-03
Free tierFree to use, with no key and no request limit stated on the home page, the docs or the README: COVID-19 and influenza statistics as JSON.
unit unlimited; metered on none; A burst of 120 parallel keyless GETs all answered HTTP 200. The Worldometers totals update every 10 minutes.
Pricenone stated
Limits
  • request-rate no limit stated; 120 parallel keyless GETs in one burst all answered HTTP 200, with no 429
Bindingnone No quota, key or rate limit is stated, and a 120-request parallel burst met no 429; what a reader meets instead is a feed that has stopped updating or fails.
Identityanonymous No account and no key: the home page states that no signup is required, and keyless GETs answered HTTP 200.
Egressnot applicable: JSON answers, not metered in bytes
Per-object capno cap stated; one GET of /v3/covid-19/historical?lastdays=all returned the whole JHU time series of every country and province in 13953048 bytes
Retentionthe JHU time series runs from 1/22/20 to 3/9/23; the Worldometers totals are live, updated every 10 minutes
Interfacerest HTTPS GET at disease.sh/v3/ with JSON answers, open to all origins (Access-Control-Allow-Origin: *); the OpenAPI 3.0.0 document is at disease.sh/apidocs/swagger_v3.json and the live reference at disease.sh/docs/
Toolingany HTTP client. The last resort is self-hosted: the open-source API server, which the user installs and runs with Redis on a rented or free machine, started with docker-compose or npm.
Composes withFree keyless epidemiology numbers for dashboards: live Worldometers totals by country and continent, with the JHU time series for history up to 3/9/23. Bulk path: GET /v3/covid-19/historical?lastdays=all returns the whole time series of every country and province in one JSON of 13953048 bytes; the JHU CSSE and NYT repositories that the README lists as sources are the public bulk data behind it. The last resort is self-hosted: the open-source server that the user installs and runs with Redis on a rented or free machine.
ReliabilityOn 2026-11-02 /v3/covid-19/jhucsse/counties answered HTTP 502 with Retry-After 60, and the JHU time series ends on 3/9/23; the live Worldometers totals answered 200 with JSON that carries an updated timestamp.
NotesCaveat: the JHU time series ends 3/9/23 and /v3/covid-19/jhucsse/counties failed with HTTP 502 on 2026-11-02; the Worldometers totals are live. Free requests: no key, no stated limit. Bulk path: /v3/covid-19/historical?lastdays=all, one GET.
Evidence notedocumented Free use and no sign-up are stated on the home page and in the site source; keyless GETs answered 200, one request returned the whole JHU series, and 120 parallel GETs met no 429. No rate limit is published, so the absence of one is read from that burst and not from a statement.
Parsed numbers
  • has-free-tier 1
Evidence 25
datesourcewhat it proved
2026-11-02disease.sh/the services are free to use
2026-11-02disease.sh/the API covers current global outbreaks, COVID-19 and influenza
2026-11-02disease.sh/the served home page's own metadata says no signup is required
2026-11-02github.com/disease-sh/API/blob/master/public/index.ejsthe site source's page metadata says no signup is required
2026-11-02probe: https://disease.sh/v3/covid-19/alla keyless GET of the global totals answered HTTP 200
2026-11-02probe: https://disease.sh/v3/covid-19/allthe answer allows cross-origin reads from any origin
2026-11-02probe: https://disease.sh/v3/covid-19/allthe body is JSON with an updated timestamp and the global totals
2026-11-02probe: https://disease.sh/v3/covid-19/allthe burst was 120 parallel GETs
2026-11-02probe: https://disease.sh/v3/covid-19/allthe highest status of the 120 runs was 200, so none answered 429
2026-11-02disease.sh/docs/the Worldometers COVID-19 totals update every 10 minutes
2026-11-02disease.sh/docs/the JHUCSSE group, which holds the historical endpoints, is sourced from Johns Hopkins University
2026-11-02disease.sh/docs/the /v3/covid-19/historical endpoint returns the time series of all countries and their provinces
2026-11-02disease.sh/apidocs/swagger_v3.jsonthe lastdays parameter takes all for the full data set
2026-11-02disease.sh/apidocs/swagger_v3.jsonthe contract is an OpenAPI 3.0.0 document
2026-11-02probe: https://disease.sh/v3/covid-19/historical?lastdays=allone GET with lastdays=all answered 200 with 13953048 bytes
2026-11-02probe: https://disease.sh/v3/covid-19/historical/all?lastdays=allthe global series starts on 1/22/20
2026-11-02probe: https://disease.sh/v3/covid-19/historical/all?lastdays=allthe global series ends on 3/9/23
2026-11-02probe: https://disease.sh/v3/covid-19/jhucsse/countiesthe JHU counties endpoint answered HTTP 502
2026-11-02probe: https://disease.sh/v3/covid-19/jhucsse/countiesthat answer carried Retry-After 60
2026-11-02raw.githubusercontent.com/disease-sh/API/master/README.mdthe open-source server needs a Redis server started with redis-server
2026-11-02raw.githubusercontent.com/disease-sh/API/master/README.mdthe README has a docker-compose install path for the open-source server
2026-11-02raw.githubusercontent.com/disease-sh/API/master/README.mdthe open-source server also runs with docker-compose
2026-11-02raw.githubusercontent.com/disease-sh/API/master/README.mdthe README lists the JHU CSSE time series repository as a source
2026-11-02raw.githubusercontent.com/disease-sh/API/master/README.mdthe README lists the NYT COVID-19 data repository as a source
2026-11-02raw.githubusercontent.com/disease-sh/API/master/server.jsthe server source sets CORS open to every origin