World Bank Projects & Tenders avatar

World Bank Projects & Tenders

Pricing

$1.00 / 1,000 record_rows

Go to Apify Store
World Bank Projects & Tenders

World Bank Projects & Tenders

Pricing

$1.00 / 1,000 record_rows

Rating

0.0

(0)

Developer

Sam Towers

Sam Towers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Collect public World Bank procurement notices, funded projects, and country metadata through the official keyless JSON endpoints. The Actor paginates incrementally, retries bounded transient failures, deduplicates records, and emits normalized dataset rows.

Functional input

CollectorInput.from_mapping() accepts:

  • mode: notices (default), projects, or countries
  • country, search_term, and notice_type: optional text filters
  • open_only: boolean; defaults to true for notices
  • project_status, minimum_commitment, approval_date_from, and approval_date_to: optional project filters
  • max_results: integer from 1 through 2,000; defaults to 100

The core intentionally does not contain Apify schemas or SDK calls. Deploy owns the adapter which maps platform input names into this contract.

Functional output

Every data record has record_type (notice, project, or country), a stable id, normalized type-specific fields, source_url, World Bank attribution, and chargeable: true. Dates are ISO YYYY-MM-DD; monetary commitments are numeric. If nothing matches, one separate note record is persisted with chargeable: false.

The caller supplies asynchronous persist(record) and charge(event) callbacks. A record_row event is requested only after a chargeable row was successfully persisted. The first two chargeable rows in each collect() call are free. Persisted rows remain billable when a later fetch or run step fails.

Pricing

The first two chargeable rows in each run are free. Each subsequent emitted notice, project, or country row requests one record_row event after the row has been persisted. Informational note rows are not chargeable.

Limitations

Results depend on the records and availability returned by World Bank public endpoints. Filters are applied to normalized fields; an empty result produces one informational note row. The maximum output is 2,000 rows per run.

Development

$python3 -m pytest -q

World Bank data attribution: World Bank Open Data, licensed under CC BY 4.0.