Discover/World Bank API
live

World Bank APIprojects.worldbank.org

Search World Bank projects and procurement notices. Access funding amounts, sector data, country info, and tender deadlines via 3 structured endpoints.

Endpoint health
verified 7d ago
search_procurement
get_project_details
search_projects
3/3 passing latest checkself-healing
Endpoints
3
Updated
21d ago

What is the World Bank API?

This API provides structured access to the World Bank projects database through 3 endpoints, covering project search, procurement notice lookup, and detailed project retrieval. The search_projects endpoint returns paginated results with fields like total_amount_usd, sector, country, status, and abstract. The search_procurement endpoint surfaces active and historical tender notices including bid descriptions, deadlines, and contact emails.

Try it
Maximum number of results (max 100).
Search keyword(s) matched against project names, abstracts, and metadata.
Pagination offset (0-based item count).
Filter by project status.
api.parse.bot/scraper/7af0fc2e-0427-4b22-9b30-7e6d5b353eee/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/7af0fc2e-0427-4b22-9b30-7e6d5b353eee/search_projects?limit=5&query=infrastructure&offset=0&status=Active' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace projects-worldbank-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: World Bank Projects & Procurement API — bounded, re-runnable."""
from parse_apis.world_bank_projects___procurement_api import (
    WorldBank, ProjectStatus, ProjectNotFound
)

client = WorldBank()

# Search active projects by keyword, capped at 3 results.
for project in client.projects.search(query="renewable energy", status=ProjectStatus.ACTIVE, limit=3):
    print(project.project_name, project.status, project.total_amount_usd)

# Drill into one project by fetching full details.
first = client.projects.search(query="infrastructure", limit=1).first()
if first:
    detail = client.projects.get(project_id=first.id)
    print(detail.project_name, detail.region, detail.borrower, detail.abstract[:120])

# Search procurement notices related to energy.
for notice in client.procurementnotices.search(query="energy", limit=3):
    print(notice.bid_description, notice.notice_type, notice.country)

# Typed error handling: catch ProjectNotFound on an invalid ID.
try:
    client.projects.get(project_id="P000000")
except ProjectNotFound as exc:
    print(f"Project not found: {exc.project_id}")

print("exercised: projects.search / projects.get / procurementnotices.search / ProjectNotFound")
All endpoints · 3 totalmissing one? ·

Full-text search over World Bank projects. Matches query against project names, abstracts, and metadata. Optionally filter by project status. Paginates via offset; each result carries sector, funding, country, and abstract fields. Returns up to 100 results per call.

Input
ParamTypeDescription
limitintegerMaximum number of results (max 100).
querystringSearch keyword(s) matched against project names, abstracts, and metadata.
offsetintegerPagination offset (0-based item count).
statusstringFilter by project status.
Response
{
  "type": "object",
  "fields": {
    "count": "integer number of projects in this response",
    "total": "integer total matching projects",
    "offset": "integer pagination offset used",
    "projects": "array of Project objects"
  },
  "sample": {
    "data": {
      "count": 2,
      "total": 8895,
      "offset": 0,
      "projects": [
        {
          "id": "P154732",
          "url": "https://projects.worldbank.org/en/projects-operations/project-detail/P154732",
          "region": "Other",
          "sector": [
            {
              "Name": "Other Public Administration"
            }
          ],
          "status": "Closed",
          "themes": "",
          "country": [
            "World"
          ],
          "abstract": "",
          "borrower": "Sustainable Infrastructure Foundation",
          "team_leader": "NIL",
          "closing_date": "9/1/2017 12:00:00 AM",
          "country_code": "World",
          "grant_amount": "250,000",
          "last_updated": "2020-11-30 00:00:00.0",
          "lending_cost": "250,000",
          "project_name": "Enhancing the International Infrastructure Support System",
          "financial_type": [
            "Grants"
          ],
          "ida_commitment": "0",
          "ibrd_commitment": "0",
          "total_amount_usd": "0",
          "lending_instrument": "Investment Project Financing",
          "board_approval_date": "",
          "implementing_agency": "Sustainable Infrastructure Foundation",
          "total_commitment_usd": "250,000"
        },
        {
          "id": "P077179",
          "url": "https://projects.worldbank.org/en/projects-operations/project-detail/P077179",
          "region": "Eastern and Southern Africa",
          "sector": [
            {
              "Name": "ICT Infrastructure"
            },
            {
              "Name": "Power"
            }
          ],
          "status": "Dropped",
          "themes": [
            {
              "code": "78",
              "name": "Rural services and infrastructure"
            }
          ],
          "country": [
            "Kingdom of Eswatini"
          ],
          "abstract": "",
          "borrower": "",
          "team_leader": "NIL",
          "closing_date": "",
          "country_code": "Eswatini",
          "grant_amount": "",
          "last_updated": "",
          "lending_cost": "114,900,000",
          "project_name": "Energizing Rural Transformation",
          "financial_type": "",
          "ida_commitment": "0",
          "ibrd_commitment": "20,000,000",
          "total_amount_usd": "20,000,000",
          "lending_instrument": "Specific Investment Loan",
          "board_approval_date": "",
          "implementing_agency": "",
          "total_commitment_usd": "20,000,000"
        }
      ]
    },
    "status": "success"
  }
}

