human-population-dataset-api

Human population and population-density datasets and APIs

Research date: 2026-10-20. Scope: publicly accessible sources for estimating population and population density within countries, administrative regions, or custom areas anywhere in the world. Coverage and reference years vary by product. Recommendations below are practical judgments based on the documented capabilities.

For a custom polygon, start with WorldPop Global2 and its v2 API. For a longer historical residential-population series, consider GHS-POP. For country-level totals and density, World Bank WDI is the simplest API. Use LandScan when the intended quantity is average population presence across the day. Sources and qualifications follow.

Dataset comparison

“Derive density” means dividing population by the appropriate area in km². Spatial resolutions in metres are nominal unless an equal-area projection is specified.

Dataset / provider Coverage and spatial resolution Reference years Population and density Access and main use
WorldPop Global2, R2025A — University of Southampton Global; approximately 100 m country rasters and 1 km country/global rasters Annual 2015–2030; modeled estimates and projections Residential population counts; derive raster density; API returns area totals and density GeoTIFF downloads and custom-polygon REST API; a strong starting point for recent regional estimates
GHS-POP R2023A — European Commission JRC / GHSL Global; 100 m / 1 km Mollweide, or 3 / 30 arc-second WGS84 grids 1975–2030, every five years; 2025 and 2030 are projections Residential population counts per cell; derive density Downloadable GeoTIFF tiles/mosaics; useful for historical urban and regional comparisons
GPWv4, Revision 11 — CIESIN / NASA SEDAC Global; 30 arc-second, approximately 1 km at the equator; coarser aggregates also available 2000, 2005, 2010, 2015, 2020 Separate population-count and population-density products; density uses land area Raster downloads and GIS services; relatively simple census-based baseline. NASA metadata
LandScan Global — Oak Ridge National Laboratory Global; 30 arc-second, approximately 1 km at the equator Annual archive from 2000; releases through 2024 verified Ambient population, representing average presence over 24 hours; counts per cell; derive density LandScan portal; exposure and emergency-planning applications
LandScan Mosaic Time Series — ORNL Global; 3 arc-second, approximately 90 m at the equator Annual 1975–2024 in the release described by the August 2026 preprint Ambient population counts per cell; derive density 50 Cloud Optimized GeoTIFFs on a common grid; historical reconstruction anchored to the 2024 surface. Dataset DOI
High Resolution Population Density Maps / HRSL — Meta + CIESIN Broad international coverage; check the target country; 1 arc-second, approximately 30 m at the equator Country/product-specific snapshots; not a uniform annual series Despite the name, files contain people per cell; selected age/sex groups also available CSV and GeoTIFF / COG via HDX or public AWS storage; detailed settlement-scale mapping
Kontur Population — Kontur Global vector grid; H3 resolution 8, marketed as approximately 400 m Public HDX resource verified: 2023-11-01, with older snapshots Population count per hexagon; divide by each hexagon’s area for density Compressed GeoPackage, including country subsets; convenient for vector overlays and H3 workflows
World Development Indicators — World Bank Countries/economies and predefined aggregates; no spatial grid Annual; population generally from 1960, density from 1961; endpoint and country coverage vary SP.POP.TOTL: people; EN.POP.DNST: people/km² of land Public JSON/XML API and CSV downloads; country comparisons and national benchmarks
World Population Prospects 2024 — UN DESA Population Division 237 countries or areas and predefined regional aggregates; no custom spatial grid Annual 1950–2100; estimates through 2023, projections 2024–2100 Population totals, age/sex distributions, and demographic indicators; density availability depends on the selected indicator CSV/Excel downloads and token-protected API; long-run national/regional demographic analysis

Access, licensing, and important differences

Source Public access and license Practical qualification
WorldPop CC BY 4.0; attribution required. Basic API access needs no key. License, API documentation Documented anonymous limits: 1,000 requests/day, maximum polygon 50,000 km²; an approved API key raises these to 10,000/day and 500,000 km². Limits can change.
GHS-POP Anonymous downloads; European Commission reuse notice, with source acknowledgement. Access conditions Supports arbitrary regions through local raster aggregation. Choose the projection and resolution explicitly.
GPWv4 CC BY 4.0; NASA download routes may require a free Earthdata login. License and distribution metadata Uses proportional allocation within census units. A 1 km output grid does not imply 1 km census observations. Census-consistent and UN-adjusted products are separate variants.
LandScan products CC BY 4.0 under the portal licensing terms; the download form requests contact/use details Global and Mosaic are distinct products. The historical Mosaic series is reconstructed; its methodology was described in a preprint at the research date.
Meta / CIESIN HRSL CC BY 4.0. Public S3 access requires no AWS account. AWS registry Verify the target country and underlying population year. A storage update or imagery date is not necessarily the population reference year.
Kontur HDX currently lists Creative Commons Attribution (CC BY). Machine-readable license/resource metadata The free HDX snapshot is distinct from Kontur’s commercial API/Atlas services. The HDX metadata modification date in 2026 does not make the 2023 resource a 2026 population estimate.
World Bank WDI No API key; the two linked indicators list CC BY 4.0. Total population, density Countries and predefined aggregates only. Population and density may have different latest available years; handle missing values.
UN WPP / Data Portal Public bulk downloads; API data endpoints require a bearer token. API documentation states CC BY 3.0 IGO. API, token request Check units in each table/API indicator: population may be expressed in persons or thousands. Choose the projection variant explicitly.

WorldPop versions and model interpretation

Global2 allocates administrative population totals using buildings, settlement information, and other spatial variables. Its counts are constrained to mapped built settlement and national totals align with UN WPP 2024. Settlement detection and source census quality therefore affect small-area estimates. The 2015–2030 span includes projections; it is not a sequence of annual censuses. Global2 methodology

