World Bank Projects Search avatar

World Bank Projects Search

Pricing

from $2.00 / 1,000 project fetcheds

Go to Apify Store
World Bank Projects Search

World Bank Projects Search

Search World Bank development projects - loans, grants & investments across 170+ countries. Filter by keyword, country, status & sector. Extract project commitments, borrower details, sectors, themes & approval dates from the official World Bank API.

Pricing

from $2.00 / 1,000 project fetcheds

Rating

0.0

(0)

Developer

ryan clinton

ryan clinton

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

Search and extract structured data from the World Bank's official development project database. Query thousands of internationally funded projects across 170+ countries by keyword, country, status, and sector -- returning clean, normalized JSON with financial commitments, dates, sectors, themes, and direct project URLs. No API key required.


The World Bank Projects API v2 returns deeply nested, inconsistently formatted JSON with mixed date formats, nested sector arrays, and raw financial figures. Constructing proper queries, handling pagination offsets, and normalizing the output requires significant development effort.

This actor eliminates that work entirely. You get a clean, consistent 17-field schema with normalized ISO dates, human-readable dollar amounts, flattened sector and theme lists, and direct links to each project detail page -- all through a simple five-parameter input form.

Running on Apify gives you additional advantages you cannot get from raw API calls:

  • Scheduled monitoring -- set up daily or weekly runs to track new project approvals, pipeline changes, or status transitions in your target countries or sectors.
  • Built-in integrations -- push results directly to Google Sheets, Slack, webhooks, email, or any downstream system without writing integration code.
  • Dataset export -- download results in JSON, CSV, Excel, XML, or RSS from the Apify console or API with one click.
  • Workflow chaining -- combine with other actors to build multi-step research pipelines that enrich World Bank project data with economic indicators, government spending records, or country statistics.
  • Zero configuration -- no API keys, no authentication, no rate limit management. Enter your search parameters and run.

Key features

  • Keyword search -- search across project names, descriptions, and metadata using free-text queries like "renewable energy", "water sanitation", or "climate adaptation".
  • Country filtering -- filter projects by ISO alpha-2 country code covering 170+ countries from Afghanistan (AF) to Zimbabwe (ZW).
  • Status filtering -- narrow results by project lifecycle stage: Active, Closed, Pipeline, or Dropped.
  • Sector filtering -- target specific development sectors including Energy, Health, Education, Transport, Water, Agriculture, Finance, and more.
  • Automatic pagination -- fetches up to 200 results per run with internal pagination handling against the World Bank API (500 rows per request).
  • Date normalization -- converts all date formats (ISO timestamps, US date strings) to consistent YYYY-MM-DD format.
  • Financial formatting -- transforms raw commitment amounts into human-readable dollar figures with proper formatting and million-dollar notation where applicable.
  • Sector and theme extraction -- flattens nested sector arrays and theme classification lists into clean semicolon-delimited strings.
  • Direct project URLs -- each result includes a direct link to the official World Bank project detail page for further research.
  • 17-field structured output -- every project returns the same consistent schema regardless of how the underlying API structures that particular record.

Using the Apify Console

  1. Navigate to the World Bank Projects Search actor page on Apify.
  2. Click Start to open the input configuration form.
  3. Enter a search query (e.g., "renewable energy"), a country code (e.g., "IN" for India), or both. At least one of these is required.
  4. Optionally select a project status from the dropdown: Active, Closed, Pipeline, or Dropped.
  5. Optionally enter a sector keyword such as "Energy", "Health", or "Education".
  6. Adjust the maximum results slider (default 25, maximum 200).
  7. Click Start to launch the run.
  8. When the run finishes, open the Dataset tab to view, filter, or download results in JSON, CSV, Excel, XML, or RSS format.

Using the Apify API

Call the actor programmatically using a POST request to the Apify API. Replace YOUR_API_TOKEN with your Apify API token:

