Next free-source hunt
We check for new free data every weekday.
Datasets / OSINT
api.unhcr.org/

UNHCR Refugee Statistics API

Freeauth: noneCC-BY-4.0#osint#risk#historical-data#time-series✓ verified Nov 2, 2026

UNHCR Refugee Statistics API

UNHCR's REST API exposes aggregate statistics on refugees, asylum-seekers, internally displaced people, stateless people, returns, asylum applications and decisions. Responses are JSON or downloadable CSV with year, origin, asylum location and population-category fields; no key is needed.

Required Attribution:

Provide appropriate attribution to UNHCR under CC BY 4.0 and indicate whether changes were made.

Coverage

The database covers forced displacement across countries and regions, with annual population data beginning in 1951 and separate end-year, mid-year, demographics, asylum and solutions endpoints. Results support year and country filters, default to 100 items per page, and use pagination; a numeric request-rate limit is not stated.

Verdict

A macro risk signal for displacement pressure, asylum flows, returns and affected origin or host countries. Annual aggregates are useful for longitudinal and regional comparisons but are not a live movement feed. UNHCR says figures can be revised, corrected, reclassified, delayed, updated or withdrawn without notice. The terms prohibit attempts to identify or profile individuals or protected groups from Portal data.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load UNHCR refugee statistics into pandas and Parquet. Checked against the provider's documentation on Nov 2, 2026.

Raw skill file (/skills/unhcr-refugee-statistics-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "unhcr-refugee-statistics-api"}.

Access

  • No account or key was required for the checked Refugee Statistics API endpoint.
  • Use limit and page for pagination; download=true requests CSV where supported.

Request

bash
curl 'https://api.unhcr.org/population/v1/population/?yearFrom=1951&yearTo=1952&limit=20'

Format

JSON pagination object with items containing year, origin and asylum codes and names, plus refugee, asylum-seeker, returnee, internally displaced, stateless and other population measures.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""UNHCR end-year population totals for 1951-1952 -> pandas -> Parquet."""
import requests
import pandas as pd

URL = "https://api.unhcr.org/population/v1/population/"
r = requests.get(URL, params={"yearFrom": 1951, "yearTo": 1952, "limit": 20}, timeout=60)
r.raise_for_status()
df = pd.DataFrame(r.json()["items"])
for col in ["refugees", "asylum_seekers", "returned_refugees", "idps",
            "returned_idps", "stateless", "ooc", "hst"]:
    df[col] = pd.to_numeric(df[col], errors="coerce")
df.to_parquet("unhcr_population_1951_1952.parquet", index=False)
print(len(df), "annual rows; years", int(df["year"].min()), "to", int(df["year"].max()),
      "; refugees total", int(df["refugees"].sum()))

Run by us on 2026-11-02 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 2 annual rows; years 1951 to 1952 ; refugees total 4068939

Limits

  • Rate limit: Not stated.
  • The documented default page limit is 100 items.
  • UNHCR reserves the ability to establish authentication, quotas, rate limits and access controls.

Quirks

  • Population measures can arrive as a mix of JSON numbers and numeric strings; coerce columns explicitly.
  • A dash in origin or asylum dimensions denotes an aggregate row rather than a country code.
  • Country filters use UNHCR three-character codes by default; cf_type=ISO switches filtering to ISO3 codes.

Terms and attribution

  • Portal datasets are CC BY 4.0 except where otherwise indicated; attribute UNHCR and indicate changes.
  • Do not present transformed or derived data as official UNHCR information or imply endorsement.
  • Do not attempt to identify, re-identify, profile or track individuals or protected groups from Portal data.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer