# Disease & Public Health API
> Global public-health data as an API, built on the open disease.sh dataset. Pull worldwide COVID-19 totals (cases, deaths, recovered, active, critical, tests and per-million rates), the same figures for any country (e.g. germany), continent (e.g. Europe) or US state (e.g. California), and the full sortable country list ranked by cases, deaths, tests and more. Track vaccine-coverage timelines globally or per country, and pull historical day-by-day case, death and recovery timelines for any country. Real data, no key needed upstream. Ideal for health dashboards, epidemiology research, data journalism and analytics.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/disease-api/..."
```

## Pricing
- **Free** (Free) — 6,000 calls/Mo, 2 req/s
- **Starter** ($7/Mo) — 90,000 calls/Mo, 8 req/s
- **Pro** ($24/Mo) — 500,000 calls/Mo, 25 req/s
- **Mega** ($79/Mo) — 2,500,000 calls/Mo, 50 req/s

## Endpoints

### Public Health

#### `GET /v1/continent` — Totals for a continent

**Parameters:**
- `continent` (query, required, string) — Continent name, e.g. Europe Example: `Europe`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/continent?continent=Europe"
```

**Response:**
```json
{
    "data": {
        "continent": {
            "cases": 253406198,
            "tests": 2848046702,
            "active": 2550270,
            "deaths": 2101824,
            "updated": 1780881454760,
            "critical": 4453,
            "continent": "Europe",
            "countries": [
                "Albania",
                "Andorra",
                "Austria",
                "Belarus",
                "Belgium",
                "Bosnia",
                "Bulgaria",
                "Channel Islands",
                "Croatia",
                "Czechia",
                "Denmark",
                "Estonia",
                "Faroe Islands",
                "Finland",
                "France",
                "Germany",
                "Gibraltar",
                "Greece",
                "Holy See (Vatican City State)",
                "Hungary",
                "Iceland",
                "Ireland",
                "Isle of Man",
                "Italy",
                "Latvia",
                "Liechtenstein",
                "Lithuania",
                "Luxembourg",
                "Macedonia",
                "Malta",
                "Moldova",
                "Monaco",
                "Montenegro",
                "Netherlands",
                "Norway",
                "Poland",
                "Portugal",
                "Romania",
                "Russia",
                "San Marino",
                "Serbia",
                "Slovakia",
               
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/continents` — All continents

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/continents"
```

**Response:**
```json
{
    "data": {
        "count": 6,
        "continents": [
            {
                "cases": 131889132,
                "tests": 1325710449,
                "active": 2528062,
                "deaths": 1695941,
                "updated": 1780881454755,
                "critical": 6095,
                "continent": "North America",
                "countries": [
                    "Anguilla",
                    "Antigua and Barbuda",
                    "Aruba",
                    "Bahamas",
                    "Barbados",
                    "Belize",
                    "Bermuda",
                    "British Virgin Islands",
                    "Canada",
                    "Caribbean Netherlands",
                    "Cayman Islands",
                    "Costa Rica",
                    "Cuba",
                    "Curaçao",
                    "Dominica",
                    "Dominican Republic",
                    "El Salvador",
                    "Greenland",
                    "Grenada",
                    "Guadeloupe",
                    "Guatemala",
                    "Haiti",
                    "Honduras",
                    "Jamaica",
                    "Martinique",
                    "Mexico",
                    "Montserrat",
                    "Nicaragua",
                    "Panama",
                    "Saint Kitts and Nevis",
                    "Saint Lucia",
                    "Saint Martin",
                    "Saint Pierre Miquel
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/countries` — All countries, sortable

**Parameters:**
- `sort` (query, optional, string) — cases | deaths | tests | active | population | … Example: `cases`
- `limit` (query, optional, string) — Results (1-250, default 50) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/countries?sort=cases&limit=50"
```

**Response:**
```json
{
    "data": {
        "sort": "cases",
        "count": 50,
        "total": 231,
        "countries": [
            {
                "flag": "https://disease.sh/assets/img/flags/us.png",
                "iso2": "US",
                "iso3": "USA",
                "cases": 111820082,
                "tests": 1186851502,
                "active": 786167,
                "deaths": 1219487,
                "country": "USA",
                "updated": 1780881454448,
                "critical": 940,
                "continent": "North America",
                "recovered": 109814428,
                "population": 334805269,
                "today_cases": 0,
                "today_deaths": 0,
                "today_recovered": 0,
                "cases_per_million": 333985,
                "tests_per_million": 3544901,
                "deaths_per_million": 3642
            },
            {
                "flag": "https://disease.sh/assets/img/flags/in.png",
                "iso2": "IN",
                "iso3": "IND",
                "cases": 45035393,
                "tests": 935879495,
                "active": 44501823,
                "deaths": 533570,
                "country": "India",
                "updated": 1780881454450,
                "critical": 0,
                "continent": "Asia",
                "recovered": 0,
                "population": 1406631776,
                "today_cases": 0,
                "today_deaths": 0,
                "today_recovered": 0,
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/country` — Totals for a country

**Parameters:**
- `country` (query, required, string) — Country name or ISO code, e.g. germany Example: `germany`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/country?country=germany"
```

**Response:**
```json
{
    "data": {
        "country": {
            "flag": "https://disease.sh/assets/img/flags/de.png",
            "iso2": "DE",
            "iso3": "DEU",
            "cases": 38828995,
            "tests": 122332384,
            "active": 405368,
            "deaths": 183027,
            "country": "Germany",
            "updated": 1780881454455,
            "critical": 0,
            "continent": "Europe",
            "recovered": 38240600,
            "population": 83883596,
            "today_cases": 0,
            "today_deaths": 0,
            "today_recovered": 0,
            "cases_per_million": 462891,
            "tests_per_million": 1458359,
            "deaths_per_million": 2182
        }
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:56.788Z",
        "request_id": "09b6a1e8-49d0-465c-9ece-8572d3354529"
    },
    "status": "ok",
    "message": "Country retrieved successfully",
    "success": true
}
```

#### `GET /v1/global` — Worldwide totals

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/global"
```

**Response:**
```json
{
    "data": {
        "cases": 704753890,
        "scope": "global",
        "tests": 7026505313,
        "active": 22123398,
        "deaths": 7010681,
        "updated": 1780881454446,
        "critical": 34794,
        "recovered": 675619811,
        "population": 7944935131,
        "today_cases": 0,
        "today_deaths": 0,
        "today_recovered": 790,
        "cases_per_million": 90413,
        "tests_per_million": 884400.59,
        "deaths_per_million": 899.4
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:56.886Z",
        "request_id": "aba17492-39bf-40ee-8733-a00e3cbf33ef"
    },
    "status": "ok",
    "message": "Global totals retrieved successfully",
    "success": true
}
```

#### `GET /v1/historical` — Historical case/death timeline

**Parameters:**
- `country` (query, required, string) — Country name, e.g. germany Example: `germany`
- `lastdays` (query, optional, string) — Days of history (default 30) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/historical?country=germany&lastdays=30"
```

**Response:**
```json
{
    "data": {
        "count": 30,
        "country": "Germany",
        "province": [
            "mainland"
        ],
        "timeline": [
            {
                "date": "2/8/23",
                "cases": 37879714,
                "deaths": 166526,
                "recovered": 0
            },
            {
                "date": "2/9/23",
                "cases": 37893892,
                "deaths": 166660,
                "recovered": 0
            },
            {
                "date": "2/10/23",
                "cases": 37893892,
                "deaths": 166660,
                "recovered": 0
            },
            {
                "date": "2/11/23",
                "cases": 37907312,
                "deaths": 166763,
                "recovered": 0
            },
            {
                "date": "2/12/23",
                "cases": 37907312,
                "deaths": 166763,
                "recovered": 0
            },
            {
                "date": "2/13/23",
                "cases": 37928944,
                "deaths": 166875,
                "recovered": 0
            },
            {
                "date": "2/14/23",
                "cases": 37949446,
                "deaths": 166999,
                "recovered": 0
            },
            {
                "date": "2/15/23",
                "cases": 37970357,
                "deaths": 167124,
                "recovered": 0
            },
            {
                "date": "2/16/2
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/states` — US states (all, or one)

**Parameters:**
- `state` (query, optional, string) — US state name, e.g. California (omit for all)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/states"
```

**Response:**
```json
{
    "data": {
        "count": 63,
        "states": [
            {
                "cases": 12711918,
                "state": "California",
                "deaths": 112443,
                "updated": 1780881454275,
                "recovered": 0,
                "population": 39512223,
                "cases_per_million": 321721,
                "deaths_per_million": 2846
            },
            {
                "cases": 9190299,
                "state": "Texas",
                "deaths": 104793,
                "updated": 1780881454275,
                "recovered": 0,
                "population": 28995881,
                "cases_per_million": 316952,
                "deaths_per_million": 3614
            },
            {
                "cases": 8048191,
                "state": "Florida",
                "deaths": 95206,
                "updated": 1780881454275,
                "recovered": 0,
                "population": 21477737,
                "cases_per_million": 374722,
                "deaths_per_million": 4433
            },
            {
                "cases": 7587861,
                "state": "New York",
                "deaths": 83374,
                "updated": 1780881454275,
                "recovered": 0,
                "population": 19453561,
                "cases_per_million": 390050,
                "deaths_per_million": 4286
            },
            {
                "cases": 4136659,
                "state": "Illinois",
                "
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/vaccine` — Vaccine-coverage timeline

**Parameters:**
- `country` (query, optional, string) — Country (omit for global) Example: `germany`
- `lastdays` (query, optional, string) — Days of history (default 30) Example: `30`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/vaccine?country=germany&lastdays=30"
```

**Response:**
```json
{
    "data": {
        "count": 30,
        "country": "Germany",
        "timeline": [
            {
                "date": "6/22/25",
                "doses": 192221468
            },
            {
                "date": "6/23/25",
                "doses": 192221468
            },
            {
                "date": "6/24/25",
                "doses": 192221468
            },
            {
                "date": "6/25/25",
                "doses": 192221468
            },
            {
                "date": "6/26/25",
                "doses": 192221468
            },
            {
                "date": "6/27/25",
                "doses": 192221468
            },
            {
                "date": "6/28/25",
                "doses": 192221468
            },
            {
                "date": "6/29/25",
                "doses": 192221468
            },
            {
                "date": "6/30/25",
                "doses": 192221468
            },
            {
                "date": "7/1/25",
                "doses": 192221468
            },
            {
                "date": "7/2/25",
                "doses": 192221468
            },
            {
                "date": "7/3/25",
                "doses": 192221468
            },
            {
                "date": "7/4/25",
                "doses": 192221468
            },
            {
                "date": "7/5/25",
                "doses": 192221468
            },
            {
                
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service description & endpoints

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/disease-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "service": "disease-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/global": "Worldwide totals.",
            "GET /v1/states": "US states (all, or state=California).",
            "GET /v1/country": "Totals for a country (country=germany).",
            "GET /v1/vaccine": "Vaccine-coverage timeline (global, or country=).",
            "GET /v1/continent": "Totals for a continent (continent=Europe).",
            "GET /v1/countries": "All countries (sort=cases|deaths|tests|…, limit=).",
            "GET /v1/continents": "All continents.",
            "GET /v1/historical": "Historical case/death timeline (country=, lastdays=)."
        },
        "description": "Global public-health data via disease.sh: worldwide and per-country, per-continent and per-US-state COVID-19 totals, the full sortable country list, vaccine-coverage timelines and historical case/death timelines. Real data, no key."
    },
    "meta": {
        "timestamp": "2026-06-08T01:19:58.110Z",
        "request_id": "92814d81-e65d-4307-acf2-649f704a4ab0"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/disease-api
OpenAPI spec: https://www.oanor.com/api/disease-api/openapi.json
