Skill Tracer
Skills › Scientific Agent Skills › database-lookup › who.md

who.md

283 lines · skills/database-lookup/references/who.md at 5f2bc03

Open on GitHub
1# WHO Global Health Observatory (GHO) API Reference
2

WHO Global Health Observatory (GHO) API Reference

Raw lines 1 to 2
3## Overview
4The WHO Global Health Observatory (GHO) OData API provides access to health statistics for 194 WHO member states. It covers over 2000 indicators including life expectancy, disease burden, mortality, immunization coverage, health workforce, air pollution, water/sanitation, and the Sustainable Development Goal (SDG) health indicators.
5

Overview

The WHO Global Health Observatory (GHO) OData API provides access to health statistics for 194 WHO member states. It covers over 2000 indicators including life expectancy, disease burden, mortality, immunization coverage, health workforce, air pollution, water/sanitation, and the Sustainable Development Goal (SDG) health indicators.

Raw lines 3 to 5
6## Base URL
7```
8https://ghoapi.azureedge.net/api
9```

Base URL

https://ghoapi.azureedge.net/api
Raw lines 6 to 10
11## Authentication
12**No API key required.** The API is fully open and free.

Authentication

No API key required. The API is fully open and free.

Raw lines 11 to 13
14## Rate Limits
15- No formal rate limits documented.
16- The API is served via Azure CDN and handles moderate loads well.
17- Be respectful with automated requests; 1-2 per second recommended.
19---

Rate Limits

  • No formal rate limits documented.
  • The API is served via Azure CDN and handles moderate loads well.
  • Be respectful with automated requests; 1-2 per second recommended.

Raw lines 14 to 20
21## Key Endpoints
23The API follows the OData v4 protocol. Standard OData query parameters work: `$filter`, `$select`, `$orderby`, `$top`, `$skip`, `$count`.

Key Endpoints

The API follows the OData v4 protocol. Standard OData query parameters work: $filter, $select, $orderby, $top, $skip, $count.

Raw lines 21 to 24
25### 1. List All Indicators
27```
28GET /Indicator
29```
31**Example:**
32```
33https://ghoapi.azureedge.net/api/Indicator
34```
36**Response:**
37```json
39 "@odata.context": "...",
40 "value": [
41 {
42 "IndicatorCode": "WHOSIS_000001",
43 "IndicatorName": "Life expectancy at birth (years)",
44 "Language": "EN"
45 },
46 {
47 "IndicatorCode": "WHOSIS_000002",
48 "IndicatorName": "Healthy life expectancy (HALE) at birth (years)",
49 "Language": "EN"
50 },
51 {
52 "IndicatorCode": "WHS4_100",
53 "IndicatorName": "Measles (MCV1) immunization coverage among 1-year-olds (%)",
54 "Language": "EN"
55 }
56 ]
58```

1. List All Indicators

GET /Indicator

Example:

https://ghoapi.azureedge.net/api/Indicator

Response:

{
  "@odata.context": "...",
  "value": [
    {
      "IndicatorCode": "WHOSIS_000001",
      "IndicatorName": "Life expectancy at birth (years)",
      "Language": "EN"
    },
    {
      "IndicatorCode": "WHOSIS_000002",
      "IndicatorName": "Healthy life expectancy (HALE) at birth (years)",
      "Language": "EN"
    },
    {
      "IndicatorCode": "WHS4_100",
      "IndicatorName": "Measles (MCV1) immunization coverage among 1-year-olds (%)",
      "Language": "EN"
    }
  ]
}
Raw lines 25 to 59
60### 2. Get Data for a Specific Indicator
62```
63GET /{IndicatorCode}
64```
66**Example (life expectancy at birth):**
67```
68https://ghoapi.azureedge.net/api/WHOSIS_000001
69```
71**Response:**
72```json
74 "@odata.context": "...",
75 "value": [
76 {
77 "Id": 12345,
78 "IndicatorCode": "WHOSIS_000001",
79 "SpatialDim": "USA",
80 "SpatialDimType": "COUNTRY",
81 "TimeDim": 2019,
82 "TimeDimType": "YEAR",
83 "Dim1": "SEX_BTSX",
84 "Dim1Type": "SEX",
85 "Dim2": null,
86 "Dim2Type": null,
87 "Dim3": null,
88 "Dim3Type": null,
89 "DataSourceDim": null,
90 "Value": "78.5",
91 "NumericValue": 78.5,
92 "Low": 78.2,
93 "High": 78.8,
94 "Comments": "",
95 "Date": "2024-01-15T00:00:00+00:00",
96 "TimeDimensionValue": "2019",
97 "TimeDimensionBegin": "2019-01-01T00:00:00+00:00",
98 "TimeDimensionEnd": "2019-12-31T00:00:00+00:00"
99 }
100 ]
102```

