BYTETOOLS

WHO Global Health Observatory API

Free World Health Organization API with no key: 2,000+ health indicators by country and year — life expectancy, mortality, immunisation and disease data. Tested.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the WHO Global Health Observatory API?

The WHO Global Health Observatory API is a free, key-free OData API providing more than 2,000 global health indicators by country and year, including life expectancy, mortality rates, immunisation coverage and disease prevalence.

This is the authoritative source for international health statistics, published by the World Health Organization. Indicators cover mortality, life expectancy, immunisation, nutrition, health systems capacity and disease burden across every member state.

It is an OData service rather than a conventional REST API, which shapes how you query it: filtering, selection and pagination use OData syntax with $filter, $select and $top. Once you know that convention it is powerful, but it looks alien if you are expecting normal query parameters.

Quick facts

Base URL
https://ghoapi.azureedge.net/api
Authentication
No API key required.
Rate limit
No published limit; fair use expected.
Pricing
Free open data from the World Health Organization.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the WHO Global Health Observatory 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. List available health indicators

GET https://ghoapi.azureedge.net/api/Indicator?$top=2

curl
curl 'https://ghoapi.azureedge.net/api/Indicator?$top=2'
JavaScript (fetch)
const res = await fetch("https://ghoapi.azureedge.net/api/Indicator?$top=2");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://ghoapi.azureedge.net/api/Indicator?$top=2", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "@odata.context": "https://ghoapi.azureedge.net/api/$metadata#Indicator",
  "value": [
    {
      "IndicatorCode": "ABORTION_ADMISSIONS",
      "IndicatorName": "Abortion admissions per 1000 women of reproductive age",
      "Language": "EN"
    },
    {
      "IndicatorCode": "Adult_curr_cig_smoking",
      "IndicatorName": "Archived, see TOBACCO_INDICATOR",
      "Language": "EN"
    }
  ]
}

Parameters

ParameterTypeRequiredDescription
IndicatorpathOptionalList all available indicator codes and names. Indicator
<IndicatorCode>pathOptionalFetch all data for one indicator. WHOSIS_000001
$filterstringOptionalOData filter expression. SpatialDim eq 'PAK'
$topintegerOptionalLimit the number of records returned. 10
$selectstringOptionalRestrict returned fields. SpatialDim,TimeDim,Value

Response fields

@odata.contextstring
OData metadata URL describing the schema.
valuearray
The records array — always nested under `value`.
value[].IndicatorCodestring
Indicator identifier such as WHOSIS_000001 for life expectancy.
value[].SpatialDimstring
ISO-3 country code or region identifier.
value[].TimeDiminteger
Year of the observation.
value[].NumericValuenumber
The measured value.

What you can build with the WHO Global Health Observatory API

  • Compare life expectancy or mortality across countries
  • Chart immunisation coverage trends over time
  • Support global health research and journalism
  • Build public health dashboards with authoritative data

Common errors and how to fix them

Empty value array

The indicator code does not exist or has no data for that filter.

Fix: List /api/Indicator first to find valid codes — they are opaque strings like WHOSIS_000001.

OData syntax errors

Filters use OData, not normal query parameters.

Fix: Use $filter=SpatialDim eq 'PAK' with single quotes around string literals.

Very large responses

A full indicator spans every country and year.

Fix: Always constrain with $filter and $top.

WHO Global Health Observatory API — frequently asked questions

Is the WHO health data API free?

Yes, completely free with no API key. It is open data published by the World Health Organization.

Why does the query syntax look unusual?

It is an OData service, so filtering and selection use $filter, $select and $top rather than conventional query parameters. String literals need single quotes.

How do I find the right indicator code?

Request /api/Indicator to list all available indicators with their codes and names. The codes are opaque — WHOSIS_000001 is life expectancy at birth, for example.

What country codes does it use?

ISO 3166-1 alpha-3 codes in the SpatialDim field, plus WHO region identifiers for aggregated data.

Tools that pair with this API

WHO Global Health Observatory 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.