curl -X POST "https://api.apify.com/v2/acts/ryanclinton~world-bank-projects/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "renewable energy",
"country": "IN",
"status": "Active",
"maxResults": 50
}'

Input parameters

ParameterTypeRequiredDefaultDescription
querystringNo--Free-text search keyword matching project names and descriptions. Examples: "renewable energy", "water supply", "education reform".
countrystringNo--ISO alpha-2 country code to filter projects. Examples: "IN" (India), "BR" (Brazil), "KE" (Kenya), "NG" (Nigeria), "ZA" (South Africa).
statusstringNoAllProject lifecycle status. Options: Active, Closed, Pipeline, Dropped. Leave empty for all statuses.
sectorstringNo--Sector keyword filter matching World Bank sector taxonomy. Examples: "Energy", "Health", "Education", "Transport", "Water", "Agriculture".
maxResultsintegerNo25Maximum number of projects to return per run. Minimum: 1. Maximum: 200.

Validation rule: At least one of query or country must be provided. If neither is supplied, the actor returns a helpful hint message instead of empty results.

Example input (JSON)

{
"query": "water sanitation",
"country": "KE",
"status": "Active",
"sector": "Water",
"maxResults": 50
}

Tips for input parameters

  • Combine filters for precision. Searching for "water" in country "KE" (Kenya) returns only Kenyan water projects rather than thousands of global matches.
  • Use broad sector terms. The sector filter matches against the World Bank's internal taxonomy. Broad terms like "Energy", "Health", or "Transport" work best. Overly specific phrases may return no results.
  • Country codes are case-insensitive. The actor automatically converts "in" to "IN", so either format works.
  • Pipeline status reveals upcoming opportunities. Filter by "Pipeline" to discover projects that have been identified but not yet approved by the Board of Executive Directors -- useful for procurement planning and business development.

Output

Each project in the output dataset contains 17 structured fields.

Example output (JSON)

{
"projectId": "P178546",
"projectName": "India Renewable Energy Integration and Sustainable Supply Program",
"countryName": "Republic of India",
"countryCode": "IN",
"status": "Active",
"approvalDate": "2023-03-14",
"closingDate": "2028-12-31",
"totalCommitment": "$1,500,000,000",
"lendingInstrument": "Investment Project Financing",
"sector": "Renewable Energy; Power Transmission and Distribution",
"theme": "Climate Change; Energy Efficiency",
"borrower": "Government of India",
"implementingAgency": "Ministry of New and Renewable Energy",
"regionName": "South Asia",
"teamLead": "Raghuveer Sharma",
"projectUrl": "https://projects.worldbank.org/en/projects-operations/project-detail/P178546",
"extractedAt": "2025-12-15T08:30:00.000Z"
}

Output field reference

FieldTypeDescription
projectIdstringWorld Bank project identifier (e.g., "P178546").
projectNamestringOfficial project title.
countryNamestringFull country name. Multi-country projects use semicolon-delimited names.
countryCodestringISO alpha-2 country code. Multi-country projects use semicolon-delimited codes.
statusstringCurrent project status: Active, Closed, Pipeline, or Dropped.
approvalDatestring or nullBoard approval date in YYYY-MM-DD format. Null if not yet approved.
closingDatestring or nullExpected or actual closing date in YYYY-MM-DD format. Null if not set.
totalCommitmentstring or nullTotal financial commitment formatted as a dollar amount (e.g., "$1,500,000,000" or "$250M"). Null if unavailable.
lendingInstrumentstring or nullType of lending instrument (e.g., "Investment Project Financing", "Development Policy Lending").
sectorstring or nullDevelopment sectors, semicolon-delimited if multiple (e.g., "Renewable Energy; Power Transmission and Distribution").
themestring or nullThematic classifications, semicolon-delimited if multiple (e.g., "Climate Change; Energy Efficiency").
borrowerstring or nullBorrowing entity name (typically a national government).
implementingAgencystring or nullAgency responsible for project implementation.
regionNamestring or nullWorld Bank regional classification (e.g., "South Asia", "Sub-Saharan Africa", "Latin America and Caribbean").
teamLeadstring or nullWorld Bank team leader name.
projectUrlstringDirect URL to the official World Bank project detail page.
extractedAtstringISO 8601 timestamp of when the data was extracted.