2. Get Data for a Specific Indicator

GET /{IndicatorCode}

Example (life expectancy at birth):

https://ghoapi.azureedge.net/api/WHOSIS_000001

Response:

{
  "@odata.context": "...",
  "value": [
    {
      "Id": 12345,
      "IndicatorCode": "WHOSIS_000001",
      "SpatialDim": "USA",
      "SpatialDimType": "COUNTRY",
      "TimeDim": 2019,
      "TimeDimType": "YEAR",
      "Dim1": "SEX_BTSX",
      "Dim1Type": "SEX",
      "Dim2": null,
      "Dim2Type": null,
      "Dim3": null,
      "Dim3Type": null,
      "DataSourceDim": null,
      "Value": "78.5",
      "NumericValue": 78.5,
      "Low": 78.2,
      "High": 78.8,
      "Comments": "",
      "Date": "2024-01-15T00:00:00+00:00",
      "TimeDimensionValue": "2019",
      "TimeDimensionBegin": "2019-01-01T00:00:00+00:00",
      "TimeDimensionEnd": "2019-12-31T00:00:00+00:00"
    }
  ]
}
Raw lines 60 to 103
104### 3. Filter by Country
106Use OData `$filter` to restrict results by country (SpatialDim).
108**Example (life expectancy for USA only):**
109```
110https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA'
111```
113**Example (life expectancy for multiple countries):**
114```
115https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA' or SpatialDim eq 'GBR' or SpatialDim eq 'JPN'
116```

3. Filter by Country

Use OData $filter to restrict results by country (SpatialDim).

Example (life expectancy for USA only):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA'

Example (life expectancy for multiple countries):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA' or SpatialDim eq 'GBR' or SpatialDim eq 'JPN'
Raw lines 104 to 117
118### 4. Filter by Year
120**Example (life expectancy in 2019):**
121```
122https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=TimeDim eq 2019
123```
125**Example (life expectancy for USA since 2015):**
126```
127https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA' and TimeDim ge 2015
128```

4. Filter by Year

Example (life expectancy in 2019):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=TimeDim eq 2019

Example (life expectancy for USA since 2015):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA' and TimeDim ge 2015
Raw lines 118 to 129
130### 5. Filter by Sex/Dimension
132**Example (life expectancy, both sexes, USA, 2015+):**
133```
134https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA' and TimeDim ge 2015 and Dim1 eq 'SEX_BTSX'
135```
137Dim1 sex values: `SEX_BTSX` (both sexes), `SEX_MLE` (male), `SEX_FMLE` (female).

5. Filter by Sex/Dimension

Example (life expectancy, both sexes, USA, 2015+):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA' and TimeDim ge 2015 and Dim1 eq 'SEX_BTSX'

Dim1 sex values: SEX_BTSX (both sexes), SEX_MLE (male), SEX_FMLE (female).

Raw lines 130 to 138
139### 6. Pagination and Limiting
141**Example (first 10 results):**
142```
143https://ghoapi.azureedge.net/api/WHOSIS_000001?$top=10
144```
146**Example (skip first 100, get next 50):**
147```
148https://ghoapi.azureedge.net/api/WHOSIS_000001?$top=50&$skip=100
149```

