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.
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 'https://ghoapi.azureedge.net/api/Indicator?$top=2'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);import requests
res = requests.get("https://ghoapi.azureedge.net/api/Indicator?$top=2", timeout=20)
res.raise_for_status()
print(res.json()){
"@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
| Parameter | Type | Required | Description |
|---|---|---|---|
Indicator | path | Optional | List all available indicator codes and names. Indicator |
<IndicatorCode> | path | Optional | Fetch all data for one indicator. WHOSIS_000001 |
$filter | string | Optional | OData filter expression. SpatialDim eq 'PAK' |
$top | integer | Optional | Limit the number of records returned. 10 |
$select | string | Optional | Restrict 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
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.
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.
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.
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.