Afdb APIafdb.org ↗
Access AfDB country profiles, projects, procurement notices, publications, and news via 8 structured endpoints. Filter by country, sector, region, and more.
What is the Afdb API?
The AfDB API exposes 8 endpoints covering African Development Bank member countries, development projects, procurement notices, publications, and news. Starting with get_countries_list, you can retrieve all member countries organized by region, then drill into economic outlooks and portfolio data with get_country_overview, or query the MapAfrica project database with financial commitments and disbursement figures via list_projects.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/b9082722-a1d3-4f99-ad94-d83bb52f33bf/get_countries_list' \ -H 'X-API-Key: $PARSE_API_KEY'
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 afdb-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.
"""AfDB SDK walkthrough: explore countries, projects, publications, and news."""
from parse_apis.african_development_bank_api import (
AfDB, Country, RegionSlug, NotFoundError_
)
client = AfDB()
# List all member countries across regions.
for country in client.countries.list(limit=5):
print(country.name, country.region_slug)
# Construct a country by slug and fetch its detailed economic overview.
nigeria = Country(_api=client, slug="nigeria", region_slug=RegionSlug.WEST_AFRICA)
overview = nigeria.overview()
print(overview.name, overview.economic_outlook[:120])
# List development projects filtered by country code, capped at 3 items.
for project in client.projects.list(country_code="KE", limit=3):
print(project.title, project.total_commitments)
# Search across the entire AfDB website for climate-related content.
result = client.searchresults.search(query="climate change", limit=1).first()
if result:
print(result.title, result.type, result.url)
# Browse recent procurement notices related to energy.
for notice in client.procurementnotices.list(query="energy", limit=3):
print(notice.title, notice.date)
# List latest news articles with typed-error handling.
try:
for article in client.newsarticles.list(limit=3):
print(article.title, article.date)
except NotFoundError_ as exc:
print(f"Not found: {exc}")
print("exercised: countries.list / Country.overview / projects.list / searchresults.search / procurementnotices.list / newsarticles.list")
Returns all African Development Bank member countries organized by region. Each country includes name, slug, region_slug, and URL. Use country slugs as input to get_country_overview for detailed profiles.
No input parameters required.
{
"type": "object",
"fields": {
"regions": "object mapping region names to arrays of country objects with name, slug, region_slug, and url",
"countries": "flat array of all country objects across all regions"
},
"sample": {
"data": {
"regions": {
"North Africa": [
{
"url": "https://www.afdb.org/en/countries/north-africa/algeria",
"name": "Algeria",
"slug": "algeria",
"region_slug": "north-africa"
}
]
},
"countries": [
{
"url": "https://www.afdb.org/en/countries/north-africa/algeria",
"name": "Algeria",
"slug": "algeria",
"region_slug": "north-africa"
}
]
},
"status": "success"
}
}About the Afdb API
Country and Regional Data
get_countries_list returns all AfDB member countries grouped into named regions (e.g. North Africa, West Africa) with each country's name, slug, region_slug, and url. Those slugs feed directly into get_country_overview, which returns a full country profile: economic_outlook narrative text, strategy (the bank's intervention strategy), key_facts as a name-value object, and portfolio information. The region_slug parameter should match the country's actual region from the list endpoint to return correct results.
Project Database
list_projects queries the MapAfrica database and returns project records with id, iati_identifier, title, activity_status, total_commitments, and total_disbursements. The response also includes a filterable object that lists all valid values for country_code, sector, theme, status, region, year, and adfcycle — use these to construct valid filter requests. Pagination uses limit and offset parameters. get_project_detail accepts either the short AfDB identifier format (e.g. P-CV-AAF-003) or the full IATI identifier with a 46002- prefix and returns the complete project record including afdb_identifier_ref and financial totals.
Procurement, Publications, and News
list_procurement_notices returns paginated tender notices with title, url, date, and associated country, and supports keyword filtering via the query parameter. list_publications similarly supports keyword search and returns publication metadata (title, url, date). list_news returns paginated news articles with a summary field in addition to title, URL, and date. All three use 0-based page parameters for pagination.
Site-Wide Search
search_site runs a full-text query across the AfDB website and returns results with title, url, snippet, date, type (content classification), and a total_info string indicating the total result count. It requires a query parameter and supports the same 0-based page pagination as other list endpoints.
The Afdb API is a managed, monitored endpoint for afdb.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when afdb.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 afdb.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track active AfDB development projects in a specific country using
list_projectsfiltered by ISO country code, monitoringtotal_commitmentsandtotal_disbursementsover time. - Build a procurement alert system by polling
list_procurement_noticeswith sector or country keywords to surface new tender opportunities. - Aggregate country economic profiles by combining
get_countries_listwithget_country_overviewto extractkey_factsandeconomic_outlookfor all member states. - Identify AfDB publications on a topic like climate change or infrastructure using the
queryparameter inlist_publications. - Cross-reference project financial data by looking up
total_commitmentsandtotal_disbursementsfor a giveniati_identifierviaget_project_detail. - Monitor AfDB news coverage of specific regions or initiatives by searching
list_newsresults and filtering summaries by keyword. - Classify AfDB content by type (project, publication, news) using the
typefield returned bysearch_site.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does the African Development Bank have an official developer API?+
How do I filter `list_projects` to a specific sector or country?+
country_code (e.g. NG for Nigeria) to filter by country. For sectors, themes, status, and other dimensions, the filterable object in each response lists all currently valid values. Use limit and offset to paginate through large result sets.Does `get_project_detail` return sub-project or component-level data?+
title, activity_status, iati_identifier, afdb_identifier_ref, total_commitments, total_disbursements, and internal id. Sub-component breakdowns and transaction-level disbursement schedules are not currently included. You can fork this API on Parse and revise it to add an endpoint targeting component-level project data.Are procurement notices available for all AfDB member countries?+
country field, but coverage depends on what AfDB has posted. Filtering is by keyword only — there is no direct country-code filter parameter on list_procurement_notices. You can fork this API on Parse and revise it to add country-code filtering if the notices carry consistent country identifiers.