6. Pagination and Limiting

Example (first 10 results):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$top=10

Example (skip first 100, get next 50):

https://ghoapi.azureedge.net/api/WHOSIS_000001?$top=50&$skip=100
Raw lines 139 to 150
151### 7. Select Specific Fields
153```
154https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA'&$select=SpatialDim,TimeDim,NumericValue,Dim1
155```

7. Select Specific Fields

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA'&$select=SpatialDim,TimeDim,NumericValue,Dim1
Raw lines 151 to 156
157### 8. Order Results
159```
160https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA'&$orderby=TimeDim desc
161```

8. Order Results

https://ghoapi.azureedge.net/api/WHOSIS_000001?$filter=SpatialDim eq 'USA'&$orderby=TimeDim desc
Raw lines 157 to 162
163### 9. List Dimension Values
165```
166GET /DIMENSION/{DimensionType}/DimensionValues
167```
169**Example (list all countries):**
170```
171https://ghoapi.azureedge.net/api/DIMENSION/COUNTRY/DimensionValues
172```
174**Example (list all regions):**
175```
176https://ghoapi.azureedge.net/api/DIMENSION/REGION/DimensionValues
177```
179**Example (list sex dimension values):**
180```
181https://ghoapi.azureedge.net/api/DIMENSION/SEX/DimensionValues
182```
184---

9. List Dimension Values

GET /DIMENSION/{DimensionType}/DimensionValues

Example (list all countries):

https://ghoapi.azureedge.net/api/DIMENSION/COUNTRY/DimensionValues

Example (list all regions):

https://ghoapi.azureedge.net/api/DIMENSION/REGION/DimensionValues

Example (list sex dimension values):

https://ghoapi.azureedge.net/api/DIMENSION/SEX/DimensionValues

Raw lines 163 to 185
186## Common Indicator Codes

Common Indicator Codes

Raw lines 186 to 187
188### Life Expectancy & Mortality
189| Code | Description |
190|------|-------------|
191| `WHOSIS_000001` | Life expectancy at birth (years) |
192| `WHOSIS_000002` | Healthy life expectancy (HALE) at birth (years) |
193| `WHOSIS_000004` | Neonatal mortality rate (per 1000 live births) |
194| `MDG_0000000001` | Infant mortality rate (per 1000 live births) |
195| `MDG_0000000007` | Under-five mortality rate (per 1000 live births) |
196| `MORT_MATERNALNUM` | Number of maternal deaths |
197| `MDG_0000000026` | Maternal mortality ratio (per 100000 live births) |
198| `NCDMORT3070` | Probability of dying from NCDs between ages 30-70 |
199| `LIFE_0000000029` | Adult mortality rate (probability of dying 15-60) |

Life Expectancy & Mortality

CodeDescription
WHOSIS_000001Life expectancy at birth (years)
WHOSIS_000002Healthy life expectancy (HALE) at birth (years)
WHOSIS_000004Neonatal mortality rate (per 1000 live births)
MDG_0000000001Infant mortality rate (per 1000 live births)
MDG_0000000007Under-five mortality rate (per 1000 live births)
MORT_MATERNALNUMNumber of maternal deaths
MDG_0000000026Maternal mortality ratio (per 100000 live births)
NCDMORT3070Probability of dying from NCDs between ages 30-70
LIFE_0000000029Adult mortality rate (probability of dying 15-60)
Raw lines 188 to 200
201### Communicable Diseases
202| Code | Description |
203|------|-------------|
204| `WHS3_49` | HIV prevalence (% of population ages 15-49) |
205| `MDG_0000000029` | Tuberculosis incidence (per 100,000) |
206| `MALARIA_EST_INCIDENCE` | Malaria incidence (per 1000 population at risk) |
207| `WHS3_62` | New HIV infections (per 1000 uninfected population) |

Communicable Diseases