Use cases

  • International development research -- academics and think tanks can search for projects by sector and region to analyze World Bank funding patterns, commitment trends, and thematic priorities across decades of development lending.
  • Procurement and business development -- contractors, consultants, and suppliers can monitor Pipeline and Active projects to identify upcoming procurement opportunities in their sectors and target countries.
  • Government policy analysis -- public sector analysts can track World Bank investments in their country to understand external funding flows, sector allocation, and project timelines alongside domestic budget planning.
  • NGO and nonprofit coordination -- organizations working in development can find active World Bank projects in their operating regions to explore partnership opportunities, avoid duplication of effort, or align programming with funded initiatives.
  • ESG and impact investing -- investors and ESG analysts can monitor World Bank project portfolios to identify countries and sectors receiving significant multilateral development funding, signaling areas of growth and institutional commitment.
  • Journalism and investigative reporting -- reporters covering international development, foreign aid, or specific countries can search project databases to find funding details, implementing agencies, and project timelines for their stories.
  • Academic dataset building -- researchers can programmatically extract structured project data for econometric analysis, studying the relationship between World Bank lending and development outcomes across countries and time periods.
  • Competitive intelligence for development firms -- engineering, consulting, and development firms can track which agencies are implementing projects in their sectors to understand the competitive landscape and identify partners.
  • Country risk assessment -- financial analysts can examine the volume and status of World Bank projects in a country as one indicator of development trajectory, institutional capacity, and multilateral engagement.
  • Grant and funding landscape mapping -- organizations seeking funding can map the World Bank's active and pipeline portfolio to understand where multilateral resources are flowing and identify alignment with their own proposals.

API and integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/world-bank-projects").call(run_input={
"query": "climate adaptation",
"country": "BD",
"status": "Active",
"maxResults": 50,
})
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
for project in dataset_items:
print(f"{project['projectId']}: {project['projectName']} -- {project['totalCommitment']}")

