# WHO Global Health Observatory (GHO) Scraper (`crawlerbros/who-gho-health-data-scraper`) Actor

Scrape the WHO Global Health Observatory (GHO) - the world's most comprehensive public health statistics database. Access 2,000+ health indicators across 194 countries: life expectancy, disease burden, mortality rates, nutrition, tobacco use, mental health, and more. No authentication required.

- **URL**: https://apify.com/crawlerbros/who-gho-health-data-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Integrations, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## WHO Global Health Observatory (GHO) Scraper

Extract health statistics from the **WHO Global Health Observatory** — the world's most authoritative and comprehensive public health database with 2,000+ indicators across 194 countries, spanning life expectancy, disease burden, mortality, nutrition, tobacco use, mental health, maternal and child health, and more.

### What It Does

This actor queries the public WHO GHO OData API (no authentication required) to retrieve structured health statistics including:

- Indicator name and code
- Country and WHO region
- Year of measurement
- Numeric value with confidence intervals (low/high estimates)
- Sex/age dimensions when available

### Modes

| Mode | Description |
|---|---|
| `getIndicatorData` | Fetch all data points for a specific WHO indicator code |
| `searchIndicators` | Search the WHO GHO catalog for indicators by keyword |
| `listCountries` | List all 234 countries and territories in the GHO |

### Input Parameters

| Field | Type | Description |
|---|---|---|
| `mode` | select | `getIndicatorData`, `searchIndicators`, or `listCountries` |
| `indicatorCode` | string | WHO indicator code (e.g. `WHOSIS_000001`). Required for mode=getIndicatorData |
| `searchKeyword` | string | Keyword to search indicators (e.g. `diabetes`, `tobacco`, `mortality`) |
| `countryCode` | string | ISO-3166 alpha-3 country code (e.g. `USA`, `GBR`, `FRA`) |
| `regionCode` | select | WHO region code (AFR, AMR, EUR, SEAR, EMR, WPR) |
| `yearFrom` | integer | Include data from this year onward |
| `yearTo` | integer | Include data up to this year |
| `sex` | select | Sex dimension filter (Both, Female, Male) |
| `maxItems` | integer | Maximum records to return (default 200, max 5000) |

### Output Fields

