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
- WorldPop: browse the R2025A repository or data portal and pin the country, year, resolution, and release. For bulk work, downloaded rasters avoid polygon API quotas.
- GHSL: use the dataset record and download directory. Download the intersecting tiles and compute regional statistics locally.
- Meta / CIESIN: public prefixes are
s3://dataforgood-fb-data/hrsl-cogs/ands3://dataforgood-fb-data/csv/. AWS CLI supports anonymous listing with--no-sign-request. Access instructions - Kontur / HDX:
GET https://data.humdata.org/api/3/action/package_show?id=kontur-population-datasetreturns catalog metadata, licensing, and downloadable resource URLs. It is a catalog API, not a polygon-population calculation service. Verified resource metadata - UN: use WPP bulk downloads for reproducible tables; use the Data Portal API when authenticated indicator/location queries are preferable.
Calculating population and density for a chosen area
For products supplied as raster or vector files, use this workflow:
- 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.
- 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.
- 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.
- 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.
- 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
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:
- Angular cells vary in area with latitude. A 30 arc-second grid is not uniformly 1 km², nor is a 1 arc-second cell uniformly 900 m². Use geodesic areas or an appropriate equal-area projection. Meta explicitly documents this variation. HRSL cell geometry and units
- Small pixels do not guarantee small-area accuracy. Census age, administrative-unit size, settlement omissions, and allocation assumptions remain important. Tiny polygons can be especially sensitive to boundary-cell treatment.
- Missing data is not zero population. Treat NoData, water masks, and unpopulated cells according to the product documentation.
- Preserve population totals during reprojection or aggregation. Ordinary image resampling can change totals in people-per-cell rasters. Use a method appropriate to count data.
- Keep time series comparable. Pin the product family and release, hold boundaries consistent, and label projections and reconstructions. Cross-product differences may reflect modeling choices as well as demographics.
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.