BOAMP Public Procurement Scraper — French Government Tenders
Pricing
from $1.00 / 1,000 results
BOAMP Public Procurement Scraper — French Government Tenders
Scrape French public procurement notices from BOAMP open data by keyword, department, procedure type and estimated value.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Julien ApiKiy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
14 hours ago
Last modified
Categories
Share
French & EU Public Procurement Scraper — BOAMP + TED, Veille Marchés Publics 🇫🇷🇪🇺
Search and monitor public procurement notices (marchés publics / appels d'offres) from two official sources in one Actor:
- BOAMP — the French national tender bulletin (boamp.fr, DILA open data)
- TED — Tenders Electronic Daily, the EU-wide procurement journal (all 27 member states + EEA)
Filter by CPV code, keyword, department, buyer, country, publication date and deadline. Turn on monitor mode (veille) and the Actor returns only the new tenders on each run — and pushes them straight to Slack or a webhook. Perfect for B2G sales, bid teams, and market intelligence.
Why this Actor
- 🇫🇷🇪🇺 National + European in one run — combine BOAMP (France) and TED (all EU) with a single
sourcessetting. - 🎯 CPV filtering — target exactly your sector (e.g.
72= IT,45= construction,79= business services). Full 8-digit codes or category prefixes. - 🔔 Monitor mode (veille) — scheduled daily watch that emits only new tenders, so you never pay for or re-read the same notice twice.
- 📩 Alerts — new tenders delivered to Slack and/or a generic webhook (email services, Make, n8n, your CRM…).
- 🗓️ Date & deadline filters — exclude tenders that already closed; focus on a publication window.
- 🏛️ Rich, structured, deduplicated data — buyer, location, country, estimated value, procedure type, CPV codes, source URL.
- ⚖️ 100% legal — BOAMP and TED are official public open data, no authentication required.
Input
| Field | Description |
|---|---|
sources | Which sources to search: boamp (France), ted (EU), or both. Default ["boamp"]. |
keywords | Search keywords in the tender object (e.g. informatique, bâtiment). Empty = all. |
cpvCodes | CPV code(s) — full 8-digit (45432113) or prefixes for whole categories (45, 72, 79). A tender matches if any of its CPV codes starts with any value you give. |
countries | TED only — restrict to buyer countries by ISO3 code (FRA, DEU, ESP, ITA…). Empty = all EU. Ignored by BOAMP. |
department | BOAMP only — French department code (e.g. 75 = Paris, 54). Empty = all France. |
buyer | Buying organization name (e.g. Angers, CHU, Ministère). Partial, accent-insensitive. |
procedureType | all, ouvert, restreint, negocie, dialogue_competitif, partenariat_innovation. |
publishedFrom / publishedTo | Publication date window, YYYY-MM-DD. |
deadlineFrom / deadlineTo | Response-deadline window, YYYY-MM-DD. Use deadlineFrom = today to skip closed tenders. |
minEstimatedValue | Minimum estimated value in EUR. |
maxResults | Max matching tenders to return (1–10,000). |
monitorMode | When ON, remembers tenders from previous runs and returns only the new ones. |
monitorName | Label for the watch (e.g. IT-Paris). Each name keeps its own separate memory, so you can run several independent watches. |
slackWebhookUrl | Optional. In monitor mode, posts a summary of new tenders to this Slack Incoming Webhook. |
webhookUrl | Optional. In monitor mode, POSTs {monitorName, count, tenders[]} to this URL. |
Typical setups
One-off sourcing — all IT tenders in Paris, still open:
{ "cpvCodes": ["72"], "department": "75", "deadlineFrom": "2026-07-08", "maxResults": 200 }
Pan-EU sourcing — IT tenders across France + Germany + Spain (TED):
{ "sources": ["ted"], "cpvCodes": ["72"], "countries": ["FRA", "DEU", "ESP"], "maxResults": 200 }
Daily veille with Slack alerts, national + EU (schedule this on Apify to run every morning):
{"sources": ["boamp", "ted"],"cpvCodes": ["45", "71"],"monitorMode": true,"monitorName": "BTP-national-EU","slackWebhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ","maxResults": 500}
The first run seeds the memory; every run after that returns and alerts only newly published tenders.
Output
{"id": "25-88236","title": "Mission d'audits internes et assistance technique...","description": "Les prestations du marché concernent...","organization": "SID - Expertise et production nationale","organizationCity": "Versailles","organizationDepartment": "78","publicationDate": "2026-06-01T00:00:00.000Z","deadline": "2026-07-01T12:00:00.000Z","estimatedValue": 237500,"currency": "EUR","procedureType": "Procédure Ouverte","cpvCodes": ["71314200"],"cpvLabels": [],"url": "https://www.boamp.fr/pages/avis/?q=idweb:25-88236","scrapedAt": "2026-07-08T12:00:00.000Z"}
Every item carries a source ("boamp" or "ted") and a country (ISO3).
Notes:
estimatedValue/cpvCodescome from the notice itself for tenders published under the EU eForms format (2024+). Older BOAMP notices fall back to BOAMP's own descriptor codes forcpvCodes/cpvLabels, andestimatedValueisnullwhen the source doesn't disclose it.- CPV prefix filtering is applied to the extracted codes, so it works across BOAMP and TED.
- TED specifics:
deadline,description,organizationCityandprocedureTypeare not exposed by the TED search API and come backnull; use theurlto open the full notice. TED CPV-prefix filtering scans the newest notices within yourmaxResultswindow, so raisemaxResultsfor very narrow sectors.
Pricing
Pay-per-use, no monthly fees. In monitor mode you're only charged for new tenders, keeping a daily watch cheap.
Data source: BOAMP / DILA public open data — free, official, no authentication.