Refugee Data Finder - Population Stocks by Origin and Asylum Country

One row per year, country of origin, and asylum or residence country, with UNHCR counts for refugees, asylum seekers, internally displaced persons, stateless persons, returned populations, host community, and other people of concern. Coverage runs from 1951 through 2025 and spans many origin and asylum countries. Most measures are end-of-year stocks, while returned refugees and returned internally displaced persons are within-year flows.

unhcr-population·18 columns·939 KB·CC BY 4.0, per UNHCR Terms of Use for Datasets (with third-party carve-out)·updated 24d ago

Schema

yearBIGINT
origin_idBIGINT
origin_codeVARCHAR
origin_iso3VARCHAR
origin_nameVARCHAR
asylum_country_idBIGINT
asylum_country_codeVARCHAR
asylum_country_iso3VARCHAR
asylum_country_nameVARCHAR
refugeesBIGINT
asylum_seekersBIGINT
returned_refugeesBIGINT
internally_displaced_personsBIGINT
returned_internally_displaced_personsBIGINT
stateless_personsBIGINT
other_people_of_concernBIGINT
other_people_in_needBIGINT
host_communityBIGINT

Get this dataset on your machine

subsets sync --bundle medium clones the mid-size tiers as queryable local tables — use --bundle large for the widest tier

pip install subsetsio
subsets sync --bundle small # or medium, or large
subsets serve # search + SQL at http://localhost:8080

Free and open — the data syncs straight from the public bucket, and search + SQL run entirely on your machine. See docs →

Query it locally

Full docs →
Bash
subsets serve   # local API on http://localhost:8080
curl -s -X POST "http://localhost:8080/query" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM \"unhcr-population\" LIMIT 5"}'

No account, no API key — the data syncs straight from bundles.subsets.io and every query runs on your machine. See the local API reference.