African Development Bank Procurement Scraper
Pricing
from $1.00 / 1,000 tenders
Go to Apify Store

African Development Bank Procurement Scraper
Extract African Development Bank project procurement notices: title, publication date, notice type, country, sector, project code, description and notice documents.
Pricing
from $1.00 / 1,000 tenders
Rating
5.0
(1)
Developer
Public Money
Maintained by ApifyActor stats
1
Bookmarked
1
Total users
0
Monthly active users
19 hours ago
Last modified
Categories
Share
This Actor reads the African Development Bank's project procurement notices from www.afdb.org/en/projects-and-operations/procurement: general and specific procurement notices, requests for expressions of interest, invitations for bids, procurement plans and contract awards. It returns one record per notice.
Source
- Listing:
https://www.afdb.org/en/projects-and-operations/procurement, 18 notices per page,?page=<n>from 0, newest first. About 694 pages (roughly 12,500 notices) on 2026-10-04. - Notice page:
https://www.afdb.org/en/documents/<slug>for the notice type, tags, body and attached files. - The site is behind Cloudflare. The Actor reads it directly and falls back to Apify's
UNBLOCKERproxy group when the direct read gets the challenge page.
Input
| Field | Type | Default | What it controls |
|---|---|---|---|
keyword | string | empty | AfDB's own Title filter (title contains the text), server-side |
country | string (select) | empty | AfDB's own Country filter, server-side |
sector | string (select) | empty | AfDB's own Sector filter, server-side |
publishedFrom | date | empty | Stops at the first notice published before this date |
maxPages | integer | 5 | Listing pages to walk, 18 notices each |
fetchDetails | boolean | true | Opens each notice page for the fields marked below |
maxItems | integer | 500 | Caps the records returned; 0 for no cap |
schemaOrg | boolean | false | Appends a schema.org block to each record |
{"country": "352","publishedFrom": "2026-09-01","maxItems": 100}
Output
| Field | From | Notes |
|---|---|---|
title | listing | |
publicationDate | listing | YYYY-MM-DD; null on the oldest notices, which AfDB lists undated |
noticeType | notice page | Document category, e.g. Request for Expression of Interest, Invitation for Bids, Procurement plans, Contract Awards to Consultants |
categories | notice page | Every category tag, including the umbrella "Project-related Procurement" |
projectCode | notice page | AfDB project code, e.g. P-TG-K0-009; null when the notice links none |
keywords | notice page | Country, sector and topic tags; AfDB does not mark which is the country |
description | notice page | Body text |
documents | notice page | Attached notice files (PDF, XLSX) |
lastUpdated | notice page | As printed, e.g. 02-Oct-2026 |
nodeId | notice page | AfDB's node id |
noticeUrl | listing | |
scrapedAt | run |
Gotchas
- AfDB orders notices published on the same day differently on every request. A notice can therefore show up on two adjacent pages of one walk, and another can slip between them. The Actor drops the repeat within a run (2 pages: 36 rows, 33 distinct on 2026-10-04); it cannot recover a notice the site moved past the page boundary.
- Notice titles and bodies are in the language AfDB published them in, mostly English or French.
- The listing has no date filter;
publishedFromworks because the listing is newest first.