Global Tenders API: Canada, France, NL, EU & Australia
Pricing
from $2.00 / 1,000 tender notices
Global Tenders API: Canada, France, NL, EU & Australia
Government tenders from official open data: Canada (CanadaBuys, incl. award notices), France (BOAMP), the Netherlands (TenderNed), EU-institution calls for tenders and Australian contract awards, in one schema with source licences. Optional World Bank, EU TED and UK. $2 per 1,000.
Pricing
from $2.00 / 1,000 tender notices
Rating
0.0
(0)
Developer
Chordio, Inc.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
Security
Limited permissionsShare
Government tenders from official open-data feeds, in one clean table. This actor reads CanadaBuys (Canada, tenders and award notices), BOAMP (France), TenderNed (Netherlands), AusTender (Australia, awarded contracts) and the EU Funding & Tenders Portal (calls for tenders from the EU institutions and agencies). It normalises them all to one schema with a deadline countdown, a source and a licence field, and no personal contact data. You can also add World Bank procurement notices and contract awards (projects in borrower countries worldwide), the EU's TED and the UK's Find a Tender and Contracts Finder in the same run.
Use it to:
- Find bids abroad. Get a daily list of open tenders in Canada, France, the Netherlands and the EU institutions that match your keywords or CPV/UNSPSC codes. Add the World Bank feed for bids on development projects.
- Do market and competitor intelligence. See who wins public contracts and for how much: Canadian award notices, Australian contract awards, French avis d'attribution, Dutch gegunde opdrachten and World Bank signed contracts.
- Feed bid tools and AI agents. CSV, Opendatasoft JSON, TNS JSON, OCDS and the World Bank and European Commission search APIs arrive as one JSON schema.
Why this actor
| This actor | Typical tender scrapers | |
|---|---|---|
| Coverage | 4 countries + the EU institutions in one run (+ optional World Bank, EU TED and UK) | One portal per actor |
| Data access | Official open-data feeds and APIs only: no HTML scraping, no logins, no browser | Often HTML scraping |
| Schema | One schema: source, country, noticeStage, deadlineAt, daysToDeadline, valueAmount, CPV + UNSPSC classifications, awards, licence | Source-specific fields |
| Personal data | Buyer contact names, e-mails and phones are never output. Labelled contacts in free text are redacted, and sole-trader suppliers are withheld | Usually included |
| Failure handling | Per-source success rates in RUN_STATS. One broken feed doesn't stop the others, and a run where everything fails fails loudly | Often silent empties |
| Price | $2.00 per 1,000 notices, and you only pay for notices that pass your filters | $2–$4 per 1,000 for a single country |
Sources
source | Country | What it covers | Stages | Licence |
|---|---|---|---|---|
canadabuys | 🇨🇦 Canada | Federal tender notices and contract award notices (CanadaBuys open-data CSVs, EN/FR) | open, planning (RFI/ACAN/LOI), awarded, cancelled, expired | Open Government Licence – Canada |
boamp | 🇫🇷 France | BOAMP official bulletin: all French public procurement notices | open, awarded, planning, amendments | Licence Ouverte / Etalab 2.0 |
tenderned | 🇳🇱 Netherlands | TenderNed publications (open TNS JSON) with CPV + NUTS codes | open, awarded, planning (market consultations), amendments, cancelled | CC0 1.0 |
austender | 🇦🇺 Australia | Awarded contract notices only (AusTender OCDS API). AusTender publishes no open tenders as open data | awarded | CC BY 3.0 AU |
eu_funding_tenders | 🇪🇺 EU institutions | Calls for tenders from the European Commission, EU agencies and EU external action (Funding & Tenders Portal search API). Tenders only, no EU grants. No award results | open, planning (forthcoming), closed | CC BY 4.0 (Commission reuse policy) |
worldbank | 🌍 World Bank borrowers | Optional: procurement notices for World Bank-financed projects (invitations for bids, expressions of interest, general procurement notices, contract-award notices) in EN/FR/ES/PT | open, planning, awarded | CC BY 4.0 |
worldbank_contracts | 🌍 World Bank borrowers | Optional: signed contracts only, with supplier and amount in USD | awarded | CC BY 4.0 |
ted · find_a_tender · contracts_finder | 🇪🇺 / 🇬🇧 | Optional: EU TED and the UK portals (same parsers as our UK & EU actor) | all | EU reuse decision / OGL v3 |
Canadian award notices are read only when noticeStage is awarded or all (they come from separate yearly award files). Each row is one contract award with the supplier's name, city, province and country. Street addresses are not output, and suppliers whose name looks like a private person (a sole trader) are shown as [individual supplier].
EU Funding & Tenders is on by default; the World Bank is opt-in. EU-institution tenders are few (29 open calls were published in the 7 days to Oct 9, 2026) and open to bidders from every EU country, so they fit a default run. The World Bank feeds serve a different audience (bidders on development projects in borrower countries) and are much larger (on Oct 8, 2026 the World Bank published 204 notices, 46 of them open for bids and 157 contract-award notices), so they would dominate a default run and its cost. Add worldbank and/or worldbank_contracts to sources to use them. eu_funding_tenders rows have country: "EU"; World Bank rows have the project country (null for regional projects, with the region in regions).
Australia is awarded-only. AusTender rows have awardedOnly: true and sourceLabel: "Australia AusTender (awarded contracts)". AusTender is skipped when you ask for open or planning notices, and the run log and RUN_STATS.skippedSources say so.
How to use it
- Keep the default sources or pick some.
- Add keywords in the notices' own languages (e.g.
software,logiciel,programmatuur) and/or CPV codes (FR/NL/EU/UK) and UNSPSC codes (CA/AU). Codes use prefix match. - Choose a stage:
open(default),awarded,planningorall. - Set last N days (default 3) and click Start.
Input example
{"sources": ["canadabuys", "boamp", "tenderned", "austender", "eu_funding_tenders"],"noticeStage": "open","keywords": ["software", "logiciel", "programmatuur"],"cpvCodes": ["72", "48"],"unspscCodes": ["43", "8111"],"daysBack": 3,"maxResults": 200}
| Field | What it does |
|---|---|
sources | Default canadabuys, boamp, tenderned, austender, eu_funding_tenders. Optional: worldbank, worldbank_contracts, ted, find_a_tender and contracts_finder |
noticeStage | open · awarded · planning · all |
keywords | Matches ANY term in the title, description or buyer name (case-insensitive) |
cpvCodes / unspscCodes | Prefix match on the scheme each source uses. A CPV filter doesn't remove UNSPSC-only sources unless strictClassification is on |
buyerCountries | ISO alpha-2. Mostly useful with TED and the World Bank sources (project country). Use EU for EU Funding & Tenders rows |
daysBack / publishedFrom / publishedTo | Publication window |
onlyOpenDeadlines | Drops open tenders whose deadline has passed (default on) |
minValue / maxValue | In the notice's own currency |
maxResults | Cap per source (0 = unlimited) |
tendernedDetails | Fetch CPV/NUTS codes for Dutch notices (default on) |
Daily alert
Schedule the actor every morning with daysBack: 1, then send the dataset to Google Sheets, Slack, e-mail or your CRM through Apify integrations. AI agents can call it through Apify's MCP server: "Find open French and Dutch tenders for cybersecurity services closing in the next month."
Output
Every notice has the same fields whatever its source. Here's a sample from a real run:
[{"source": "boamp","sourceLabel": "France BOAMP","country": "FR","noticeId": "26-95981","ocid": "276779eb-ec73-4815-ba5e-0557a28f98bc","url": "https://www.boamp.fr/pages/avis/?q=idweb:26-95981","title": "Collecte et traitement de déchets industriels dangereux, des boues, des effluents des aires de lavage et assainissement","description": "Collecte et traitement de déchets industriels dangereux, des boues, des effluents des aires de lavage et assainissement\n4 lots","language": "fr","noticeType": "Avis de marché","stage": "APPEL_OFFRE","noticeStage": "open","awardedOnly": false,"status": "INITIAL","buyerName": "EID Méditerranée","buyerId": null,"buyerCountry": "FR","buyerCity": null,"buyerPostcode": null,"buyerWebsite": null,"cpvCodes": ["90000000","90520000","90513700"],"classifications": [{"scheme": "CPV","code": "90000000","description": null},{"scheme": "CPV","code": "90520000","description": null},{"scheme": "CPV","code": "90513700","description": null}],"mainCategory": "services","procedure": "Procédure Ouverte","valueAmount": null,"valueCurrency": null,"publishedAt": "2026-10-07T00:00:00+02:00","deadlineAt": "2026-11-10T11:30:00+00:00","daysToDeadline": 33,"contractStart": null,"contractEnd": null,"regions": ["FR-dept-11","FR-dept-13","FR-dept-30"],"suitableForSme": null,"awards": [],"documents": [],"licence": "Licence Ouverte / Open Licence 2.0 (Etalab). Source: DILA, BOAMP, https://www.boamp.fr","licenceUrl": "https://www.etalab.gouv.fr/licence-ouverte-open-licence/","scrapedAt": "2026-10-08T02:06:11.106407+00:00"},{"source": "tenderned","sourceLabel": "Netherlands TenderNed","country": "NL","noticeId": "443485","ocid": "611919","url": "https://www.tenderned.nl/aankondigingen/overzicht/443485","title": "Inkoop softwareoplossing doelgroepenvervoer","description": "Vervoer Gooi en Vechtstreek BV dient een leverancier te contracteren die in staat is om per 1 januari 2028 een werkende integrale softwareoplossing aan te bieden voor het doelgroepenvervoer","language": "nl","noticeType": "Marktconsultatie","stage": "MAC","noticeStage": "planning","awardedOnly": false,"status": "Gepubliceerd","buyerName": "Vervoer Gooi en Vechtstreek B.V.","buyerId": null,"buyerCountry": "NL","buyerCity": null,"buyerPostcode": null,"buyerWebsite": null,"cpvCodes": ["72263000","72260000"],"classifications": [{"scheme": "CPV","code": "72263000","description": "Software-implementatiediensten"},{"scheme": "CPV","code": "72260000","description": "Diensten in verband met software"}],"mainCategory": "services","procedure": "Marktconsultatie","valueAmount": null,"valueCurrency": null,"publishedAt": "2026-10-07T21:54:00.602411+02:00","deadlineAt": "2026-10-14T00:00:00+02:00","daysToDeadline": 5,"contractStart": null,"contractEnd": null,"regions": ["NL327"],"suitableForSme": null,"awards": [],"documents": [{"description": "Notice PDF","url": "https://www.tenderned.nl/papi/tenderned-rs-tns/v2/publicaties/443485/pdf"}],"licence": "CC0 1.0. Source: TenderNed (PIANOo), https://www.tenderned.nl","licenceUrl": "https://creativecommons.org/publicdomain/zero/1.0/","scrapedAt": "2026-10-08T02:06:11.106407+00:00"},{"source": "canadabuys","sourceLabel": "Canada CanadaBuys","country": "CA","noticeId": "cb-575-61739960-000","ocid": "W8482-275752/A","url": "https://canadabuys.canada.ca/en/tender-opportunities?search_filter=W8482-275752%2FA","title": "UNIVERSAL JOINT, NONVEHICULAR- Halifax Class Spares","description": "NOTICE OF PROPOSED PROCUREMENT\nThe Department of National Defence has a requirement for the items detailed below. The delivery is requested at CFB Halifax and CFB Esquimalt. This procurement of UNIVERSAL JOINT,NONVEHICULAR and UNIVERSAL JOINT,GEARED,NONVEHICULAR Spares will su...","language": "en","noticeType": "Request for Proposal","stage": "Open","noticeStage": "open","awardedOnly": false,"status": "Open","buyerName": "Department of National Defence (DND)","buyerId": null,"buyerCountry": "Canada","buyerCity": "Ottawa","buyerPostcode": "K1A 0K2","buyerWebsite": null,"cpvCodes": [],"classifications": [{"scheme": "UNSPSC","code": "26111510","description": "Transmission shafts"}],"mainCategory": "goods","procedure": "Competitive - Open bidding","valueAmount": null,"valueCurrency": null,"publishedAt": "2026-10-06T00:00:00-05:00","deadlineAt": "2026-10-22T14:00:00-05:00","daysToDeadline": 14,"contractStart": null,"contractEnd": null,"regions": ["World"],"suitableForSme": null,"awards": [],"documents": [{"description": "Attachment","url": "https://canadabuys.canada.ca/sites/default/files/webform/tender_notice/108951/w8482-275752-a%2C-rfp-en.pdf"},{"description": "Attachment","url": "https://canadabuys.canada.ca/sites/default/files/webform/tender_notice/108951/w8482-275752-a.-sor--en.xlsx"}],"licence": "Open Government Licence - Canada. Contains information licensed under the Open Government Licence - Canada (CanadaBuys).","licenceUrl": "https://open.canada.ca/en/open-government-licence-canada","scrapedAt": "2026-10-08T02:06:11.106407+00:00"}]
Key fields: source, sourceLabel, country, noticeId, url, title, description, language, noticeType (original wording), noticeStage (normalised), awardedOnly, buyerName, buyerId, classifications (CPV/UNSPSC/GSIN codes), cpvCodes, valueAmount/valueCurrency, publishedAt, deadlineAt, daysToDeadline, regions, awards (suppliers and award values), documents, licence, licenceUrl.
Pricing
Pay-per-event: you pay only for notices delivered after your filters.
| Event | Price | What it is |
|---|---|---|
| Run start | $0.0005 | Charged once per run (covers start-up compute). |
| Tender notice | $0.002 ($2.00 per 1,000) | One normalised tender/award notice delivered to the dataset (after your filters). |
Examples:
- A daily IT-tenders alert across all four countries (~40 notices/day): about $0.08/day (≈ $2.50/month).
- One-off export of 5,000 awarded contracts: about $10.
- World Bank open notices, every day, all countries, no keyword filter (46 open notices on Oct 8, 2026): about $0.10/day. Adding all World Bank contract-award notices (157 that day) would add about $0.31/day, so use keywords or
buyerCountriesif you only need some of them.
Set a maximum cost per run in Apify, and the actor stops cleanly when it reaches it.
Data sources and licences
- CanadaBuys (Public Services and Procurement Canada): tender notice CSVs on open.canada.ca. Contains information licensed under the Open Government Licence – Canada.
- BOAMP (DILA): BOAMP dataset API on Opendatasoft. Licence Ouverte / Open Licence 2.0.
- TenderNed (PIANOo / Ministry of Economic Affairs): open TNS publication API. CC0 1.0.
- AusTender (Department of Finance): OCDS API. CC BY 3.0 AU.
- CanadaBuys award notices: yearly award-notice CSVs on open.canada.ca, same Open Government Licence – Canada.
- EU Funding & Tenders Portal (European Commission): the Commission's search API with the portal's public
SEDIAkey (no account, no login). Reused under the Commission's reuse policy (CC BY 4.0): Source: European Commission, EU Funding & Tenders Portal. Changes: fields selected and normalised, text cleaned, e-mail addresses and labelled phone numbers removed. Only calls for tenders are read; EU grants are not. - World Bank (optional): search.worldbank.org procurement-notice and contract APIs, CC BY 4.0 under the World Bank's dataset terms. Required attribution, which you must pass on if you share the data: The World Bank: Procurement Notice: World Bank Finances One and The World Bank: Contract Awards in Investment Project Financing: World Bank Finances One. Each row's
licencefield carries the right line. Changes: fields selected and renamed; contact people, World Bank staff names and individual consultants removed. - Every record carries
licenceandlicenceUrlso you can attribute correctly downstream. This actor is not affiliated with any of these publishers.
FAQ
Do I need API keys or accounts? No. Every source is a public, keyless open-data feed.
Why don't I see contact names, e-mails or phone numbers? That's on purpose: they're personal data. Each notice links to the official page (url), where you'll find the contact route.
Why does Australia only have awarded contracts? AusTender's open-data API publishes contract notices (awards). Open approaches to market aren't released as open data.
Why do Canadian tender notices have no value? CanadaBuys tender notices don't publish an estimated value. Set noticeStage to awarded (or all) to get Canadian award notices, which include the contract value and the supplier.
Why is a supplier shown as [individual supplier]? When an award goes to a private person (a sole trader or individual consultant), we withhold the name. France flags natural persons in their data; for Canada and the World Bank we use the World Bank's "Individual Consultant Selection" method and a name check. The name check is cautious: on the 2026-27 Canadian award file it withheld 47 of 4,441 rows (about 1%), and a handful of those were small firms with person-like names.
What time zone are World Bank deadlines in? The borrower's local time. The World Bank API gives no time zone, so deadlineAt has no UTC offset for these rows and daysToDeadline is approximate (±1 day).
Why do World Bank contract awards from last week keep appearing? worldbank_contracts uses the contract signing date, and borrowers often record contracts days or weeks after signing. For a complete picture use a window of 14 days or more and de-duplicate on noticeId.
Are EU Funding & Tenders notices also on TED? Most larger ones are. When the portal links a TED notice, it's in documents. If you select both ted and eu_funding_tenders, expect some overlap.
Do Dutch and French notices have values? When the buyer publishes one. BOAMP values come from the structured notice, and TenderNed's open list doesn't include values.
What if one country's feed is down? The other sources still deliver. RUN_STATS.perSource shows requests, success rate and items per source, and failedSources names any feed that failed completely. A run where every source fails ends as failed, not as an empty success.
Is the TenderNed API stable? It's the official open endpoint, but TenderNed notes it may change without notice. If it changes, TenderNed results may stop or be incomplete until we update the parser. The other sources aren't affected, and the per-source counts in RUN_STATS.perSource make a drop visible.
Support
Found a bug or need a source? Open an issue on the actor's Issues tab or email hello@crawlwren.com. Built and maintained by Crawlwren. Our sibling actors: UK & EU Public Tenders and SAM.gov Contract Opportunities.