For earlier years, WorldPop’s Global1 products cover 2000–2020. The older v1/services/stats documentation refers to that collection. Keep Global1 and Global2 separate in a time-series analysis: different inputs, population controls, and allocation methods can create discontinuities. Legacy API, Global2 release statement

Residential versus ambient population

Residential products estimate where people live. LandScan Global estimates an average distribution of people across a day, including activity outside homes. It is neither a live occupancy feed nor a specific-hour daytime count. Its input data and methods change between releases, so the producer advises against interpreting cell-by-cell annual differences as pure population change. LandScan methodology and usage notes

The newer Mosaic family also has daytime, nighttime, and ambient products with confidence information; inspect the selected layer’s metadata. The Mosaic Time Series row above specifically describes the annual ambient reconstruction, not a historical hourly series. ORNL product portal, Mosaic framework, time-series description

API examples

Population inside a custom polygon: WorldPop v2

Submit a WGS84 Polygon or MultiPolygon geometry, with coordinates in longitude, latitude order. Convert a bounding box to a rectangle polygon; for a radius query, first construct a geodesic buffer polygon. Use POST /v2/population, then poll GET /v2/tasks/{task_id}. The companion /v2/agesex endpoint supports demographic breakdowns. API guide, request/response schemas

Python example, requiring requests. This rectangle lies in central Seoul; it is not Seoul’s administrative boundary.

import time
import requests

base = "https://api.worldpop.org/v2"
payload = {
    "geojson": {
        "type": "Polygon",
        "coordinates": [[
            [126.97, 37.55], [126.98, 37.55],
            [126.98, 37.56], [126.97, 37.56],
            [126.97, 37.55],
        ]],
    },
    "year": 2020,
    "resolution": "100m",
}
submission = requests.post(f"{base}/population", json=payload, timeout=30)
submission.raise_for_status()
task_id = submission.json()["task_id"]

for _ in range(60):
    response = requests.get(f"{base}/tasks/{task_id}", timeout=30)
    response.raise_for_status()
    task = response.json()
    status = task["status"].lower()
    if status == "success":
        print(task["result"])
        break
    if status in {"failure", "revoked"}:
        raise RuntimeError(task.get("error") or status)
    time.sleep(2)
else:
    raise TimeoutError(f"Task still pending: {task_id}")

Live verification on 2026-10-20: the same payload completed successfully and returned:

{
  "total_population": 9012.88,
  "area_km2": 0.9807,
  "data_year": 2020,
  "data_source": "worldpop_R2025A_2020_100m",
  "population_density": 9190.28
}

These are modeled values for the example rectangle. The API’s returned density uses its reported polygon area; establish your own land-only denominator when that is the required definition. Rounded response fields need not reproduce the density exactly. The submission returned a legacy-looking check_url under /api/v1/tasks/; the /v2/tasks/{task_id} polling route above was verified directly. API schema

Country population and density: World Bank

# South Korea: annual total population, 2020–2024.
curl --fail --silent --show-error \
  'https://api.worldbank.org/v2/country/KOR/indicator/SP.POP.TOTL?format=json&date=2020:2024&per_page=100'

# South Korea: annual population density, people per km² of land.
curl --fail --silent --show-error \
  'https://api.worldbank.org/v2/country/KOR/indicator/EN.POP.DNST?format=json&date=2020:2024&per_page=100'

Replace KOR with the desired country code. JSON responses contain metadata followed by observations. For large requests, follow pagination and preserve null values; mrnev=1 requests the most recent non-empty observation. Country lists can include regional aggregates, so filter those when building a country-only table. API query documentation

Live verification on 2026-10-20: the 2024 observations for South Korea returned 51,751,065 people and 530.2363 people/km² of land. Response metadata reported an update date of 2026-10-08. These national values are benchmarks, not estimates for a custom subnational polygon. Population query, density query

Finding downloadable assets programmatically

Calculating population and density for a chosen area

For products supplied as raster or vector files, use this workflow:

  1. Define the area. Obtain an administrative boundary or create a polygon for the desired rectangle, radius, service area, or footprint. Record its source, boundary date, and coordinate reference system. A place name or point alone does not define an area.
  2. Select one product and reference year. Decide whether the question concerns residents, daytime population, or ambient presence. Record the dataset release and whether the year is estimated, reconstructed, or projected.
  3. Aggregate counts. For a population-count raster, sum the intersecting cell contributions. For partial cells, use fractional overlap weighting when appropriate; it assumes uniform population within the intersected portion of each cell. Whole-cell or centre-in-polygon inclusion is a coarser approximation.
  4. Calculate density. Divide the estimated population by the chosen area in km². State whether the denominator is total polygon area, land area, or inhabited/built-up area; these answer different questions.
  5. Record quality and reproduce the result. Preserve the polygon, source asset identifiers, year, units, missing-data treatment, and aggregation method. Compare with official local statistics where available.

For count cells with estimated population pi, cell footprint Ci, and region R, a fractional-overlap approximation is:

P^(R)=∑ipiA(R∩Ci)A(Ci),D^(R)=P^(R)A(R)[km2].

Use a consistent allocation footprint: for a land-normalized product, land-only overlap may be needed. For an existing density raster, recover population by integrating density over the corresponding area; do not sum density values. Regional average density is total population divided by total relevant area, rather than an unweighted average of cell densities.

Practical pitfalls:

For a practical implementation, use the WorldPop API for occasional polygon queries; use locally stored GeoTIFF/COG data with GIS zonal statistics for repeated or large batches; use Kontur when a vector/H3 representation fits the rest of the analysis.