CodeDescription
WHS3_49HIV prevalence (% of population ages 15-49)
MDG_0000000029Tuberculosis incidence (per 100,000)
MALARIA_EST_INCIDENCEMalaria incidence (per 1000 population at risk)
WHS3_62New HIV infections (per 1000 uninfected population)
Raw lines 201 to 208
209### Immunization
210| Code | Description |
211|------|-------------|
212| `WHS4_100` | Measles (MCV1) immunization (% of 1-year-olds) |
213| `WHS4_117` | DTP3 immunization (% of 1-year-olds) |
214| `WHS4_129` | Hepatitis B (HepB3) immunization (%) |
215| `WHS4_543` | Polio (Pol3) immunization (% of 1-year-olds) |

Immunization

CodeDescription
WHS4_100Measles (MCV1) immunization (% of 1-year-olds)
WHS4_117DTP3 immunization (% of 1-year-olds)
WHS4_129Hepatitis B (HepB3) immunization (%)
WHS4_543Polio (Pol3) immunization (% of 1-year-olds)
Raw lines 209 to 216
217### Non-Communicable Diseases & Risk Factors
218| Code | Description |
219|------|-------------|
220| `NCD_BMI_30A` | Prevalence of obesity (BMI >= 30), age-standardized |
221| `NCD_HYP_PREVALENCE_A` | Prevalence of raised blood pressure |
222| `NCD_GLUC_04` | Prevalence of diabetes (% of population) |
223| `M_Est_smk_curr_std` | Prevalence of current tobacco smoking |
224| `SA_0000001462` | Total alcohol per capita consumption (litres) |

Non-Communicable Diseases & Risk Factors

CodeDescription
NCD_BMI_30APrevalence of obesity (BMI >= 30), age-standardized
NCD_HYP_PREVALENCE_APrevalence of raised blood pressure
NCD_GLUC_04Prevalence of diabetes (% of population)
M_Est_smk_curr_stdPrevalence of current tobacco smoking
SA_0000001462Total alcohol per capita consumption (litres)
Raw lines 217 to 225
226### Health Systems
227| Code | Description |
228|------|-------------|
229| `HWF_0001` | Medical doctors (per 10,000 population) |
230| `HWF_0006` | Nursing and midwifery personnel (per 10,000) |
231| `WHS7_104` | Hospital beds (per 10,000 population) |
232| `GHED_CHE_pc_US_SHA2011` | Current health expenditure per capita (USD) |
233| `UHC_INDEX_REPORTED` | UHC service coverage index |

Health Systems

CodeDescription
HWF_0001Medical doctors (per 10,000 population)
HWF_0006Nursing and midwifery personnel (per 10,000)
WHS7_104Hospital beds (per 10,000 population)
GHED_CHE_pc_US_SHA2011Current health expenditure per capita (USD)
UHC_INDEX_REPORTEDUHC service coverage index
Raw lines 226 to 234
235### Environmental Health
236| Code | Description |
237|------|-------------|
238| `SDGPM25` | PM2.5 air pollution, mean annual exposure (ug/m3) |
239| `WSH_SANITATION_SAFELY_MANAGED` | Safely managed sanitation services (%) |
240| `WSH_WATER_SAFELY_MANAGED` | Safely managed drinking water services (%) |
242---

Environmental Health

CodeDescription
SDGPM25PM2.5 air pollution, mean annual exposure (ug/m3)
WSH_SANITATION_SAFELY_MANAGEDSafely managed sanitation services (%)
WSH_WATER_SAFELY_MANAGEDSafely managed drinking water services (%)

Raw lines 235 to 243
244## Country Codes (ISO 3166-1 alpha-3)
246The GHO API uses **ISO 3-letter codes** for countries in the `SpatialDim` field.
248`USA` (United States), `GBR` (United Kingdom), `DEU` (Germany), `FRA` (France), `JPN` (Japan), `CHN` (China), `IND` (India), `BRA` (Brazil), `ZAF` (South Africa), `NGA` (Nigeria), `AUS` (Australia), `CAN` (Canada), `KOR` (Republic of Korea), `MEX` (Mexico), `RUS` (Russian Federation)
250WHO Regions: `AFR` (Africa), `AMR` (Americas), `SEAR` (South-East Asia), `EUR` (Europe), `EMR` (Eastern Mediterranean), `WPR` (Western Pacific), `GLOBAL` (Global)
252---

