World Bank Indicators Scraper avatar

World Bank Indicators Scraper

Pricing

from $1.60 / 1,000 results

Go to Apify Store
World Bank Indicators Scraper

World Bank Indicators Scraper

[๐Ÿ’ฐ $1.6 / 1K] Extract World Bank Open Data statistics โ€” GDP, population, inflation, health, education, climate and 29,000+ more indicators โ€” for 200+ countries from 1960 to today. Search indicators by name or code, pick countries, regions or income groups, set any year range.

Pricing

from $1.60 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull development statistics from World Bank Open Data at scale โ€” GDP, population, inflation, life expectancy, school enrolment, CO2 emissions, trade, poverty, energy and 29,000 more indicators, for all 295 countries and regional groupings the World Bank tracks, with history back to 1960 and projections out to 2050. Every figure arrives with its official definition, unit, source database and country classification attached. Built for economists, data journalists, NGO analysts, and dashboard teams who need a clean, ready-to-chart panel dataset without hand-assembling one indicator page at a time.

Why This Scraper?

  • All 29,544 World Bank indicators, searchable by name โ€” plus a one-click picklist of 11 headline statistics โ€” type "life expectancy", "CO2 emissions" or "unemployment female" and every match is pulled in, or simply choose GDP, GDP per capita, population, inflation, life expectancy, unemployment, CO2 emissions, under-5 mortality, internet users, education spending or poverty headcount from the dropdown. You never need to know an indicator code.
  • 21 subject areas to browse โ€” Economy & Growth, Health, Education, Climate Change, Poverty, Gender, Energy & Mining, Trade, External Debt and 12 more, so you can explore a whole field instead of guessing codes.
  • Many indicators in one run โ€” put GDP, population and inflation side by side in a single dataset. No separate runs, no manual join in a spreadsheet afterwards.
  • Whole regions and income groups in one click โ€” 7 World Bank regions (East Asia & Pacific, Sub-Saharan Africa, and 5 more) and 6 income groups (High income through Low income) expand automatically into their member countries.
  • Aggregates kept separate from countries โ€” "World", "Euro area" and "High income" are 78 of the 295 entities the World Bank publishes. Every row carries an isAggregate flag and aggregates are excluded by default, so your cross-country averages are not silently corrupted.
  • Official definitions and units on every row โ€” the World Bank's own methodology note, unit of measurement, source database and originating organisation (UN Population Division, IEA, WHO and others) ship alongside each figure.
  • Country context built in โ€” region, income group, capital city, and latitude/longitude of the capital, ready for grouping and mapping without a second lookup table.
  • Two output layouts โ€” a flat row per country/indicator/year for pivoting and charting, or one compact row per time series with a year-to-value map, firstYear, lastYear, latestValue and observationCount. The compact layout returns the same history in roughly 1/60th of the rows.
  • History back to 1960, projections to 2050, and no 10,000-row ceiling โ€” up to 500,000 rows in a single run (34,980 rows verified in one pull).

Use Cases

Economic Research & Forecasting

  • Build multi-country GDP, inflation and trade panels for regression models
  • Compare growth trajectories across income groups over 60 years
  • Track debt, reserves and current account balances for sovereign risk work
  • Assemble baseline series for macroeconomic forecasting

Development & NGO Analysis

  • Monitor poverty headcount, child mortality and school enrolment by region
  • Benchmark a programme country against its income group peers
  • Track progress on health, water and sanitation indicators year by year
  • Build grant and impact reports with citable official definitions attached

Climate & Energy Reporting

  • Pull CO2 emissions, renewable energy share and energy use per capita
  • Compare emissions intensity across the 7 World Bank regions
  • Chart the energy transition for a country group over three decades
  • Combine climate indicators with GDP for intensity ratios

Data Journalism & Visualisation

  • Produce ready-to-chart country league tables with latestValueOnly
  • Map any indicator using the built-in capital-city coordinates
  • Fact-check claims against the official source and revision date
  • Feed choropleth maps and interactive explainers with fresh figures

Dashboards & Data Pipelines

  • Refresh a business intelligence dashboard with current country statistics
  • Enrich an internal country database with region and income classifications
  • Power market-sizing tools with population and income data
  • Schedule recurring pulls so your warehouse always holds the latest vintage

Getting Started

Just Two Indicators for Five Countries

