Worldometers APIworldometers.info ↗
Access world population stats, country rankings, historical data back to 1950, and projections through 2100 via 4 structured JSON endpoints.
What is the Worldometers API?
The Worldometers Population API covers 4 endpoints returning global and country-level demographic data, including current population estimates, regional breakdowns, and projections through 2100. The get_country_populations endpoint returns ranked data for every tracked country with fields like yearly_change_pct, density_p_km2, and world_sh. Use it to build demographic dashboards, compare growth rates, or model future population scenarios.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/34746357-10da-4c05-a812-952edcb8bac5/get_world_population_stats' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace worldometers-info-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.worldometers_population_api import Worldometers, WorldStats, Country, YearPopulation, RegionPopulation
client = Worldometers()
# Fetch current world population snapshot
stats = client.worldstatses.get()
print(stats.current_population_estimate.value, stats.current_population_estimate.as_of)
for region in stats.population_by_region:
print(region.region, region.population, region.world_share)
for highlight in stats.recent_historical_highlights:
print(highlight.year, highlight.population)
# List all countries by population rank
for country in client.countries.list():
print(country.country, country.population, country.yearly_change_pct, country.density_p_km2)
# Historical world population data
for year_pop in client.yearpopulations.list_historical():
print(year_pop.year, year_pop.population, year_pop.yearly_change_pct, year_pop.yearly_change)
# Future projections through 2100
for projection in client.yearpopulations.list_projections():
print(projection.year, projection.population, projection.yearly_change_pct, projection.yearly_change)
Get general world population statistics, including the current population estimate, recent historical highlights by year, and population breakdown by region with world share percentages. Returns a single snapshot object containing all three data sets in one call.
No input parameters required.
{
"type": "object",
"fields": {
"population_by_region": "array of objects with region, population, and world_share",
"current_population_estimate": "object with value (integer) and as_of (string)",
"recent_historical_highlights": "array of objects with year and population"
},
"sample": {
"data": {
"population_by_region": [
{
"region": "Asia",
"population": 4863327397,
"world_share": "58.59%"
},
{
"region": "Africa",
"population": 1584985259,
"world_share": "19.09%"
}
],
"current_population_estimate": {
"as_of": "recent_estimate",
"value": 8285845225
},
"recent_historical_highlights": [
{
"year": "2026",
"population": 8300678395
},
{
"year": "2025",
"population": 8231613070
}
]
},
"status": "success"
}
}About the Worldometers API
What the API Returns
Four endpoints expose the full demographic dataset available on Worldometers. get_world_population_stats returns a current_population_estimate object (with value and as_of), a population_by_region array showing each region's headcount and world_share, and recent_historical_highlights for quick year-over-year reference. No input parameters are needed — the endpoint returns the complete snapshot on every call.
Country Rankings and Growth Metrics
get_country_populations returns a countries array where each object includes rank, population, net_change, yearly_change_pct, density_p_km2, land_area_km2, and world_sh. The total_countries integer tells you exactly how many entries are in the response. This endpoint is the right starting point for sorting countries by growth rate, density, or absolute size.
Historical and Projection Data
get_historical_data delivers a history array with annual records — each entry has year, population, yearly_change_pct, and yearly_change. The dataset covers decades of recorded estimates, suitable for charting long-run population trends. get_population_projections mirrors that structure with a projections array extending through 2100, useful for scenario analysis or annotating charts with future milestones.
Coverage Notes
All four endpoints take no input parameters and return full datasets on each call. There is no filtering by year range, region, or country at the API level — filtering must be done client-side on the returned arrays. The data reflects Worldometers' published figures, which themselves draw on UN and other statistical agency estimates.
The Worldometers API is a managed, monitored endpoint for worldometers.info — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when worldometers.info changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official worldometers.info API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a country population ranking table sorted by
yearly_change_pctto identify the fastest-growing nations. - Animate a historical timeline using
get_historical_datato visualize global population growth since the mid-20th century. - Overlay
get_population_projectionsdata on a chart to show the trajectory to 8, 9, and 10 billion people. - Display a regional breakdown widget using
population_by_regionandworld_sharefields fromget_world_population_stats. - Calculate population density rankings by dividing
populationbyland_area_km2across thecountriesarray. - Monitor net migration and natural growth signals by tracking
net_changevalues per country over time. - Feed
current_population_estimateinto a live counter display that refreshes on a schedule.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Worldometers have an official developer API?+
What does `get_country_populations` return, and does it let me filter by region or continent?+
countries array with fields including rank, population, yearly_change_pct, net_change, density_p_km2, land_area_km2, and world_sh, plus a total_countries count. There is no server-side filter parameter for region or continent — you apply those filters client-side after receiving the full array.How far back does the historical data go, and how far forward do projections extend?+
get_historical_data returns annual records going back several decades based on Worldometers' published estimates. get_population_projections covers future years through 2100. Both arrays include year, population, yearly_change_pct, and yearly_change per entry.Can I get population data broken down by age group or sex?+
Is there a way to retrieve data for a single country without getting the full list?+
get_country_populations returns all tracked countries in one response, and client-side filtering by the country field is the intended pattern. You can fork this API on Parse and revise it to add a country-scoped endpoint if your use case requires server-side filtering.