World Bank Open Data Scraper
Pricing
from $1.50 / 1,000 results
World Bank Open Data Scraper
Extract economic indicators from World Bank API. 29,000+ indicators for 200+ countries - GDP, population, trade, poverty. Search indicators, get country time-series data, or list all countries. No API key needed. Great for research and AI pipelines.
Extract economic indicators from World Bank API. 29,000+ indicators for 200+ countries - GDP, population, trade, poverty. Search indicators, get country time-series data, or list all countries. No API key needed. Great for research and AI pipelines.
Use cases
- Compare countries on GDP, population, or development indicators
- Build a macro dashboard without an API key
- Backfill multi-year indicator series for modelling
- Support market-entry research with country data
- Automate recurring development-economics reporting
Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | Yes | "getCountryData" | Operation mode: search indicators by keyword, get country data for a specific indicator, or list all countries Allowed: searchIndicators, getCountryData, listCountries. |
query | string | No | "GDP" | Keyword to filter indicators (used in searchIndicators mode) |
countryCode | string | No | "JP" | ISO 3166-1 alpha-2 country code (e.g., JP, US, DE). Used in getCountryData mode. |
indicatorId | string | No | "NY.GDP.MKTP.CD" | World Bank indicator ID (e.g., NY.GDP.MKTP.CD for GDP in current USD). Used in getCountryData mode. |
dateRange | string | No | "2015:2024" | Date range for data retrieval, format YYYY:YYYY (e.g., 2015:2024). Used in getCountryData mode. |
maxResults | integer | No | 50 | Maximum number of records to return (1-1000) |
Example input
{"mode": "getCountryData","query": "GDP","countryCode": "JP","indicatorId": "NY.GDP.MKTP.CD","dateRange": "2015:2024","maxResults": 10}
Output
The exact fields depend on the mode you run. This is real output from an actual run of this Actor:
{"country": {"id": "JP","value": "Japan"},"indicator": {"id": "NY.GDP.MKTP.CD","value": "GDP (current US$)"},"date": "2024","value": 4190008188358.57,"unit": "","scrapedAt": "2026-09-06T15:22:34.481Z"}
| Field | Type |
|---|---|
country | object |
indicator | object |
date | string |
value | number |
unit | string |
scrapedAt | string |
The dataset also ships a preset table view (Results), so the key columns are readable straight away in Apify Console, and exportable to JSON, CSV, Excel, or XML.
How to run it
In Apify Console — open the Actor, fill in the input form, click Start, then download the results from the Dataset tab.
With the JavaScript client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('cloud9_ai/worldbank-scraper').call({"mode": "getCountryData","query": "GDP","countryCode": "JP","indicatorId": "NY.GDP.MKTP.CD","dateRange": "2015:2024","maxResults": 10});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
With the Python client
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('cloud9_ai/worldbank-scraper').call(run_input={"mode": "getCountryData","query": "GDP","countryCode": "JP","indicatorId": "NY.GDP.MKTP.CD","dateRange": "2015:2024","maxResults": 10})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
With the API — POST https://api.apify.com/v2/acts/cloud9_ai~worldbank-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body.
Notes and limits
- No API key, account, or login is needed — just the input above.
maxResultscaps how much a single run collects, which is also what caps the run's cost.- Requests are paced and failed requests are retried automatically, so runs stay inside the source's rate limits.
- Only publicly available data is collected. How you use the output is your responsibility, including the source's terms of use and any applicable data-protection law.
Support
Found a bug, or need a field that isn't in the output? Open an issue on the Issues tab of this Actor in Apify Console. Issues there are read and answered.
License
Apache-2.0