{
"indicatorCodes": ["NY.GDP.MKTP.CD", "SP.POP.TOTL"],
"countries": ["US", "CN", "DE", "JP", "GB"],
"yearFrom": 2000
}

Find Indicators by Name

Don't know the code? Describe the indicator instead:

{
"indicatorSearch": "life expectancy",
"maxIndicators": 3,
"countries": ["BR", "IN", "NG", "ZA"],
"yearFrom": 1990,
"yearTo": 2024
}

A Whole Region, Latest Value Only

Perfect for a country league table or a map:

{
"indicatorCodes": ["SP.DYN.LE00.IN"],
"region": "SSF",
"latestValueOnly": true,
"maxResults": 100
}

Browse a Subject Area

{
"topic": "19",
"indicatorSearch": "CO2 emissions",
"maxIndicators": 4,
"incomeLevel": "HIC",
"yearFrom": 2010,
"maxResults": 2000
}

Full-History Time Series, Compact Layout

{
"indicatorCodes": ["NY.GDP.MKTP.CD", "SP.POP.TOTL", "FP.CPI.TOTL.ZG"],
"countries": ["all"],
"includeAggregates": false,
"outputFormat": "series",
"skipEmptyValues": true,
"includeIndicatorDetails": true,
"includeCountryDetails": true,
"maxResults": 5000
}

Input Reference

Which Indicators?

Pick the statistics you want. Enter exact codes, search by name, or browse a subject area โ€” you can combine all three.

ParameterTypeDefaultDescription
indicatorCodesstring[]["NY.GDP.MKTP.CD", "SP.POP.TOTL"]The exact World Bank indicator codes you want, for example NY.GDP.MKTP.CD (GDP in current US$) or SP.POP.TOTL (total population). Leave empty and use the search box instead if you don't know the codes.
commonIndicatorselectNo pick โ€” use the codes and search aboveOne-click picklist of headline statistics, added to whatever is in indicatorCodes: No pick โ€” use the codes and search above, GDP (current US$), GDP per capita (current US$), Population, total, Inflation, consumer prices (annual %), Life expectancy at birth (years), Unemployment rate (% of labour force), CO2 emissions, total (Mt CO2e), Under-5 mortality rate (per 1,000 live births), Individuals using the Internet (% of population), Government spending on education (% of GDP), or Poverty headcount ratio (% of population).
indicatorSearchstring""Words that appear in the indicator name, such as "life expectancy", "CO2 emissions" or "unemployment female". Every matching indicator is added, up to the limit below.
topicselectAll subject areasRestrict to one World Bank subject area: All subject areas, Economy & Growth, Health, Education, Environment, Climate Change, Social Protection & Labor, Trade, Poverty, Gender, Energy & Mining, Financial Sector, Agriculture & Rural Development, Infrastructure, Private Sector, Public Sector, Science & Technology, Social Development, Urban Development, External Debt, Aid Effectiveness, or Millennium Development Goals.
maxIndicatorsinteger5Safety limit (1โ€“100) on how many indicators the search box and subject area may add. Codes you typed yourself are always kept and do not count against this limit.

Which Countries?

List countries individually, or select a whole region or income group and let the scraper fill in the members.

ParameterTypeDefaultDescription
countriesstring[]["US", "CN", "DE", "JP", "GB"]Country codes, 2-letter or 3-letter (US or USA, DE or DEU). A pasted list such as US, CN, DE is accepted too. Enter all on its own to cover every country the World Bank tracks.
regionselectNo region filterAdd every country in one World Bank region. Options are "No region filter", "East Asia & Pacific", "Europe & Central Asia", "Latin America & Caribbean", "Middle East, North Africa, Afghanistan & Pakistan", "North America", "South Asia" and "Sub-Saharan Africa".
incomeLevelselectNo income filterAdd every country in one income group: No income filter, High income, Upper middle income, Middle income, Lower middle income, Low & middle income, or Low income.
includeAggregatesbooleanfalseAlso return World Bank aggregate rows such as "World", "Euro area", "Sub-Saharan Africa" and "High income". Off by default so you get individual countries only.

Which Years?

ParameterTypeDefaultDescription
yearFrominteger2000Earliest year to include (1960โ€“2100). World Bank data generally starts in 1960, though many indicators only begin in the 1990s or 2000s. Leave blank for no lower limit.
yearTointeger(blank)Latest year to include (1960โ€“2100). Leave blank to run through to the most recent year published โ€” including the World Bank's projection datasets, which already publish figures out to 2050.
latestValueOnlybooleanfalseReturn just the single most recent reported value for each country and indicator instead of a full time series. When switched on, the year range is ignored.

