World Health Organization API: Get country health statistics
Gets the latest WHO value of a health statistic for a country, with sex-specific values, the regional value for the same year, and up to 10 years of history.
Unofficial. Not affiliated with or endorsed by World Health Organization.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Country, required
country Country name, for example Brazil.
Brazil
- Indicator, required
indicator Health statistic in plain words, for example infant mortality.
infant mortality
Input as JSON
{ "country": "Brazil", "indicator": "infant mortality"}Output
{ "unit": "deaths per 1,000 live births", "region": "Americas", "country": "Brazil", "indicator": "Infant mortality rate (probability of dying between birth and age 1 per 1000 live births)", "male_value": 13.608203825, "latest_year": 2024, "source_link": "https://ghoapi.azureedge.net/api/MDG_0000000001?%24filter=SpatialDim+eq+%27BRA%27&%24orderby=TimeDim+desc" , "female_value": 10.841855023, "region_value": 10.911642148, "both_sexes_value": 12.260427311, "historical_values": [ { "year": 2024, "value": 12.260427311 }, { "year": 2023, "value": 12.430646999 }, { "year": 2022, "value": 12.568670991 } ], "who_indicator_code": "MDG_0000000001"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"who.int/get_country_health_statistics","input":{"country":"Brazil","indicator":"infant mortality"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "who.int/get_country_health_statistics" , "input": { "country": "Brazil", "indicator": "infant mortality" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "who.int/get_country_health_statistics" , "input": { "country": "Brazil", "indicator": "infant mortality" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run who.int/get_country_health_statistics# with {"country":"Brazil","indicator":"infant mortality"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "country", "indicator" ], "properties": { "country": { "type": "string", "description": "Country name, for example Brazil." }, "indicator": { "type": "string", "description": "Health statistic in plain words, for example infant mortality." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "country", "indicator", "unit", "latest_year", "both_sexes_value", "male_value", "female_value", "region", "region_value", "historical_values", "source_link", "who_indicator_code" ], "properties": { "unit": { "type": [ "string", "null" ], "description": "Measurement unit in words, when specified by WHO." }, "region": { "type": [ "string", "null" ], "description": "WHO region name." }, "country": { "type": "string", "description": "WHO country name." }, "indicator": { "type": "string", "description": "Official WHO indicator name." }, "male_value": { "type": [ "number", "null" ] }, "latest_year": { "type": "integer" }, "source_link": { "type": "string", "description": "Link to the WHO source data for this country and indicator." }, "female_value": { "type": [ "number", "null" ] }, "region_value": { "type": [ "number", "null" ], "description": "Regional value for the latest country year." }, "both_sexes_value": { "type": [ "number", "null" ] }, "historical_values": { "type": "array", "items": { "type": "object", "required": [ "year", "value" ], "properties": { "year": { "type": "integer" }, "value": { "type": [ "number", "null" ] } }, "additionalProperties": false } }, "who_indicator_code": { "type": "string", "x-fous-developer": true } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
who.int/get_country_health_statistics- Returns
- country, indicator, unit, latest year, both sexes/male/female values, region and regional value, history, source link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method who.int/get_country_health_statistics with the inputs above.
Ask your agent
- What is the latest infant mortality rate in Brazil, broken down by male and female, and how does it compare to the rest of the Americas region?
- Show me the life expectancy trend for Kenya over the past decade from WHO data.
- I need the most recent adult tobacco use prevalence for India, split by sex, plus the regional average for the same year.
- Pull up WHO figures on maternal mortality ratio for Nigeria with a ten-year history and a link to the source.
- How has the under-five mortality rate changed in Pakistan recently, and what is the Eastern Mediterranean regional value for that year?
Finds a WHO fact sheet by health topic in the WHO fact-sheet directory. Returns its key facts, overview and sections in page order.
who.int/get_fact_sheetLists the latest WHO Disease Outbreak News reports, newest first, optionally filtered by disease (title) and country (report tags).
who.int/list_outbreak_newsLooks up a World Bank statistic for a country and returns its annual values and latest value for the selected years.
data.worldbank.org/get_country_statisticRanks countries by a World Development Indicators statistic for a given year, or for the latest year with broad country coverage. Regional aggregates and countries without data for that year are left out.
worldbank.org/compare_countriesFinds the Our World in Data chart that best matches a statistic and returns its country-by-year numeric values, definition and source.
ourworldindata.org/get_statisticCompares the latest reported value of an economic indicator across countries in a region, highest first. World includes all listed countries; Australia uses the Oceania region.
tradingeconomics.com/list_countries_by_indicatorLooks up an official Eurostat statistic for an EU or EEA country and the EU27 figure for the same period. Quarterly and half-yearly series return the reporting period that contains a requested month.
ec.europa.eu/get_statisticRanks countries by a World Economic Outlook indicator for a chosen year, excluding regional and group totals and countries without a value.
imf.org/list_country_rankings