Age and sex breakdown of forcibly displaced persons, world total
The provider's own global aggregates of the demographics series: worldwide annual counts of forcibly displaced persons by sex and age band (0–4, 5–11, 12–17, 18–59, 60+, residual 'other', plus totals), 2001 to present. The world trend companion to the origin-x-asylum matrix.
refugeesdisplacementmigrationdemographicsagesexunhcrglobal
Quality
100
Attribution
UNHCR Refugee Population Statistics Database
Schema
| Column | Type | Description |
|---|---|---|
| date | timestamp | Reference year of the observation, mapped to January 1 of that year. UNHCR's population statistics are end-of-year figures. |
| coo_name | string | Country of origin name (provider's wording). |
| coo | string | Country of origin UNHCR code ("-" in the global-aggregate dataset). |
| coo_iso | string | Country of origin ISO code. |
| coa_name | string | Country of asylum name (provider's wording). |
| coa | string | Country of asylum UNHCR code ("-" in the global-aggregate dataset). |
| coa_iso | string | Country of asylum ISO code. |
| sex | string | Sex of the displaced persons: female, male, or all. Decoded from the provider's own field prefixes: "f_" = female, "m_" = male; "all" is the grand total across sexes (the provider's "total" field). |
| age_group | string | Age band decoded from the provider's field names: 0_4 (ages 0–4), 5_11 (ages 5–11), 12_17 (ages 12–17), 18_59 (ages 18–59), 60 (age 60 and over), total (all ages), and "other", the provider's own residual age category, which the source does not define further. |
| series_id | string | Stable machine identifier built from the provider's own codes plus the bin: UNHCR country-of-origin code, country-of-asylum code, sex and age band, e.g. "AFG.AUL.female.0_4". For the global dataset the provider's origin/asylum codes are "-". |
| series_label | string | Human-readable series name using the provider's own country names, e.g. "Afghanistan → Australia — Female, age 0–4". |
| unit | string | "persons": all measures are counts of people. |
| value | integer | Observed count for the sex x age band. The provider marks missing observations with "-"; these become null and are dropped from the canonical frame. Zeroes are the provider's values as published. |
Sample rows
| date | coo_name | coo | coo_iso | coa_name | coa | coa_iso | sex | age_group | series_id | series_label | unit | value |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001-01-01T00:00:00 | - | - | - | - | - | - | all | total | -.-.all.total | - → - — All sexes, all ages | persons | 19899042 |
| 2002-01-01T00:00:00 | - | - | - | - | - | - | all | total | -.-.all.total | - → - — All sexes, all ages | persons | 20891654 |
| 2003-01-01T00:00:00 | - | - | - | - | - | - | all | total | -.-.all.total | - → - — All sexes, all ages | persons | 17007546 |
| 2004-01-01T00:00:00 | - | - | - | - | - | - | all | total | -.-.all.total | - → - — All sexes, all ages | persons | 19517152 |
| 2005-01-01T00:00:00 | - | - | - | - | - | - | all | total | -.-.all.total | - → - — All sexes, all ages | persons | 21048120 |
Download sample data
Download the full sample snapshot for this dataset (sample rows, not the complete dataset).
Use with an LLM
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
cURL
curl "https://datazimuts.com/v1/datasets/unhcr_demographics/unhcr_displaced_age_sex_global" | jq '{title, rows, columns_count, license}'Python
import requests
ds = requests.get("https://datazimuts.com/v1/datasets/unhcr_demographics/unhcr_displaced_age_sex_global").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/unhcr_demographics/unhcr_displaced_age_sex_global
Tip: fetch /llms.txt for the full machine-readable catalog.