{"rid":"data-apis/disease-sh","card":{"rid":"data-apis/disease-sh","eid":"disease","topic":"data-apis","slug":"disease-sh","provider":"Open Disease API (disease.sh)","url":"https://disease.sh/","domain":"disease.sh","category":"open disease statistics API","tier":"free","verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","self_hosted":0,"confidence":"documented","binding":"none","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-02T00:23:45.809Z","verified_basis":"live","checked_on":"2026-11-02","stale_on":"2026-12-03","n_evidence":25,"usd_month":null,"usd_per_tb_month":null,"summary":"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.","duplicate_of":null,"n_unknown":0,"free_unit":"unlimited"},"record":{"topic":"data-apis","slug":"disease-sh","provider":"Open Disease API (disease.sh)","url":"https://disease.sh/","category":"open disease statistics API","tier":"free","free_tier":{"stated":"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.","unit":"unlimited","metered_on":"none","source_url":"https://disease.sh/","read_on":"2026-11-02","notes":"A burst of 120 parallel keyless GETs all answered HTTP 200. The Worldometers totals update every 10 minutes."},"per_object_cap":{"stated":"no 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","bytes":null,"notes":""},"retention":{"stated":"the JHU time series runs from 1/22/20 to 3/9/23; the Worldometers totals are live, updated every 10 minutes","days":null,"notes":"","source_url":"https://disease.sh/docs/"},"egress":{"terms":"not applicable: JSON answers, not metered in bytes","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://disease.sh/"},"interface":["rest"],"interface_detail":"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/","endpoint":"https://disease.sh/v3/covid-19/all","tooling":"any 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.","chaining":"Free 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.","limits":[{"kind":"request-rate","value":"no limit stated; 120 parallel keyless GETs in one burst all answered HTTP 200, with no 429","source":"probe:https://disease.sh/v3/covid-19/all"}],"binding":"none","binding_note":"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.","identity_cost":{"kind":"anonymous","detail":"No account and no key: the home page states that no signup is required, and keyless GETs answered HTTP 200.","country":null},"reliability_note":"On 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.","confidence":"documented","confidence_note":"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.","evidence":[{"url":"https://disease.sh/","date":"2026-11-02","proved":"the services are free to use","capture":"sha256:9698e14dd289abb8cb07fc08ecbf174c888b1c1bc11111ab2a1fec8b36dcd6d8","quote":"Our services are free to use, and have a 100/100 page insight performance score."},{"url":"https://disease.sh/","date":"2026-11-02","proved":"the API covers current global outbreaks, COVID-19 and influenza","capture":"sha256:9698e14dd289abb8cb07fc08ecbf174c888b1c1bc11111ab2a1fec8b36dcd6d8","quote":"We provide data on current global outbreaks, including COVID-19 and Influenza."},{"url":"https://disease.sh/","date":"2026-11-02","proved":"the served home page's own metadata says no signup is required","capture":"sha256:8ee298a5fe3eceeed6aa761fe7f64e623be66e5031008372266fa33b51831a0f","quote":"An open API for disease-related statistics. No signup required."},{"url":"https://github.com/disease-sh/API/blob/master/public/index.ejs","date":"2026-11-02","proved":"the site source's page metadata says no signup is required","capture":"sha256:5728d939bcc8c1658f1ead897f59f2daa802d6da917ba0b367766bd700b5e9ed","quote":"An open API for disease-related statistics. No signup required."},{"url":"probe:https://disease.sh/v3/covid-19/all","date":"2026-11-02","proved":"a keyless GET of the global totals answered HTTP 200","capture":"sha256:0510d3339e2426cb9a718901e8246a1490a6b7d302dce15cd881e5b588041175","quote":"\"status\": 200"},{"url":"probe:https://disease.sh/v3/covid-19/all","date":"2026-11-02","proved":"the answer allows cross-origin reads from any origin","capture":"sha256:0510d3339e2426cb9a718901e8246a1490a6b7d302dce15cd881e5b588041175","quote":"\"access-control-allow-origin\": \"*\""},{"url":"probe:https://disease.sh/v3/covid-19/all","date":"2026-11-02","proved":"the body is JSON with an updated timestamp and the global totals","capture":"sha256:2692cc5bc804be870a21384bf30353865d9127928bde5e45f767be950a3e2029","quote":"{\"updated\":1793615351436,\"cases\":704753890,"},{"url":"probe:https://disease.sh/v3/covid-19/all","date":"2026-11-02","proved":"the burst was 120 parallel GETs","capture":"sha256:b3f4b4b56828e3c64f94e9d8893a191f42b117bace74cea14dc0b540c123181c","quote":"\"concurrency\": 120"},{"url":"probe:https://disease.sh/v3/covid-19/all","date":"2026-11-02","proved":"the highest status of the 120 runs was 200, so none answered 429","capture":"sha256:b3f4b4b56828e3c64f94e9d8893a191f42b117bace74cea14dc0b540c123181c","quote":"\"status\": 200"},{"url":"https://disease.sh/docs/","date":"2026-11-02","proved":"the Worldometers COVID-19 totals update every 10 minutes","capture":"sha256:bf9e9278948ad2a740d8204a32b5046d2e2e074fae0ed89261e355cfd0762f38","quote":"(COVID-19 data sourced from Worldometers, updated every 10 minutes)"},{"url":"https://disease.sh/docs/","date":"2026-11-02","proved":"the JHUCSSE group, which holds the historical endpoints, is sourced from Johns Hopkins University","capture":"sha256:bf9e9278948ad2a740d8204a32b5046d2e2e074fae0ed89261e355cfd0762f38","quote":"(COVID-19 data sourced from Johns Hopkins University, updated every 10 minutes)"},{"url":"https://disease.sh/docs/","date":"2026-11-02","proved":"the /v3/covid-19/historical endpoint returns the time series of all countries and their provinces","capture":"sha256:bf9e9278948ad2a740d8204a32b5046d2e2e074fae0ed89261e355cfd0762f38","quote":"Get COVID-19 time series data for all countries and their provinces"},{"url":"https://disease.sh/apidocs/swagger_v3.json","date":"2026-11-02","proved":"the lastdays parameter takes all for the full data set","capture":"sha256:65d0e7dfe742ebfe60304810a1dcf784919d262bbcacbc924959febab44c2c51","quote":"Number of days to return. Use 'all' for the full data set (e.g. 15, all, 24)"},{"url":"https://disease.sh/apidocs/swagger_v3.json","date":"2026-11-02","proved":"the contract is an OpenAPI 3.0.0 document","capture":"sha256:65d0e7dfe742ebfe60304810a1dcf784919d262bbcacbc924959febab44c2c51","quote":"\"openapi\": \"3.0.0\","},{"url":"probe:https://disease.sh/v3/covid-19/historical?lastdays=all","date":"2026-11-02","proved":"one GET with lastdays=all answered 200 with 13953048 bytes","capture":"sha256:8c0badb7d1d7a145248cd78116e04dc6cefcbe422aa93b2b1f0947014dcb8aa0","quote":"\"status\": 200, \"bytes\": 13953048,"},{"url":"probe:https://disease.sh/v3/covid-19/historical/all?lastdays=all","date":"2026-11-02","proved":"the global series starts on 1/22/20","capture":"sha256:449abb17ee9118c6f17a369abaa09b95eb14f3b99fc7291d2573158c1996b50a","quote":"{\"cases\":{\"1/22/20\":557,\"1/23/20\":657"},{"url":"probe:https://disease.sh/v3/covid-19/historical/all?lastdays=all","date":"2026-11-02","proved":"the global series ends on 3/9/23","capture":"sha256:449abb17ee9118c6f17a369abaa09b95eb14f3b99fc7291d2573158c1996b50a","quote":"\"3/9/23\":676570149},\"deaths\":{\"1/22/20\":17"},{"url":"probe:https://disease.sh/v3/covid-19/jhucsse/counties","date":"2026-11-02","proved":"the JHU counties endpoint answered HTTP 502","capture":"sha256:cdaff5c95a3158728756661254605643926750fdd380f949c9f9116e0976f573","quote":"\"status\": 502"},{"url":"probe:https://disease.sh/v3/covid-19/jhucsse/counties","date":"2026-11-02","proved":"that answer carried Retry-After 60","capture":"sha256:cdaff5c95a3158728756661254605643926750fdd380f949c9f9116e0976f573","quote":"\"retry-after\": \"60\""},{"url":"https://raw.githubusercontent.com/disease-sh/API/master/README.md","date":"2026-11-02","proved":"the open-source server needs a Redis server started with redis-server","capture":"sha256:c04f694aa4f122a0681d8fee347a6d9a30524c4b9719e9c6c42ab24ed4927496","quote":"2. Start redis server using `redis-server`"},{"url":"https://raw.githubusercontent.com/disease-sh/API/master/README.md","date":"2026-11-02","proved":"the README has a docker-compose install path for the open-source server","capture":"sha256:c04f694aa4f122a0681d8fee347a6d9a30524c4b9719e9c6c42ab24ed4927496","quote":"## With docker-compose"},{"url":"https://raw.githubusercontent.com/disease-sh/API/master/README.md","date":"2026-11-02","proved":"the open-source server also runs with docker-compose","capture":"sha256:c04f694aa4f122a0681d8fee347a6d9a30524c4b9719e9c6c42ab24ed4927496","quote":"5. Run `npm run docker-start` to run the published version of the API with Docker"},{"url":"https://raw.githubusercontent.com/disease-sh/API/master/README.md","date":"2026-11-02","proved":"the README lists the JHU CSSE time series repository as a source","capture":"sha256:c04f694aa4f122a0681d8fee347a6d9a30524c4b9719e9c6c42ab24ed4927496","quote":"> https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series"},{"url":"https://raw.githubusercontent.com/disease-sh/API/master/README.md","date":"2026-11-02","proved":"the README lists the NYT COVID-19 data repository as a source","capture":"sha256:c04f694aa4f122a0681d8fee347a6d9a30524c4b9719e9c6c42ab24ed4927496","quote":"> https://github.com/nytimes/covid-19-data"},{"url":"https://raw.githubusercontent.com/disease-sh/API/master/server.js","date":"2026-11-02","proved":"the server source sets CORS open to every origin","capture":"sha256:48dd9efd20d6daa194f76b1f6915b36d929a7fcc546f35f778c8e207f5b694a6","quote":"app.use(require('cors')({ origin: '*' }));"}],"verdict":"qualifies-with-caveat","verified_at":"2026-11-02T00:23:45.809Z","notes":"Caveat: 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.","self_hosted":false},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[],"history":[],"drift":[]}