```json
{
  "indicatorCode": "WHOSIS_000001",
  "indicatorName": "Life expectancy at birth (years)",
  "countryCode": "USA",
  "regionCode": "AMR",
  "region": "Americas",
  "country": "Americas",
  "year": 2022,
  "value": "76.1 [75.9-76.3]",
  "numericValue": 76.1,
  "lowEstimate": 75.9,
  "highEstimate": 76.3,
  "sex": "Both sexes",
  "dataUpdatedAt": "2024-08-02",
  "sourceUrl": "https://www.who.int/data/gho/data/indicators/indicator-details/GHO/WHOSIS_000001",
  "recordType": "healthStatistic",
  "scrapedAt": "2026-06-02T12:00:00+00:00"
}
````

### Common Indicator Codes

| Code | Indicator |
|---|---|
| `WHOSIS_000001` | Life expectancy at birth (years) |
| `WHOSIS_000002` | Healthy life expectancy (HALE) at birth (years) |
| `WHOSIS_000007` | Healthy life expectancy (HALE) at age 60 (years) |
| `MDG_0000000017` | Under-five mortality rate (per 1000 live births) |
| `SA_0000001462` | Alcohol, recorded per capita consumption (15+) |
| `NCD_BMI_30A` | Prevalence of obesity (18+ years, age-standardized) |

Use `mode=searchIndicators` with a keyword to discover more codes.

### Example Use Cases

- **Global health research** — Download life expectancy or disease burden data for all countries
- **Country comparisons** — Compare health metrics across WHO regions
- **Time-series analysis** — Track health trends by year for specific countries
- **Public health dashboards** — Power data visualizations with authoritative WHO statistics

### Data Source

Data comes from the **WHO Global Health Observatory OData API** (`ghoapi.azureedge.net/api`) — a free, publicly accessible API with no authentication required, maintained by the World Health Organization.

### Frequently Asked Questions

**How current is the data?**
The GHO is updated continuously. Most indicators have data through 2022 or 2023.

**Are confidence intervals included?**
Yes — where available, the `lowEstimate` and `highEstimate` fields contain 95% confidence interval bounds.

**Can I get data for a specific sex?**
Yes — use the `sex` filter (Both sexes, Female, Male).

**What is the maximum dataset size?**
The API returns up to 5,000 records per run. For large indicators with many countries and years, use country or region filters to get specific subsets.

# Actor input Schema

## `mode` (type: `string`):

What to fetch from the WHO GHO.

## `indicatorCode` (type: `string`):

WHO GHO indicator code (e.g. WHOSIS\_000001 for life expectancy). Required for mode=getIndicatorData.

## `searchKeyword` (type: `string`):

Keyword to search in indicator names (e.g. 'life expectancy', 'diabetes', 'tobacco', 'mortality').

## `countryCode` (type: `string`):

Filter data for a specific country using its 3-letter code (e.g. USA, GBR, FRA, CHN, IND). Leave empty for all countries.

## `regionCode` (type: `string`):

Filter by WHO region code.

## `yearFrom` (type: `integer`):

Include data from this year onward.

## `yearTo` (type: `integer`):

Include data up to this year.

## `sex` (type: `string`):

Filter by sex dimension when available.

## `maxItems` (type: `integer`):

Maximum number of records to return.

## Actor input object example

```json
{
  "mode": "getIndicatorData",
  "indicatorCode": "WHOSIS_000001",
  "searchKeyword": "life expectancy",
  "regionCode": "",
  "sex": "",
  "maxItems": 200
}
```

# Actor output Schema

## `healthStatistics` (type: `string`):

Dataset containing all scraped WHO GHO health statistics records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "getIndicatorData",
    "indicatorCode": "WHOSIS_000001",
    "searchKeyword": "life expectancy",
    "maxItems": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/who-gho-health-data-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "getIndicatorData",
    "indicatorCode": "WHOSIS_000001",
    "searchKeyword": "life expectancy",
    "maxItems": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/who-gho-health-data-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "getIndicatorData",
  "indicatorCode": "WHOSIS_000001",
  "searchKeyword": "life expectancy",
  "maxItems": 200
}' |
apify call crawlerbros/who-gho-health-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/who-gho-health-data-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "WHO Global Health Observatory (GHO) Scraper",
        "description": "Scrape the WHO Global Health Observatory (GHO) - the world's most comprehensive public health statistics database. Access 2,000+ health indicators across 194 countries: life expectancy, disease burden, mortality rates, nutrition, tobacco use, mental health, and more. No authentication required.",
        "version": "1.0",
        "x-build-id": "2atYerE7VNGXS6dqv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~who-gho-health-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-who-gho-health-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~who-gho-health-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-who-gho-health-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~who-gho-health-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-who-gho-health-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "getIndicatorData",
                            "searchIndicators",
                            "listCountries"
                        ],
                        "type": "string",
                        "description": "What to fetch from the WHO GHO.",
                        "default": "getIndicatorData"
                    },
                    "indicatorCode": {
                        "title": "Indicator code",
                        "type": "string",
                        "description": "WHO GHO indicator code (e.g. WHOSIS_000001 for life expectancy). Required for mode=getIndicatorData.",
                        "default": "WHOSIS_000001"
                    },
                    "searchKeyword": {
                        "title": "Search keyword (mode=searchIndicators)",
                        "type": "string",
                        "description": "Keyword to search in indicator names (e.g. 'life expectancy', 'diabetes', 'tobacco', 'mortality')."
                    },
                    "countryCode": {
                        "title": "Country code filter (ISO-3166 alpha-3)",
                        "type": "string",
                        "description": "Filter data for a specific country using its 3-letter code (e.g. USA, GBR, FRA, CHN, IND). Leave empty for all countries."
                    },
                    "regionCode": {
                        "title": "WHO region code filter",
                        "enum": [
                            "",
                            "AFR",
                            "AMR",
                            "SEAR",
                            "EUR",
                            "EMR",
                            "WPR"
                        ],
                        "type": "string",
                        "description": "Filter by WHO region code.",
                        "default": ""
                    },
                    "yearFrom": {
                        "title": "Year from",
                        "minimum": 1950,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Include data from this year onward."
                    },
                    "yearTo": {
                        "title": "Year to",
                        "minimum": 1950,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Include data up to this year."
                    },
                    "sex": {
                        "title": "Sex dimension filter",
                        "enum": [
                            "",
                            "SEX_BTSX",
                            "SEX_FMLE",
                            "SEX_MLE"
                        ],
                        "type": "string",
                        "description": "Filter by sex dimension when available.",
                        "default": ""
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of records to return.",
                        "default": 200
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
