World Bank Development Indicators
Pricing
from $2.00 / 1,000 indicator fetcheds
World Bank Development Indicators
Access 29,000+ World Bank development indicators for 200+ countries. GDP, population, inflation, unemployment, education, health, trade data from 1960 to present. Filter by country code, indicator, and year range. No API key needed.
Pricing
from $2.00 / 1,000 indicator fetcheds
Rating
0.0
(0)
Developer

ryan clinton
Actor stats
0
Bookmarked
4
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull authoritative global development statistics from the World Bank Open Data catalog -- GDP, population, inflation, unemployment, life expectancy, literacy, trade, foreign direct investment, and 29,000+ other indicators covering 200+ countries with time series data stretching back to 1960 -- all without writing a single line of code or obtaining an API key.
What does World Bank Development Indicators do?
World Bank Development Indicators connects to the official World Bank API v2 and retrieves structured, analysis-ready data for any combination of indicator, country, and year range. The World Bank maintains one of the largest open data repositories in the world, publishing development statistics collected from national statistical offices, international organizations, and survey programs across more than 200 countries and territories.
This actor lets you query that entire catalog through a simple input form. Select from ten of the most popular indicators in a dropdown -- GDP, GDP per capita, population, inflation, unemployment, life expectancy, literacy rate, GNI per capita, trade as a percentage of GDP, and foreign direct investment -- or enter any of the 29,000+ indicator codes the World Bank publishes. Specify the countries you want data for using standard ISO codes, set a year range, and run. The actor handles pagination, API formatting, error detection, null value filtering, and data normalization automatically.
Every data point returned includes the country code (both alpha-2 and alpha-3), full country name, indicator code, human-readable indicator name, year, numeric value, unit of measurement, and an extraction timestamp. The output is a flat JSON dataset ready for export to CSV, Excel, Google Sheets, or direct consumption by downstream services.
Common use cases include economic research and academic papers, cross-country comparative analysis, macroeconomic dashboards and visualizations, investment research and due diligence, policy analysis and government reporting, machine learning training datasets, and automated data pipelines that need fresh global development statistics on a recurring schedule.
Why use World Bank Development Indicators on Apify?
The World Bank API is free and open, but using it directly requires understanding several non-obvious conventions. Countries must be separated with semicolons in the URL path (not commas). Date ranges use a colon separator in a specific query parameter format. The API returns data in an unusual two-element array where the first element is pagination metadata and the second is the actual data -- unless there is an error, in which case the first element contains a message object instead. Large result sets require paginating through multiple requests with per-page limits.
This actor handles all of that complexity behind a simple input form. You type comma-separated country codes and the actor converts them to semicolons. You type years and the actor builds the correct date range syntax. The actor detects error responses, paginates automatically with polite delays between requests, filters out null values by default, and transforms the deeply nested API response into flat JSON records.
Running on Apify adds further advantages. Schedule recurring runs to capture new data releases automatically. Export results in JSON, CSV, or Excel with a single click. Chain this actor with other Apify actors in automated pipelines. Call it programmatically from any language via the Apify REST API or the official JavaScript and Python clients. Push results to Google Sheets, Amazon S3, or Google Cloud Storage through built-in integrations.
Key features
- 29,000+ indicators -- Access GDP, population, inflation, unemployment, life expectancy, literacy, trade, FDI, poverty, education, health, environment, gender, infrastructure, and thousands more development metrics published by the World Bank.
- 200+ countries and territories -- Query data for any country or territory recognized by the World Bank, from Afghanistan to Zimbabwe, using standard ISO country codes. Enter
allto retrieve data for every country at once. - Historical data from 1960 -- Retrieve time series data spanning over six decades for long-term trend analysis, historical comparisons, and structural change studies.
- Pre-built indicator dropdown -- Ten of the most popular indicators are available in a convenient dropdown, eliminating the need to look up codes for common queries.
- Custom indicator support -- Enter any valid World Bank indicator code to query the full catalog of 29,000+ indicators. Browse all available codes at data.worldbank.org/indicator.
- Flexible year range -- Narrow results to a specific time period by setting start and end years. Leave both blank to retrieve all available years for an indicator.
- Automatic null filtering -- Skip data points with missing values by default, keeping your dataset clean without manual post-processing.
- Configurable result limits -- Control output size from 1 to 10,000 data points per run to match your analysis needs and budget.
- No API key required -- The World Bank API is completely free and open. No registration, API key, or authentication is needed.
- Clean, flat JSON output -- Each data point is a flat record with nine fields, ready for import into any analysis tool, database, or visualization platform.
- Automatic pagination -- The actor handles multi-page result sets transparently, fetching up to 500 records per page with polite delays between requests.
How to use World Bank Development Indicators
- Navigate to the actor page on Apify and click Try for free.
- Select an indicator from the Indicator Code dropdown, or enter a custom indicator code in the Custom Indicator Code field (this overrides the dropdown).
- Enter the countries you want data for as comma-separated ISO country codes (e.g.,
US,CN,DE,JP,GB). Useallto retrieve data for every country. - Optionally set a year range using From Year and To Year. Data is available from 1960 to the present.
- Choose whether to skip null values (enabled by default).
- Set the maximum number of results (default is 500, maximum is 10,000).
- Click Start to run the actor.
- When the run completes, open the Dataset tab to view, download, or export your results in JSON, CSV, Excel, or other formats.
You can also call this actor via the Apify API from any programming language:
curl "https://api.apify.com/v2/acts/ryanclinton~world-bank-indicators/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-d '{"indicator": "NY.GDP.MKTP.CD","countries": "US,CN,DE,JP,GB","yearFrom": 2018,"yearTo": 2024,"skipNulls": true,"maxResults": 500}'
Example: GDP data for BRICS nations (2018-2024)
{"indicator": "NY.GDP.MKTP.CD","countries": "BR,RU,IN,CN,ZA","yearFrom": 2018,"yearTo": 2024,"skipNulls": true,"maxResults": 500}
Example: Population trends for all countries (2000-2024)
{"customIndicator": "SP.POP.TOTL","countries": "all","yearFrom": 2000,"yearTo": 2024,"skipNulls": true,"maxResults": 10000}
Example: Custom indicator -- CO2 emissions for EU nations
{"customIndicator": "EN.ATM.CO2E.KT","countries": "DE,FR,IT,ES,NL,PL,BE,SE,AT,DK","yearFrom": 2010,"yearTo": 2024,"skipNulls": true,"maxResults": 500}
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
indicator | String (select) | No | NY.GDP.MKTP.CD | World Bank indicator code. Choose from 10 popular indicators in the dropdown. |
customIndicator | String | No | -- | Override the dropdown with any valid World Bank indicator code. When provided, this takes priority over the dropdown selection. |
countries | String | No | US,CN,DE,JP,GB | Comma-separated ISO 3166-1 alpha-2 or alpha-3 country codes. Use all for all countries. |
yearFrom | Integer | No | -- | Start year for the date range. Data is available from 1960. Prefilled to 2015. |
yearTo | Integer | No | -- | End year for the date range. Defaults to the current year if only yearFrom is set. |
skipNulls | Boolean | No | true | Skip data points where the value is null or missing. Enabled by default. |
maxResults | Integer | No | 500 | Maximum number of data points to return. Range: 1 to 10,000. |
Output example
Each data point in the output dataset is a flat JSON object with nine fields:
{"countryCode": "US","countryName": "United States","countryIso3": "USA","indicatorCode": "NY.GDP.MKTP.CD","indicatorName": "GDP (current US$)","year": "2023","value": 27360935000000,"unit": "","extractedAt": "2026-02-17T10:15:30.456Z"}
A typical run querying GDP for five countries across ten years returns approximately 50 data points. Here is a multi-country result set:
[{"countryCode": "US","countryName": "United States","countryIso3": "USA","indicatorCode": "NY.GDP.MKTP.CD","indicatorName": "GDP (current US$)","year": "2023","value": 27360935000000,"unit": "","extractedAt": "2026-02-17T10:15:30.456Z"},{"countryCode": "CN","countryName": "China","countryIso3": "CHN","indicatorCode": "NY.GDP.MKTP.CD","indicatorName": "GDP (current US$)","year": "2023","value": 17794782100000,"unit": "","extractedAt": "2026-02-17T10:15:30.457Z"},{"countryCode": "DE","countryName": "Germany","countryIso3": "DEU","indicatorCode": "NY.GDP.MKTP.CD","indicatorName": "GDP (current US$)","year": "2023","value": 4456081000000,"unit": "","extractedAt": "2026-02-17T10:15:30.458Z"}]
Output fields reference
| Field | Type | Description |
|---|---|---|
countryCode | String | ISO 3166-1 alpha-2 country code (e.g., US, CN, DE). |
countryName | String | Full country name as provided by the World Bank (e.g., "United States", "China"). |
countryIso3 | String | ISO 3166-1 alpha-3 country code (e.g., USA, CHN, DEU). |
indicatorCode | String | World Bank indicator code (e.g., NY.GDP.MKTP.CD). |
indicatorName | String | Human-readable indicator name (e.g., "GDP (current US$)"). |
year | String | Four-digit year of the data point (e.g., "2023"). |
value | Number or null | The indicator value for that country and year. Null if data is unavailable and skipNulls is disabled. |
unit | String | Unit of measurement. Often empty for standard indicators where the unit is implicit in the indicator name. |
extractedAt | String | ISO 8601 timestamp of when the data was extracted by the actor. |
Indicator reference
The actor includes ten pre-built indicators in the dropdown. You can also enter any of the 29,000+ codes from the World Bank catalog using the Custom Indicator Code field.
Built-in indicator presets
| Indicator Code | Name | Category | Description |
|---|---|---|---|
NY.GDP.MKTP.CD | GDP (current US$) | Economy | Gross domestic product at current market prices in U.S. dollars. The broadest measure of economic output. |
NY.GDP.PCAP.CD | GDP per capita (current US$) | Economy | GDP divided by midyear population. A standard measure of average economic output per person. |
SP.POP.TOTL | Population, total | Demographics | Total population based on the de facto definition, counting all residents regardless of citizenship. |
FP.CPI.TOTL.ZG | Inflation, consumer prices (annual %) | Economy | Annual percentage change in the consumer price index. Measures the rate of price increases. |
SL.UEM.TOTL.ZS | Unemployment, total (% of labor force) | Labor | Share of the labor force that is without work but available and seeking employment. ILO estimate. |
SP.DYN.LE00.IN | Life expectancy at birth (years) | Health | Average number of years a newborn is expected to live under current mortality conditions. |
SE.ADT.LITR.ZS | Literacy rate, adult (% of people 15+) | Education | Percentage of the population aged 15 and above who can read and write a short statement. |
NY.GNP.PCAP.CD | GNI per capita (current US$) | Economy | Gross national income per capita, converted using the Atlas method. Used for World Bank country classifications. |
NE.TRD.GNFS.ZS | Trade (% of GDP) | Trade | Sum of exports and imports of goods and services as a share of GDP. Measures economic openness. |
BX.KLT.DINV.WD.GD.ZS | Foreign direct investment (% of GDP) | Investment | Net inflows of investment to acquire a lasting management interest in an enterprise, as a share of GDP. |
Popular custom indicator codes
These are commonly requested indicators not in the dropdown. Enter them in the Custom Indicator Code field:
| Indicator Code | Name |
|---|---|
SI.POV.DDAY | Poverty headcount ratio at $2.15/day (%) |
EN.ATM.CO2E.KT | CO2 emissions (kilotons) |
SH.DYN.MORT | Under-5 mortality rate (per 1,000 live births) |
SE.XPD.TOTL.GD.ZS | Government expenditure on education (% of GDP) |
SH.XPD.CHEX.GD.ZS | Current health expenditure (% of GDP) |
EG.ELC.ACCS.ZS | Access to electricity (% of population) |
IT.NET.USER.ZS | Internet users (% of population) |
AG.LND.FRST.ZS | Forest area (% of land area) |
MS.MIL.XPND.GD.ZS | Military expenditure (% of GDP) |
GC.DOD.TOTL.GD.ZS | Central government debt (% of GDP) |
Browse the full catalog of 29,000+ indicators at data.worldbank.org/indicator.
How much does it cost to use?
World Bank Development Indicators is extremely cost-efficient to run. The actor makes lightweight HTTP API calls with no browser or headless rendering, uses minimal memory (256 MB), and completes most runs in under 30 seconds.
Apify Free Tier: New Apify accounts receive $5.00 of free platform credits each month. A single run of this actor typically costs well under $0.01, meaning you can run it hundreds of times within the free tier.
Typical cost estimates:
| Scenario | Data Points | Estimated Cost |
|---|---|---|
| Single indicator, 5 countries, 10 years | ~50 | Under $0.001 |
| Single indicator, 5 countries, 60 years | ~300 | $0.001 - $0.005 |
| Single indicator, all countries, 10 years | ~2,000 | $0.005 - $0.01 |
| Daily scheduled run (30 runs/month) | Varies | $0.03 - $0.15/month |
| Maximum run (10,000 data points) | 10,000 | $0.01 - $0.02 |
Because the underlying World Bank API is completely free with no rate limits or authentication required, the only cost is the Apify platform compute time.
Technical details
Understanding how this actor interacts with the World Bank API can help you get the most out of it and troubleshoot any issues.
API endpoint and URL structure
The actor queries the World Bank API v2 at api.worldbank.org/v2. The URL is constructed as:
https://api.worldbank.org/v2/country/{countries}/indicator/{indicator}?format=json&per_page=500&page={page}&date={yearFrom}:{yearTo}
Countries are embedded directly in the URL path, separated by semicolons (e.g., US;CN;DE;JP;GB). The actor automatically converts the commas you type in the input to semicolons for the API call.
Indicator code system
World Bank indicator codes follow a hierarchical dot-separated naming convention. The first segment identifies the topic area, and subsequent segments narrow the scope:
NY.GDP.MKTP.CD-- NY = National accounts, GDP = Gross domestic product, MKTP = Market prices, CD = Current US dollarsSP.POP.TOTL-- SP = Social/Population, POP = Population, TOTL = TotalFP.CPI.TOTL.ZG-- FP = Financial/Prices, CPI = Consumer price index, TOTL = Total, ZG = Annual growth
You can discover indicator codes by browsing data.worldbank.org/indicator or by searching the World Bank data catalog.
Date range syntax
The World Bank API uses a colon-separated format for date ranges in the date query parameter: date=2015:2025. If you set only a start year, the actor fills in the current year as the end. If you set only an end year, the actor uses 1960 as the start. If you set neither, no date filter is applied and the API returns all available years.
Response format
The World Bank API returns a two-element JSON array on success:
[{ "page": 1, "pages": 3, "per_page": "500", "total": 1250 },[ { "indicator": {...}, "country": {...}, "date": "2023", "value": 27360935000000, ... }, ... ]]
Element [0] is pagination metadata (current page, total pages, records per page, total records). Element [1] is the array of data points. On error, the API returns a different structure where element [0] contains a message array instead of pagination. The actor detects this and reports the error message clearly.
Pagination
The actor fetches 500 records per page (the maximum allowed by the API). For result sets larger than 500 records, it automatically fetches subsequent pages with a 500-millisecond delay between requests to be respectful to the API. Pagination continues until either all data is retrieved or the maxResults limit is reached.
Null value filtering
Many World Bank indicators have sparse data coverage -- not every country reports every indicator every year. This means the raw API response often contains data points where the value field is null. With skipNulls enabled (the default), the actor filters these out after fetching, so your dataset contains only rows with actual numeric values.
Country code conversion
You enter country codes separated by commas in the input (e.g., US,CN,DE,JP,GB), which is the natural format for lists. However, the World Bank API expects semicolons as separators in the URL path (e.g., US;CN;DE;JP;GB). The actor handles this conversion automatically, also stripping any whitespace around codes. Both ISO 3166-1 alpha-2 (two-letter) and alpha-3 (three-letter) codes are accepted by the API.
Data transformation
The raw World Bank API response contains nested objects for country and indicator information:
{"indicator": { "id": "NY.GDP.MKTP.CD", "value": "GDP (current US$)" },"country": { "id": "US", "value": "United States" },"countryiso3code": "USA","date": "2023","value": 27360935000000,"unit": "","obs_status": "","decimal": 0}
The actor flattens this into a clean nine-field record, extracting the nested id and value fields from the indicator and country objects and adding an extractedAt timestamp. This flat format is much easier to work with in spreadsheets, databases, and data analysis tools.
Tips for best results
- Start with the indicator dropdown to explore the most commonly used economic and social indicators before diving into custom codes.
- Browse data.worldbank.org/indicator to discover the full catalog of 29,000+ indicator codes for use with the Custom Indicator Code field.
- Use
allfor countries if you want a complete global dataset, but increasemaxResultsaccordingly since this may produce thousands of data points. - Enable "Skip Null Values" (on by default) to avoid gaps in your dataset. Many indicators have sparse coverage for smaller or less-developed countries.
- Set a year range to keep your output focused. For recent trend analysis, a range like 2015-2024 works well. For historical comparisons, reach back to 1960.
- Combine with scheduling to build a time series that updates automatically. Schedule the actor to run weekly or monthly and append new data to your storage.
- Export as CSV from the dataset tab for direct import into Excel, Google Sheets, R, Python pandas, or any BI tool.
- Use alpha-2 or alpha-3 codes interchangeably. The API accepts both
USandUSA,GBandGBR,DEandDEU. Use whichever format is more convenient for your workflow. - Query multiple countries in one run rather than running the actor separately for each country. The API supports any number of countries in a single request.
- Check data availability before large runs. Some indicators only cover certain countries or time periods. Do a small test run first to verify coverage.
FAQ
What indicator codes are available? The World Bank maintains over 29,000 indicators. The actor includes 10 popular ones in the dropdown (GDP, GDP per capita, population, inflation, unemployment, life expectancy, literacy rate, GNI per capita, trade, FDI). For the full list, visit data.worldbank.org/indicator.
What country codes should I use?
Use standard ISO 3166-1 alpha-2 codes (e.g., US, GB, DE, JP, CN, BR, IN) or alpha-3 codes (e.g., USA, GBR, DEU). Separate multiple codes with commas. Enter all to query every country and territory in the World Bank database.
How far back does the data go? Most World Bank indicators have data starting from 1960, though coverage varies by indicator and country. Some newer indicators (e.g., internet usage, mobile subscriptions) may only have data from the 1990s or 2000s.
Why are some values null? Not all countries report data for every indicator and year. Data gaps are common for smaller nations, conflict-affected countries, and newer indicator categories. Enabling "Skip Null Values" (the default) removes these gaps from your output.
Is an API key required? No. The World Bank API v2 is completely free and open. No registration, API key, or authentication is needed. There are no rate limits for normal usage.
Can I use this data commercially? Yes. World Bank Open Data is published under the Creative Commons Attribution 4.0 International (CC BY 4.0) license, which permits commercial use as long as you provide appropriate attribution to the World Bank.
What does the Custom Indicator Code field do? It overrides the dropdown selection. If you enter a value in Custom Indicator Code, that code is used regardless of what is selected in the dropdown. This lets you query any of the 29,000+ indicators in the World Bank catalog.
How do I find the indicator code for a specific metric?
Visit data.worldbank.org/indicator and browse or search by topic. Each indicator page displays its code (e.g., NY.GDP.MKTP.CD for GDP). You can also search for keywords like "poverty" or "education" to narrow down the list.
What happens if I request data for a country that does not exist? The World Bank API returns an error message, which the actor reports in the run log. Double-check your ISO country codes if you see an error.
Can I get data for regions or income groups instead of individual countries?
Yes. The World Bank API supports aggregate codes like WLD (World), EAS (East Asia & Pacific), SSF (Sub-Saharan Africa), LIC (Low Income Countries), and many more. Enter these codes in the countries field just like individual country codes.
How do I compare the same indicator across many countries?
Enter all the countries you want to compare as a comma-separated list (e.g., US,CN,JP,DE,IN,BR,GB,FR,IT,CA for the G10). Set a specific year range and the actor returns data for every country-year combination. Export as CSV and pivot by country in a spreadsheet for side-by-side comparison.
What is the difference between the indicator dropdown and the custom indicator field? The dropdown provides quick access to ten popular indicators without needing to know their codes. The custom indicator field accepts any valid World Bank indicator code and overrides the dropdown when filled in. If you leave the custom field empty, the dropdown selection is used.
Can I run this actor on a schedule? Yes. Apify supports cron-based scheduling for any actor. Set up a daily, weekly, or monthly schedule from the actor's Schedules tab to automatically capture new data releases. Combine with webhooks or integrations to push fresh data to your systems automatically.
What export formats are available? Apify datasets can be exported in JSON, CSV, Excel (XLSX), XML, HTML table, and RSS formats. You can also access results programmatically via the Apify REST API in any of these formats by appending the format to the dataset URL.
Integrations and related actors
World Bank Development Indicators outputs standard Apify datasets that integrate with:
- Apify API -- Fetch results programmatically from any language via the dataset REST API or official JavaScript/Python clients.
- Webhooks -- Trigger downstream actions (Slack alerts, email notifications, API calls) when a run completes.
- Google Sheets / Excel -- Export datasets directly from the Apify console or push them automatically with integrations.
- Zapier / Make / n8n -- Connect to thousands of apps through Apify's native integrations.
- Amazon S3 / Google Cloud Storage -- Automatically push datasets to cloud storage for data lake ingestion.
Related actors from the ryanclinton Apify Store
- BLS US Economic Data Search -- Pull official U.S. economic statistics from the Bureau of Labor Statistics, including CPI inflation, unemployment, nonfarm employment, wages, and PPI. Ideal for U.S.-focused economic analysis alongside World Bank global data.
- FRED Economic Data Search -- Access the Federal Reserve Economic Data database for thousands of U.S. and international economic time series including GDP, interest rates, money supply, and employment. Complements World Bank data with high-frequency U.S. economic indicators.
- IMF Economic Data -- Search International Monetary Fund datasets for macroeconomic and financial statistics. Useful for cross-referencing World Bank figures with IMF forecasts and projections.
- OECD Economic Statistics -- Search OECD statistical datasets for economic indicators across member countries, covering employment, trade, finance, education, and social metrics. Pairs well with World Bank data for developed-economy analysis.
- Eurostat EU Statistics -- Access the European Union's official statistical database for detailed economic, social, and demographic data across EU member states. Complements World Bank data with granular European statistics.