JavaScript (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('ryanclinton/world-bank-projects').call({
query: 'infrastructure transport',
country: 'NG',
status: 'Active',
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(project => {
console.log(`${project.projectId}: ${project.projectName} -- ${project.totalCommitment}`);
});

cURL

# Start a run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~world-bank-projects/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "education",
"country": "PH",
"maxResults": 25
}'
# Fetch results from the default dataset (replace DATASET_ID)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

Platform integrations

World Bank Projects Search connects to these services through Apify's built-in integration system:

  • Google Sheets -- automatically append new project records to a spreadsheet after each run.
  • Slack -- receive notifications when new projects matching your criteria are found.
  • Webhooks -- trigger custom HTTP endpoints when a run completes for downstream processing.
  • Zapier -- connect to 5,000+ apps to route project data into CRMs, databases, or notification systems.
  • GitHub / GitLab -- version-control your actor configurations and schedule definitions.
  • Email -- receive dataset summaries or CSV attachments after scheduled runs.

How it works

The actor follows a straightforward pipeline to query, paginate, transform, and output World Bank project data.

+------------------+ +------------------+ +------------------+
| Parse Input | --> | Build API Query | --> | Fetch Projects |
| (5 parameters) | | (qterm, country, | | (World Bank |
| | | status, sector) | | API v2) |
+------------------+ +------------------+ +------------------+
|
v
+------------------+ +------------------+ +------------------+
| Push to Apify | <-- | Transform to | <-- | Paginate if |
| Dataset | | 17-field schema | | more results |
| (JSON/CSV/etc.) | | (normalize data) | | needed |
+------------------+ +------------------+ +------------------+

Step-by-step process:

  1. Input validation -- the actor reads input parameters and verifies that at least one of query or country is provided. If neither is set, it returns a helpful hint message.
  2. Query construction -- builds a URL against https://search.worldbank.org/api/v2/projects with the appropriate parameters: qterm for keyword search, countrycode for country filtering, status for lifecycle filtering, and sector for sector matching.
  3. Paginated fetching -- requests up to 500 rows per API call using the rows and os (offset) parameters. Continues fetching until the requested maxResults limit is reached or no more results are available.
  4. Date normalization -- converts ISO timestamps like 2022-06-28T00:00:00Z and US date strings like 9/30/2013 12:00:00 AM into consistent YYYY-MM-DD format.
  5. Sector extraction -- flattens nested sector arrays and fallback sector1 objects into semicolon-delimited strings.
  6. Theme extraction -- merges theme_list arrays and mjtheme_namecode fallback arrays into semicolon-delimited theme strings.
  7. Commitment formatting -- converts raw totalcommamt/totalamt values into formatted dollar strings, and curr_total_commitment values (in millions) into "$NM" notation.
  8. Schema transformation -- maps each raw project record into the consistent 17-field ProjectOutput schema.
  9. Dataset push -- writes all transformed records to the Apify dataset for export in any supported format.

Performance and cost

World Bank Projects Search is extremely lightweight. The World Bank API is fast, free, and requires no authentication, so runs complete quickly with minimal resource consumption.

ScenarioResultsEstimated DurationMemoryEstimated Cost
Small search (default)25 projects5--10 seconds256 MB~$0.001
Medium search50 projects10--15 seconds256 MB~$0.002
Large search100 projects15--20 seconds256 MB~$0.003
Maximum search200 projects20--30 seconds256 MB~$0.005

Free tier coverage: New Apify accounts receive $5 of free monthly platform usage. At approximately $0.001--$0.005 per run, you can execute hundreds to thousands of runs per month within the free tier.

External API costs: None. The World Bank Projects API v2 is completely free and open. No API key, registration, or rate limit management is required.


Limitations

  • Maximum 200 results per run. The actor caps output at 200 projects per execution. For larger datasets, run the actor multiple times with different filter combinations and merge the results.
  • Single country per run. The country filter accepts one ISO alpha-2 code per execution. To search across multiple countries, run the actor separately for each country or omit the country parameter and use keyword search instead.
  • Sector filter uses keyword matching. The sector parameter matches against the World Bank's internal taxonomy using keyword search, not exact category selection. Broad terms like "Energy" or "Health" work best; highly specific phrases may miss relevant projects.
  • Financial data not always available. Some projects -- particularly early-stage pipeline entries or technical assistance grants -- do not have commitment amounts in the API. The totalCommitment field will be null for these records.
  • No historical snapshot tracking. Each run returns the current state of the project database. The actor does not track changes over time. Use Apify's scheduling and dataset versioning to build your own historical record.
  • Multi-country projects may have combined fields. Projects spanning multiple countries return semicolon-delimited country names and codes (e.g., "India; Bangladesh" and "IN; BD") rather than separate records per country.
  • Data freshness depends on the World Bank. While the actor always queries live data from the API, the underlying database update frequency is controlled by the World Bank. Most updates occur within hours of official project changes.

Responsible use

  • Respect the data source. The World Bank Projects API is a free public resource. Avoid running the actor at unnecessarily high frequency (e.g., every minute) when weekly or daily schedules are sufficient for your monitoring needs.
  • Attribute data correctly. When publishing or sharing results derived from this actor, credit the World Bank as the original data source. The data is publicly available under the World Bank's open data terms of use.
  • Verify before acting on financial data. Commitment amounts and project statuses in the API may not reflect the most recent changes. Always verify critical financial figures against the official World Bank project detail page linked in each result.
  • Use responsibly in commercial contexts. While the data is publicly available, using it to make investment decisions, procurement bids, or policy recommendations should involve additional verification from official sources and domain experts.
  • Comply with Apify's terms of service. Ensure your usage of this actor and the data it produces conforms to both Apify's terms of service and the World Bank's data usage policies.

FAQ

What data source does this actor use? This actor queries the official World Bank Projects API v2 at search.worldbank.org/api/v2/projects. This is the same data source that powers the World Bank Projects & Operations website.

Do I need an API key or account? No. The World Bank Projects API is open and does not require authentication. The actor handles all API communication internally. You only need an Apify account to run the actor.

How current is the data? The World Bank updates its project database continuously. Each time you run this actor, you get the latest data directly from the live API -- not a cached or static snapshot.

Can I search for projects in multiple countries at once? The current version supports one country code per run. To search across multiple countries, either run the actor separately for each country code or omit the country filter entirely and use a keyword query to find projects across all countries.

What does "Pipeline" status mean? Pipeline projects are proposals that have been identified and are under preparation but have not yet been approved by the World Bank's Board of Executive Directors. These represent upcoming funding opportunities that have not yet reached the Active stage.

Why are some commitment amounts null? Not all projects have financial commitment data in the API. This is common for early-stage pipeline projects, technical assistance grants that have not been financially structured, or older projects with incomplete records.

What country codes does the actor accept? Standard ISO alpha-2 codes (two uppercase letters). Common examples: US (United States), IN (India), BR (Brazil), KE (Kenya), NG (Nigeria), ZA (South Africa), PH (Philippines), BD (Bangladesh), ET (Ethiopia), VN (Vietnam). The actor automatically converts lowercase input to uppercase.

What sectors can I filter by? The World Bank uses an extensive sector taxonomy. Common sector keywords that work well include: Energy, Health, Education, Transport, Water, Agriculture, Finance, Social Protection, Public Administration, Information and Communications Technology, Industry and Trade, and Environment.

How does the financial commitment formatting work? The actor reads from multiple API fields (totalcommamt, totalamt, curr_total_commitment) and formats them into readable dollar amounts. Full amounts appear as "$1,500,000,000" while million-denominated values appear as "$250M".

Can I schedule this actor to run automatically? Yes. Use Apify's built-in scheduling feature to run the actor on any cron schedule -- hourly, daily, weekly, or monthly. Combine scheduling with integrations to receive notifications or push results to external systems automatically.

What happens if no projects match my search? The actor returns an empty dataset and logs a message indicating no matching projects were found. No error is thrown.

What is the difference between this actor and the World Bank Development Indicators actor? This actor searches the World Bank's project database -- individual development projects with specific budgets, timelines, sectors, and implementing agencies. The World Bank Development Indicators actor searches the World Bank's statistical data catalog -- country-level economic, social, and environmental indicator time series. They are complementary and serve different research needs.


ActorDescriptionUse together with World Bank Projects to...
World Bank Development IndicatorsSearch economic, social, and environmental indicator data from the World Bank's open data catalog.Combine project-level funding data with country-level development statistics for comprehensive analysis.
IMF Economic DataAccess International Monetary Fund datasets for macroeconomic indicators across member countries.Analyze the macroeconomic context surrounding World Bank development investments in target countries.
USAspending Federal SpendingSearch U.S. federal government spending data including contracts, grants, and loans.Compare multilateral World Bank funding with bilateral U.S. government spending in similar sectors and countries.
OECD Economic StatisticsSearch OECD economic and social statistics across member and partner countries.Enrich World Bank project data with OECD development assistance statistics and economic performance metrics.
UN COMTRADE Trade DataSearch international trade data from the United Nations trade statistics database.Correlate World Bank infrastructure and trade facilitation projects with actual trade flow changes in recipient countries.
Grants.gov Federal Grant SearchSearch U.S. federal grant opportunities across all government agencies.Identify complementary U.S. federal funding opportunities alongside World Bank-financed development projects.