World Bank Indicators Scraper
Pricing
from $6.80 / 1,000 results
World Bank Indicators Scraper
Scrape World Bank development indicators with country, indicator name, year, value and unit for every country. Choose the indicator code and year range. Export to JSON, CSV or Excel.
Pricing
from $6.80 / 1,000 results
Rating
4.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
World Bank Indicators Scraper
Here is one real result, with every field the actor returns (the indicatorDescription is trimmed here for readability; the actor returns the full text):
{"countryId": "MX","countryName": "Mexico","countryIso3": "MEX","countryIso2": "MX","region": "Latin America & Caribbean","adminRegion": "Latin America & Caribbean (excluding high income)","incomeLevel": "Upper middle income","lendingType": "IBRD","capitalCity": "Mexico City","latitude": 19.427,"longitude": -99.1276,"indicatorId": "NY.GDP.PCAP.CD","indicatorName": "GDP per capita (current US$)","indicatorSource": "World Development Indicators","indicatorSourceOrganization": "Country official statistics, National Statistical Organizations and/or Central Banks; National Accounts data files, Organisation for Economic Co-operation and Development (OECD); Staff estimates, World Bank (WB)","indicatorTopics": ["Economy & Growth"],"indicatorDescription": "Gross domestic product is the total income earned through the production of goods and services in an economic territory during an accounting period. It can be measured in three different ways: using e…","year": "2023","value": 13830.843848864,"unit": null,"obsStatus": null,"decimal": 1,"source": "World Bank","observedAt": "2026-08-15T13:53:46.745Z"}
The most complete World Bank indicators scraper available. It returns every observation the World Bank indicators API exposes for your chosen indicator across all countries and years, and enriches each one with country classification (region, income level, lending type, capital, coordinates) and the indicator's official definition, so a single export carries everything without a second lookup.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor calls the World Bank indicators API for the indicator code you pass, paginates through every country and every year in the range you set, and writes one normalized record per observation to the run's dataset. Country classification (region, admin region, income level, lending type, capital city, latitude and longitude) and the indicator's official metadata (source, source organization, topics, definition) are read once per run and attached to each observation, so a single export carries the full context.
Both country-level rows and World Bank aggregate rows (regions and income groups) are returned, exactly as the source publishes them. Missing source values are returned as null, never invented.
Quickstart
Open the actor, paste this into the input, and press Run. It returns GDP per capita for 2023 across countries.
{"indicator": "NY.GDP.PCAP.CD","dateRange": "2023","maxObservations": 10}
Every input field is optional. With an empty input the actor pulls the default indicator (NY.GDP.PCAP.CD) for the default year range (2015:2023), capped by maxObservations (default 10).
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
indicator | string | no | NY.GDP.PCAP.CD | World Bank indicator code to fetch for every country. Examples: NY.GDP.PCAP.CD (GDP per capita), SP.POP.TOTL (total population), SL.UEM.TOTL.ZS (unemployment rate). |
dateRange | string | no | 2015:2023 | Limit to a year or range, for example 2023 or 2015:2023. Leave empty for all available years. |
maxObservations | integer | no | 10 | Maximum number of observations to collect. Free Apify plans are capped at 10 per run. |
Output reference
One dataset item per observation (one country, one indicator, one year). Types: string, number, integer, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
countryId | string | World Bank two-letter code for the country or aggregate. |
countryName | string | Country or aggregate name. |
countryIso3 | string | ISO 3166-1 alpha-3 country code, or null for aggregates without one. |
countryIso2 | string | ISO 3166-1 alpha-2 country code. |
region | string | World Bank region name, or Aggregates for regional/income-group rows. |
adminRegion | string | Administrative region (excludes high income), or null. |
incomeLevel | string | Income group: Low income, Lower middle income, Upper middle income, High income, or Aggregates. |
lendingType | string | World Bank lending category: IDA, IBRD, Blend, Not classified, or Aggregates. |
capitalCity | string | Capital city, or null for aggregates. |
latitude | number | Capital latitude, or null. |
longitude | number | Capital longitude, or null. |
indicatorId | string | The indicator code that was requested. |
indicatorName | string | Official indicator name, for example GDP per capita (current US$). |
indicatorSource | string | Source database, for example World Development Indicators. |
indicatorSourceOrganization | string | Organizations behind the underlying data. |
indicatorTopics | string[] | Topics the indicator belongs to, for example Economy & Growth. |
indicatorDescription | string | Official definition of the indicator. |
year | string | Observation year. |
value | number | Observation value, or null when the source has no value for that country-year. |
unit | string | Unit of measure when the source publishes one, else null. |
obsStatus | string | Observation status flag from the source, or null. |
decimal | integer | Number of decimal places the source recommends for display. |
source | string | Always World Bank. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
Example output record
Real record from a live run (input {"indicator":"NY.GDP.PCAP.CD","dateRange":"2023"}; indicatorDescription trimmed for readability):
{"countryId": "BR","countryName": "Brazil","countryIso3": "BRA","countryIso2": "BR","region": "Latin America & Caribbean","adminRegion": "Latin America & Caribbean (excluding high income)","incomeLevel": "Upper middle income","lendingType": "IBRD","capitalCity": "Brasilia","latitude": -15.7801,"longitude": -47.9292,"indicatorId": "NY.GDP.PCAP.CD","indicatorName": "GDP per capita (current US$)","indicatorSource": "World Development Indicators","indicatorSourceOrganization": "Country official statistics, National Statistical Organizations and/or Central Banks; National Accounts data files, Organisation for Economic Co-operation and Development (OECD); Staff estimates, World Bank (WB)","indicatorTopics": ["Economy & Growth"],"indicatorDescription": "Gross domestic product is the total income earned through the production of goods and services in an economic territory during an accounting period. It can be measured in three different ways: using e…","year": "2023","value": 10377.5892792557,"unit": null,"obsStatus": null,"decimal": 1,"source": "World Bank","observedAt": "2026-08-15T13:53:46.744Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~world-bank-indicators-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"indicator":"SP.POP.TOTL","dateRange":"2015:2023","maxObservations":500}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~world-bank-indicators-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"indicator":"SL.UEM.TOTL.ZS","dateRange":"2023"}'
Apify CLI:
apify call scrapers_lat/world-bank-indicators-scraper \--input '{"indicator":"NY.GDP.PCAP.CD","dateRange":"2023"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per observation returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxObservations. - Scope. One run fetches one indicator code across all countries and the year range you set. To pull several indicators, run the actor once per code.
FAQ and troubleshooting
A run returned 0 records. Why?
The indicator code or year range matched nothing. Confirm the indicator code exists in the World Bank catalog and widen dateRange. Zero-result runs are not charged.
Why is value null for some countries?
The World Bank has no observation for that country-year. Missing source values are returned as null, never invented.
Why do I see rows like "Latin America & Caribbean" or income groups?
The World Bank publishes aggregate series alongside country rows. They are returned as-is with region/incomeLevel set to Aggregates so you can keep or filter them.
Where do I find indicator codes?
Every World Bank indicator has a code (for example NY.GDP.PCAP.CD). Use the World Bank data catalog to look up the code for the series you need, then pass it as indicator.
Is this an official World Bank tool? No. This actor is independent and has no affiliation with the World Bank. It reads only data that is publicly available through the World Bank indicators API.
Related scrapers
- World Bank Procurement Notices Scraper: World Bank tenders and procurement opportunities.
- World Bank Debarred Firms Scraper: firms and individuals debarred by the World Bank.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the World Bank. Accesses only publicly available World Bank data.
