Developers
PopulationCircle API
A beta API for estimating the population inside a GeoJSON Polygon or MultiPolygon.
Endpoint
Send a POST request to /api/population/estimate. The API uses the same WorldPop 2025 population dataset as the map.
POST https://populationcircle.com/api/population/estimate
Content-Type: application/json
{
"geometry": {
"type": "Polygon",
"coordinates": [
[
[10.75, 59.91],
[10.77, 59.91],
[10.77, 59.93],
[10.75, 59.93],
[10.75, 59.91]
]
]
},
"include_breakdown": true
}Response
The response is an estimate, not an official census count. Set include_breakdown to true to get country breakdown data for shapes crossing country borders. If country totals are unavailable, percentage fields are returned as null.
{
"population": 12483,
"area_km2": 3.42,
"year": 2025,
"resolution_used": "100m",
"source": "WorldPop Global2 2025",
"is_estimate": true,
"disclaimer": "Population is a modelled estimate based on WorldPop Global2 2025 data, not an exact count.",
"countries_touched": ["Norway"],
"breakdown": {
"countries": [
{
"name": "Norway",
"iso3": "NOR",
"iso2": "NO",
"population": 12000,
"country_population_total": 5520000,
"percent_of_country_population": 0.2174
}
]
}
}Quick test
curl -X POST https://populationcircle.com/api/population/estimate \
-H "Content-Type: application/json" \
-d "{\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[10.75,59.91],[10.77,59.91],[10.77,59.93],[10.75,59.93],[10.75,59.91]]]},\"include_breakdown\":true}"Limits
- No API key is required during the beta.
- Fair-use limit: 20 requests per minute and 1000 requests per day per IP.
- Maximum public API area: 17,000,000 km2.
- Country breakdown is capped at 50 touched countries.
- Very complex polygons may be rejected; simplify the geometry and retry.
Errors
422: invalid geometry, unsupported year, or too-complex breakdown request.413: polygon area or request body is too large.429: rate limit or daily fair-use limit reached.503: population data or processing capacity is temporarily unavailable.