# World Bank Development Indicators Scraper (`crawlerbros/world-bank-development-indicators`) Actor

Scrape World Bank development indicators - GDP, population, literacy, child mortality, electricity access and 16,000+ more indicators for 200+ countries spanning 60+ years of data.

- **URL**: https://apify.com/crawlerbros/world-bank-development-indicators.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## World Bank Development Indicators Scraper

Extract development indicator data from the World Bank Open Data API — one of the world's most comprehensive free sources of economic and social statistics covering 200+ countries and 16,000+ indicators spanning 60+ years.

### Features

- **Get Indicator Data** — fetch time-series data for any World Bank indicator across one or more countries
- **Search Indicators** — discover available indicators by keyword (GDP, poverty, education, health, etc.)
- **List Countries** — retrieve all countries with region, income level, and capital city metadata
- **Compare Countries** — compare multiple countries side-by-side on a single indicator

### What Data Is Available?

The World Bank API provides data on:

- **Economic indicators** — GDP, GDP per capita, inflation, trade, debt
- **Population & demographics** — total population, growth rates, age structures
- **Education** — literacy rates, school enrollment, government spending on education
- **Health** — child mortality, life expectancy, access to healthcare
- **Energy & Environment** — access to electricity, CO2 emissions, renewable energy
- **Poverty & Inequality** — poverty headcount, Gini index, income shares

### Input

| Field | Type | Description |
|-------|------|-------------|
| `mode` | select | Operation mode (see below) |
| `indicatorCode` | string | World Bank indicator code (e.g. `NY.GDP.PCAP.CD`) |
| `countryCodes` | string | Comma-separated ISO2 country codes (e.g. `US,CN,IN,DE,BR`) |
| `searchQuery` | string | Keyword for `searchIndicators` mode |
| `startYear` | integer | Start year for time-series (1960–2030) |
| `endYear` | integer | End year for time-series (1960–2030) |
| `maxItems` | integer | Maximum records to return (1–500, default 100) |

#### Modes

| Mode | Description |
|------|-------------|
| `getIndicatorData` | Fetch time-series data for one indicator across specified countries |
| `searchIndicators` | Search the 16,000+ available indicators by keyword |
| `listCountries` | List all countries with region, income level, and geographic metadata |
| `compareCountries` | Compare multiple countries on one indicator |

#### Common Indicator Codes

| Code | Description |
|------|-------------|
| `NY.GDP.MKTP.CD` | GDP (current US$) |
| `SP.POP.TOTL` | Population, total |
| `NY.GDP.PCAP.CD` | GDP per capita (current US$) |
| `SH.DYN.MORT` | Mortality rate, under-5 (per 1,000 live births) |
| `SE.ADT.LITR.ZS` | Literacy rate, adult total (% of people ages 15+) |
| `EG.ELC.ACCS.ZS` | Access to electricity (% of population) |
| `FP.CPI.TOTL.ZG` | Inflation, consumer prices (annual %) |
| `SL.UEM.TOTL.ZS` | Unemployment, total (% of total labor force) |
| `SI.POV.GINI` | Gini index (income inequality) |
| `SP.DYN.LE00.IN` | Life expectancy at birth, total (years) |

### Output

Each record contains:

| Field | Type | Description |
|-------|------|-------------|
| `countryCode` | string | ISO 2-letter country code (e.g. `US`) |
| `countryName` | string | Full country name (e.g. `United States`) |
| `indicatorCode` | string | World Bank indicator code |
| `indicatorName` | string | Human-readable indicator name |
| `year` | integer | Year of the data point |
| `value` | number | Numeric value of the indicator |
| `unit` | string | Unit of measurement (if available) |
| `scrapedAt` | string | ISO 8601 timestamp when data was fetched |

### Example Output

