All datasets

Durable solutions: refugee/IDP returns, resettlement, naturalization

Annual durable solutions availed by refugees and IDPs, by country of origin and country of asylum: refugee returnees, resettlement arrivals, refugees naturalized, and IDP returnees.

Source: UNHCR — Refugee Population Statistics Database23,477 rowsUpdated: 9/22/2026License: CC-BY-4.0
refugeesresettlementmigrationunhcridp

Quality

100

Attribution

UNHCR Refugee Population Statistics Database

Schema

ColumnTypeDescription
datetimestampReference year of the observation, mapped to January 1 of that year. UNHCR's population data are end-of-year figures; applications, decisions and solutions are annual totals for the reference year.
coo_namestringCountry of origin name (provider's wording).
coostringCountry of origin UNHCR code.
coo_isostringCountry of origin ISO code.
coa_namestringCountry of asylum name (provider's wording).
coastringCountry of asylum UNHCR code.
coa_isostringCountry of asylum ISO code.
series_idstringStable machine identifier built from the provider's own codes: UNHCR country-of-origin code, country-of-asylum code, and the measure or procedure-dimension codes (e.g. "AFG.AUL.refugees", "AFG.AUL.G.A.AR.C" for an asylum-applications row).
series_labelstringHuman-readable series name using the provider's own country names, e.g. "Afghanistan → Australia — Refugees".
solution_typestringDurable solution (provider's field name): refugee_returnees, resettlement_arrivals, naturalized, idp_returnees.
solution_type_labelstringHuman label of the durable solution: Refugee returnees (the number of refugee returnees), Resettlement arrivals (the number of resettlement arrivals), Refugees naturalized (the number of refugees that have naturalised), IDP returnees (the number of IDP returnees).
unitstring"persons": all measures are counts of people. For asylum applications/decisions the provider notes the data usually reflects persons but governments sometimes report cases (see app_pc/dec_pc); a case can contain one or more persons.
valuefloatObserved count. The provider marks missing observations with "-"; these become null and are dropped from the canonical frame.

Sample rows

datecoo_namecoocoo_isocoa_namecoacoa_isoseries_idseries_labelsolution_typesolution_type_labelunitvalue
1997-01-01T00:00:00AfghanistanAFGAFGAfghanistanAFGAFGAFG.AFG.idp_returneesAfghanistan → Afghanistan — IDP returneesidp_returneesIDP returneespersons4000
1998-01-01T00:00:00AfghanistanAFGAFGAfghanistanAFGAFGAFG.AFG.idp_returneesAfghanistan → Afghanistan — IDP returneesidp_returneesIDP returneespersons10000
2002-01-01T00:00:00AfghanistanAFGAFGAfghanistanAFGAFGAFG.AFG.idp_returneesAfghanistan → Afghanistan — IDP returneesidp_returneesIDP returneespersons753344
2003-01-01T00:00:00AfghanistanAFGAFGAfghanistanAFGAFGAFG.AFG.idp_returneesAfghanistan → Afghanistan — IDP returneesidp_returneesIDP returneespersons82067
2004-01-01T00:00:00AfghanistanAFGAFGAfghanistanAFGAFGAFG.AFG.idp_returneesAfghanistan → Afghanistan — IDP returneesidp_returneesIDP returneespersons27391

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/unhcr_durable_solutions" | jq '{title, rows, columns_count, license}'

Python

import requests

ds = requests.get("https://datazimuts.com/v1/datasets/unhcr/unhcr_durable_solutions").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/unhcr_durable_solutions

Tip: fetch /llms.txt for the full machine-readable catalog.