Output Options

ParameterTypeDefaultDescription
outputFormatselectOne row per year (flat table)Choose "One row per year (flat table)" for a long, easy-to-pivot table, or "One row per time series (compact)" to pack all years for a country and indicator into a single row.
skipEmptyValuesbooleantrueLeave out rows where the World Bank has no figure for that country and year. Coverage is patchy for many indicators, so this usually removes a lot of blank rows.
includeIndicatorDetailsbooleantrueAdd the official definition, unit of measurement, source organisation and subject areas for each indicator.
includeCountryDetailsbooleantrueAdd each country's region, income group, capital city and coordinates alongside the figures.
maxResultsinteger1000Stop after this many rows (0 = no limit, maximum 500,000). One indicator across every country and every year is roughly 17,000 rows, and that multiplies by the number of indicators. See the note below on how the limit behaves.

How maxResults behaves. Because you are charged for every row that is saved, it is worth being precise about this:

  • It is a stopping point, not a hard ceiling. Once the limit is reached no new batches are requested, but the batches already being fetched are finished and their rows are saved โ€” so a flat-table run can return more rows than you asked for. Typically that is 5โ€“20% more, and in the worst case (a wide country list spread over several batches) it can reach roughly double. Those extra rows are charged for, so set the limit a little below your true budget.
  • The smallest batch the World Bank serves here is 50 rows, so a limit below 50 can still return up to 50 results.
  • The compact "One row per time series" layout is the exception โ€” it is trimmed to your limit exactly.
  • The final run message always tells you how many rows were actually saved.

Output

One Row Per Year (flat table)

{
"recordType": "observation",
"countryCode": "DE",
"countryName": "Germany",
"countryIso3": "DEU",
"isAggregate": false,
"indicatorCode": "NY.GDP.MKTP.CD",
"indicatorName": "GDP (current US$)",
"year": 2023,
"value": 4525703927389.13,
"unit": "current US$",
"obsStatus": "",
"dataLastUpdated": "2026-07-13",
"scrapedAt": "2026-07-25T09:14:02.318Z",
"indicatorDefinition": "GDP at purchaser's prices is the sum of gross value added by all resident producers in the economy plus any product taxes and minus any subsidies not included in the value of the products.",
"indicatorSource": "World Development Indicators",
"indicatorSourceOrganization": "World Bank national accounts data, and OECD National Accounts data files.",
"indicatorTopics": ["Economy & Growth"],
"countryRegion": "Europe & Central Asia",
"countryIncomeLevel": "High income",
"countryCapitalCity": "Berlin",
"countryLatitude": 52.5235,
"countryLongitude": 13.4115
}

Core Fields

FieldTypeDescription
recordTypestringobservation for flat rows, series for compact rows โ€” so mixed exports are easy to split
countryCodestringISO 3166-1 alpha-2 country code (DE)
countryNamestringFull country or aggregate name
countryIso3stringISO 3166-1 alpha-3 country code (DEU)
isAggregatebooleantrue for World Bank groupings such as "World" or "Euro area"
indicatorCodestringWorld Bank indicator code (NY.GDP.MKTP.CD)
indicatorNamestringHuman-readable indicator name
yearintegerFour-digit year of the observation
valuenumber | nullThe reported figure
unitstringUnit of measurement (current US$, years, % of total)
obsStatusstringObservation status flag published with the figure
dataLastUpdatedstringDate the World Bank last revised this dataset
scrapedAtstringISO 8601 timestamp of the extraction

Indicator Metadata

Included when includeIndicatorDetails is on.

FieldTypeDescription
indicatorDefinitionstringThe World Bank's official methodology note for the indicator
indicatorSourcestringDatabase the figure comes from (e.g. World Development Indicators)
indicatorSourceOrganizationstringOriginating organisation (e.g. UN Population Division)
indicatorTopicsstring[]Subject areas the indicator belongs to

Country Metadata

Included when includeCountryDetails is on.

FieldTypeDescription
countryRegionstringWorld Bank region name
countryIncomeLevelstringWorld Bank income group name
countryCapitalCitystringCapital city
countryLatitudenumber | nullLatitude of the capital
countryLongitudenumber | nullLongitude of the capital