Country Codes (ISO 3166-1 alpha-3)

The GHO API uses ISO 3-letter codes for countries in the SpatialDim field.

USA (United States), GBR (United Kingdom), DEU (Germany), FRA (France), JPN (Japan), CHN (China), IND (India), BRA (Brazil), ZAF (South Africa), NGA (Nigeria), AUS (Australia), CAN (Canada), KOR (Republic of Korea), MEX (Mexico), RUS (Russian Federation)

WHO Regions: AFR (Africa), AMR (Americas), SEAR (South-East Asia), EUR (Europe), EMR (Eastern Mediterranean), WPR (Western Pacific), GLOBAL (Global)


Raw lines 244 to 253
254## Response Format
255All responses are JSON following OData v4 conventions:
257```json
259 "@odata.context": "https://ghoapi.azureedge.net/api/$metadata#...",
260 "value": [
261 { ... observation object ... },
262 { ... observation object ... }
263 ]
265```
267Key fields in each observation:
268- `SpatialDim`: Country/region code (ISO alpha-3)
269- `TimeDim`: Year (integer)
270- `NumericValue`: The numeric data value (float or null)
271- `Value`: String representation of the value
272- `Low` / `High`: Confidence interval bounds (when available)
273- `Dim1`: First additional dimension (often sex: `SEX_BTSX`, `SEX_MLE`, `SEX_FMLE`)
274- `Dim2`, `Dim3`: Additional dimensions (age group, etc.)

Response Format

All responses are JSON following OData v4 conventions:

{
  "@odata.context": "https://ghoapi.azureedge.net/api/$metadata#...",
  "value": [
    { ... observation object ... },
    { ... observation object ... }
  ]
}

Key fields in each observation:

  • SpatialDim: Country/region code (ISO alpha-3)
  • TimeDim: Year (integer)
  • NumericValue: The numeric data value (float or null)
  • Value: String representation of the value
  • Low / High: Confidence interval bounds (when available)
  • Dim1: First additional dimension (often sex: SEX_BTSX, SEX_MLE, SEX_FMLE)
  • Dim2, Dim3: Additional dimensions (age group, etc.)
Raw lines 254 to 275
276## Notes
277- The API uses OData v4 syntax. Filter operators: `eq`, `ne`, `gt`, `ge`, `lt`, `le`, `and`, `or`, `not`. String values must be in single quotes.
278- Not all indicators have data for all countries or years. Check data availability before building dependent workflows.
279- `NumericValue` is preferred over `Value` for numeric analysis; `Value` is a string and may contain qualifiers.
280- Many indicators are disaggregated by sex (`Dim1`) and/or age group (`Dim2`). Use the dimension values endpoint to discover valid codes.
281- Data may have multi-year lag, especially for lower-income countries.
282- The `Low` and `High` fields provide uncertainty intervals from WHO estimation processes (not all indicators have these).
283- For bulk exploration, the GHO data portal at https://www.who.int/data/gho provides a browsable interface to find indicator codes.

Notes

  • The API uses OData v4 syntax. Filter operators: eq, ne, gt, ge, lt, le, and, or, not. String values must be in single quotes.
  • Not all indicators have data for all countries or years. Check data availability before building dependent workflows.
  • NumericValue is preferred over Value for numeric analysis; Value is a string and may contain qualifiers.
  • Many indicators are disaggregated by sex (Dim1) and/or age group (Dim2). Use the dimension values endpoint to discover valid codes.
  • Data may have multi-year lag, especially for lower-income countries.
  • The Low and High fields provide uncertainty intervals from WHO estimation processes (not all indicators have these).
  • For bulk exploration, the GHO data portal at https://www.who.int/data/gho provides a browsable interface to find indicator codes.
Raw lines 276 to 283