```json
{
  "countryCode": "US",
  "countryName": "United States",
  "indicatorCode": "NY.GDP.PCAP.CD",
  "indicatorName": "GDP per capita (current US$)",
  "year": 2023,
  "value": 81032.26,
  "scrapedAt": "2026-06-03T10:00:00+00:00"
}
````

### Use Cases

- **Economic research** — compare GDP, inflation, or trade data across countries and decades
- **Development analysis** — track progress on education, health, and poverty indicators
- **Data journalism** — source verified World Bank data for articles and reports
- **Academic projects** — access decades of development statistics for research
- **Business intelligence** — understand market conditions across emerging economies

### Data Source

All data comes from the [World Bank Open Data API](https://api.worldbank.org/v2/) — a completely free, publicly accessible API requiring no authentication. The World Bank provides this data to promote transparency and support development research worldwide.

### FAQs

**Is an API key required?**
No. The World Bank API is completely free and requires no registration or API key.

**How current is the data?**
Data is typically updated annually. Most indicators have data through 2022–2024 depending on the country and indicator.

**What if a country has no data for an indicator?**
Records with null values are automatically excluded — only years with actual data are returned.

**Can I get data for all countries at once?**
Yes — leave `countryCodes` blank to fetch data across all ~260 World Bank countries (increases run time).

**How many indicators are available?**
The World Bank tracks 16,000+ indicators. Use `searchIndicators` mode to discover indicators by keyword.

**What country codes should I use?**
Standard ISO 2-letter codes: `US` (United States), `CN` (China), `IN` (India), `DE` (Germany), `BR` (Brazil), `GB` (United Kingdom), `JP` (Japan), `FR` (France), `AU` (Australia), `CA` (Canada).

# Actor input Schema

## `mode` (type: `string`):

What to fetch from the World Bank API.

## `indicatorCode` (type: `string`):

World Bank indicator code. Examples: NY.GDP.MKTP.CD (GDP current US$), SP.POP.TOTL (Population), NY.GDP.PCAP.CD (GDP per capita), SH.DYN.MORT (Child mortality), SE.ADT.LITR.ZS (Literacy rate), EG.ELC.ACCS.ZS (Access to electricity). Required for getIndicatorData and compareCountries modes.

## `countryCodes` (type: `string`):

Comma-separated ISO2 country codes to fetch data for (e.g. US,CN,IN,DE,BR,GB,JP). Used in getIndicatorData and compareCountries modes. Leave blank for all countries.

## `searchQuery` (type: `string`):

Keyword to search for indicators (e.g. 'GDP', 'education', 'health', 'poverty'). Used in searchIndicators mode.

## `startYear` (type: `integer`):

Start year for time-series data (e.g. 2010). Used in getIndicatorData and compareCountries modes. Minimum 1960.

## `endYear` (type: `integer`):

End year for time-series data (e.g. 2023). Used in getIndicatorData and compareCountries modes. Maximum 2030.

## `maxItems` (type: `integer`):

Maximum number of records to return (1-500). Each data point (country + year + value) counts as one record.

## Actor input object example

```json
{
  "mode": "getIndicatorData",
  "indicatorCode": "NY.GDP.PCAP.CD",
  "countryCodes": "US,CN,IN,DE,BR",
  "searchQuery": "GDP per capita",
  "maxItems": 50
}
```

# Actor output Schema

## `indicators` (type: `string`):

Dataset containing all scraped World Bank indicator records.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "getIndicatorData",
    "indicatorCode": "NY.GDP.PCAP.CD",
    "countryCodes": "US,CN,IN,DE,BR",
    "searchQuery": "GDP per capita",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/world-bank-development-indicators").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "getIndicatorData",
    "indicatorCode": "NY.GDP.PCAP.CD",
    "countryCodes": "US,CN,IN,DE,BR",
    "searchQuery": "GDP per capita",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/world-bank-development-indicators").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "getIndicatorData",
  "indicatorCode": "NY.GDP.PCAP.CD",
  "countryCodes": "US,CN,IN,DE,BR",
  "searchQuery": "GDP per capita",
  "maxItems": 50
}' |
apify call crawlerbros/world-bank-development-indicators --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/world-bank-development-indicators",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "World Bank Development Indicators Scraper",
        "description": "Scrape World Bank development indicators - GDP, population, literacy, child mortality, electricity access and 16,000+ more indicators for 200+ countries spanning 60+ years of data.",
        "version": "1.0",
        "x-build-id": "HFuP3C1xxZ42gjRBU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~world-bank-development-indicators/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-world-bank-development-indicators",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~world-bank-development-indicators/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-world-bank-development-indicators",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~world-bank-development-indicators/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-world-bank-development-indicators",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "getIndicatorData",
                            "searchIndicators",
                            "listCountries",
                            "compareCountries"
                        ],
                        "type": "string",
                        "description": "What to fetch from the World Bank API.",
                        "default": "getIndicatorData"
                    },
                    "indicatorCode": {
                        "title": "Indicator Code",
                        "type": "string",
                        "description": "World Bank indicator code. Examples: NY.GDP.MKTP.CD (GDP current US$), SP.POP.TOTL (Population), NY.GDP.PCAP.CD (GDP per capita), SH.DYN.MORT (Child mortality), SE.ADT.LITR.ZS (Literacy rate), EG.ELC.ACCS.ZS (Access to electricity). Required for getIndicatorData and compareCountries modes.",
                        "default": "NY.GDP.MKTP.CD"
                    },
                    "countryCodes": {
                        "title": "Country Codes (comma-separated ISO2 codes)",
                        "type": "string",
                        "description": "Comma-separated ISO2 country codes to fetch data for (e.g. US,CN,IN,DE,BR,GB,JP). Used in getIndicatorData and compareCountries modes. Leave blank for all countries.",
                        "default": "US,CN,IN"
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Keyword to search for indicators (e.g. 'GDP', 'education', 'health', 'poverty'). Used in searchIndicators mode."
                    },
                    "startYear": {
                        "title": "Start Year",
                        "minimum": 1960,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "Start year for time-series data (e.g. 2010). Used in getIndicatorData and compareCountries modes. Minimum 1960."
                    },
                    "endYear": {
                        "title": "End Year",
                        "minimum": 1960,
                        "maximum": 2030,
                        "type": "integer",
                        "description": "End year for time-series data (e.g. 2023). Used in getIndicatorData and compareCountries modes. Maximum 2030."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of records to return (1-500). Each data point (country + year + value) counts as one record.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