One Row Per Time Series (compact)

{
"recordType": "series",
"countryCode": "BR",
"countryName": "Brazil",
"countryIso3": "BRA",
"isAggregate": false,
"indicatorCode": "SP.DYN.LE00.IN",
"indicatorName": "Life expectancy at birth, total (years)",
"values": { "2020": 74.01, "2021": 72.75, "2022": 75.36, "2023": 75.85 },
"firstYear": 2020,
"lastYear": 2023,
"latestValue": 75.85,
"observationCount": 4,
"unit": "years",
"dataLastUpdated": "2026-07-13",
"scrapedAt": "2026-07-25T09:14:02.318Z",
"indicatorSource": "World Development Indicators",
"countryRegion": "Latin America & Caribbean",
"countryIncomeLevel": "Upper middle income"
}

Time Series Fields

FieldTypeDescription
valuesobjectYear-to-value map for the whole series, e.g. {"2022": 75.36}
firstYearintegerEarliest year with a reported value
lastYearintegerLatest year with a reported value
latestValuenumber | nullThe value at lastYear
observationCountintegerNumber of years carrying a value

The recordType field, the country fields (countryCode, countryName, countryIso3, isAggregate), indicator fields (indicatorCode, indicatorName, unit, dataLastUpdated, scrapedAt) and both metadata blocks above appear on time series rows exactly as they do on flat rows.

Tips for Best Results

  • Start with a small maxResults, and set it slightly under your budget โ€” row counts multiply as indicators ร— countries ร— years. Run 500 rows first to confirm the shape is what you want, then raise the limit. Remember that a flat-table run finishes the batches already in flight, so it can return more rows than the limit โ€” see the note under the input reference.
  • Leave yearTo blank to pick up projections โ€” several World Bank datasets publish estimates well past today (population projections already run to 2050). A blank "To Year" keeps them; setting an explicit end year cuts them off.
  • Switch to the compact layout for long histories โ€” "One row per time series" returns the same 1960-to-present data in roughly 1/60th of the rows, which is dramatically cheaper for full-history pulls across many countries.
  • Leave includeAggregates off for any average or ranking โ€” the World Bank publishes "World", "Euro area", "High income" and 75 other groupings in the same list as real countries. Including them and then averaging double-counts entire continents.
  • Use latestValueOnly for league tables and maps โ€” it returns the most recent reported year per country automatically, which is not the same year for every country when coverage is uneven.
  • Combine topic with indicatorSearch โ€” searching "emissions" inside Climate Change finds what you want far faster than searching the full 29,544-indicator catalogue, and the shortest, most headline indicators rank first.
  • Keep skipEmptyValues on for sparse indicators โ€” poverty, gender and governance series often report only every three to five years, so most country-year cells are genuinely blank.
  • Watch out for archived indicator codes โ€” a handful of older codes live in World Bank archive databases that cannot serve figures. The run tells you by name which codes returned nothing, so you can look up the current replacement on data.worldbank.org.

Pricing

From $1.60 per 1,000 results โ€” 20% below the nearest comparable actor, with no 10,000-row ceiling. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.19$0.18$0.17$0.16
1,000$1.90$1.80$1.70$1.60
10,000$19.00$18.00$17.00$16.00
100,000$190.00$180.00$170.00$160.00

A "result" is one row in the output dataset โ€” one country/indicator/year observation in the flat layout, or one complete time series in the compact layout. No compute or time-based charges โ€” you pay per result, plus a small fixed per-run start fee.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n โ€” Workflow automation
  • Google Sheets โ€” Direct spreadsheet export
  • Slack / Email โ€” Notifications on new results
  • Webhooks โ€” Trigger custom integrations on run completion
  • Apify API โ€” Full programmatic access

This actor collects publicly published statistics from World Bank Open Data. Most World Bank datasets, including the World Development Indicators, are released under the Creative Commons Attribution 4.0 International licence (CC BY 4.0), which permits reuse and redistribution provided the World Bank is credited as the source. A small number of datasets carry additional third-party restrictions โ€” check the terms attached to an individual indicator before republishing it commercially.

Please credit the World Bank when you publish figures collected here, keep the dataLastUpdated value alongside the numbers so readers know the vintage, and comply with the World Bank's Terms of Use and any applicable laws in your jurisdiction. The dataset contains country-level statistics only and no personal data.