About the World Bank API

Endpoints and Data Coverage

The API exposes three endpoints. search_projects accepts a query string and an optional status filter (Active, Closed, Pipeline, or Dropped) to search the World Bank's full project catalog. Each result includes id, project_name, country, sector, total_amount_usd, abstract, and a url pointing to the project page. Pagination is controlled via limit (up to 100) and offset parameters, with total in the response indicating how many matching records exist.

Procurement Notices

search_procurement searches tender and bid notices associated with World Bank-financed operations. Results include notice_type, notice_status, project_id, bid_description, and contact_email. This is useful for tracking active procurement opportunities tied to specific projects or sectors. Like search_projects, it supports limit, offset, and keyword query inputs.

Project Details

get_project_details takes a single required project_id (e.g. P179950) and returns the full record for that project: region, sector (array or string), country (array or string), abstract, total_amount_usd, status, country_code, and the canonical url. This endpoint is suited for building detailed project profiles or enriching records returned by the search endpoints.

Reliability & maintenanceVerified

The World Bank API is a managed, monitored endpoint for projects.worldbank.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when projects.worldbank.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official projects.worldbank.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor active World Bank procurement tenders in a specific sector using search_procurement with keyword filters
  • Build a project funding tracker by querying search_projects filtered to Active status and extracting total_amount_usd by country
  • Enrich a development finance database with project abstracts, sector tags, and region data via get_project_details
  • Alert contractors to new bid opportunities by polling search_procurement for notices matching their domain keywords
  • Map World Bank investment flows by aggregating country and total_amount_usd fields across paginated search_projects results
  • Filter pipeline projects by sector to identify upcoming funding in specific regions before formal approval
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the World Bank have an official developer API for project data?+
Yes. The World Bank provides the Projects API at https://datahelpdesk.worldbank.org/knowledgebase/articles/898579-api-basic-call-structures. It covers a similar project dataset but has its own query syntax, field naming conventions, and rate constraints that differ from this API.
What does the `status` filter in `search_projects` accept?+
The status parameter accepts four values: Active, Closed, Pipeline, and Dropped. Omitting the parameter returns projects across all statuses. The total field in the response reflects the count of all matching records regardless of page size.
Does `search_procurement` include procurement documents or attachments?+
No. The search_procurement endpoint returns notice metadata — bid_description, notice_type, notice_status, project_id, and contact_email — but not linked documents or file attachments. You can fork this API on Parse and revise it to add an endpoint that retrieves attached documents for a given notice.
Can I retrieve a list of all projects for a specific country directly?+
Not via a dedicated country parameter. The current endpoints filter by keyword query and status. You can query by country name as a keyword in search_projects, but results depend on keyword matching against project text fields. You can fork this API on Parse and revise it to add a country-code filter endpoint.
How reliable is the `total_amount_usd` field across projects?+
The field is returned as a formatted string (e.g. $50,000,000) and reflects the total commitment amount as recorded in the World Bank's project database. Some pipeline or dropped projects may have a null or zero value if financing was not finalized.
Page content last updated . Spec covers 3 endpoints from projects.worldbank.org.
Related APIs in Government PublicSee all →
adb.org API
Search and retrieve detailed information about Asian Development Bank projects, including project listings, descriptions, status, and financial details. Access comprehensive project data to research ADB-funded initiatives across different regions and sectors.
afdb.org API
Access comprehensive information about African development initiatives, including country profiles, infrastructure projects, procurement opportunities, publications, and news from the African Development Bank. Search and retrieve detailed data on ongoing projects, tenders, and resources to track development activities across Africa.
biddingo.com API
Search and filter government procurement bids and RFPs across different regions and categories to find relevant opportunities. Access detailed project descriptions and bid information to help you discover and evaluate contracting opportunities that match your business needs.
procore.com API
Search and discover construction projects, bids, and company profiles on the Procore Construction Network. Retrieve project details including bid status, project scope, trades required, funding type, and solicitor contact information, as well as full company profiles for subcontractors and general contractors.
devex.com API
Search and explore global development opportunities including tenders, grants, job postings, news, organizations, and events all in one place. Find funding details, discover career opportunities, and stay updated on international development initiatives through a single integrated platform.
tenders.gov.uk API
Search and access UK government public procurement notices, tenders, and contract opportunities in real-time, with the ability to retrieve detailed notice information and browse standardized classification codes. Get comprehensive procurement data in structured formats to analyze tender patterns and find relevant contracting opportunities.
eprocurement.gov API
Monitor India's public procurement opportunities by accessing active tenders, bids closing today, global tenders, high-value contracts, and cancelled tenders from the Central Public Procurement Portal. Search tender details, browse participating organizations, and track real-time procurement statistics to stay informed on government contracting opportunities.
bdtender.com API
Search and browse tender listings from Bangladesh's largest tender portal, discovering opportunities by category, organization, and location while accessing real-time tender data and site statistics. Get detailed information on individual tenders, view live postings, and see what was published today to stay updated on the latest bidding opportunities.