France Public Tenders Scraper (BOAMP) — Marchés Publics API
Pricing
from $1.14 / 1,000 tender notices
France Public Tenders Scraper (BOAMP) — Marchés Publics API
French public tenders scraper (appels d'offres, marchés publics) on the official BOAMP open data API: open calls with deadline, CPV codes, estimated value, duration, lots, buyer SIRET, documents link; award notices with winners. Filter by keyword, CPV, département. No personal contact data.
Pricing
from $1.14 / 1,000 tender notices
Rating
0.0
(0)
Developer
jules imbert
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
France Public Tenders Scraper (BOAMP) — Marchés Publics, CPV, Value & Deadlines
France Public Tenders Scraper turns BOAMP — the official French bulletin of public procurement notices — into clean JSON, CSV or Excel. It returns open calls for tenders (appels d'offres) with response deadline, days left, CPV codes, estimated value, duration, lots, buyer SIRET and the link to the tender documents (DCE), plus award notices with the winning companies. It reads the official open data API, so there is no browser, no proxy and no personal contact data.
Try it in one click: the default input returns the newest open French tenders of the last 7 days in a few seconds.
🇫🇷 Appels d'offres et avis d'attribution du BOAMP (open data DILA) : veille marchés publics par mots-clés, CPV, département et date limite. Version française en bas de page.
What does France Public Tenders Scraper do?
- 📑 Collects every BOAMP notice family: national notices (FNS), MAPA (adapted procedures), European notices published in BOAMP (eForms) and concessions (DSP).
- 🎯 Filters before you pay: keywords, CPV prefixes, départements, works / services / supplies, notice type, minimum estimated value, buyer name, publication window and "still open" only.
- ⏱️ Gives you what a bid / no-bid decision needs in one row: deadline and
daysLeftToRespond, estimated value or framework maximum, duration in months, lots, procedure, EU-threshold flag anddocumentsUrl. - 🔔 Works as a tender alert: with
onlyNewSinceLastRun: true, each scheduled run returns only notices you have not received yet. - ⚡ Runs fast and cheap: direct official API, 100 notices in a few seconds.
- ✅ Stays legal and clean: Licence Ouverte v2.0 data, attribution in every record, and procurement officers' names, e-mails and phones are never extracted.
Who is it for? Use cases
- SMEs and bid teams answering French public tenders: get a daily shortlist of open calls in your CPV codes and region.
- Tender-alert and procurement SaaS: feed your product with normalised BOAMP data through the Apify API.
- Sales intelligence: see which public buyers are buying what, and who wins contracts in your sector (award notices).
- Consultants and market analysts: measure public demand by CPV, département or buyer over time.
- AI agents: call the Actor from the Apify MCP server to answer "which open IT tenders in Île-de-France close this month?".
How to scrape French public tenders (BOAMP)
- Click Try for free and open the Input tab.
- Add keywords (for example
informatique,nettoyage) and/or CPV prefixes (72= IT services,45= construction works). - Optionally pick départements, market types, a minimum estimated value or a buyer keyword.
- Click Start. Results appear in the Output tab within seconds.
- Download them as JSON, CSV or Excel, or schedule the run and send new notices to Slack, e-mail or Google Sheets.
Input
All fields are optional. The main ones:
| Field | What it does |
|---|---|
keywords | French words searched in the notice title and BOAMP descriptors (any of them matches). |
cpvPrefixes | CPV code prefixes, e.g. 72 (IT services) or 45 (construction works) or 90910 (cleaning). |
departments | French département codes, e.g. 75, 69, 2A. |
marketTypes | TRAVAUX (works), SERVICES, FOURNITURES (supplies). |
noticeTypes | APPEL_OFFRE (calls for tenders, default), ATTRIBUTION (awards), corrections, prior information… |
publishedWithinDays / publishedFrom / publishedTo | Publication window. |
openOnly | Keep only notices whose response deadline has not passed (default on). |
minEstimatedValueEur | Minimum estimated value in euros (drops notices without a value). |
buyerKeyword | Text matched against the buyer name. |
onlyNewSinceLastRun + stateKey | Alert mode: return only notices not delivered by earlier runs. |
maxResults | Maximum number of notices (caps the cost). |
Input example: IT tenders still open, worth at least €100k
{"keywords": ["informatique", "logiciel", "infogérance"],"cpvPrefixes": ["72", "48"],"marketTypes": ["SERVICES"],"publishedWithinDays": 14,"openOnly": true,"minEstimatedValueEur": 100000,"maxResults": 200}
Input example: daily alert for cleaning contracts in Île-de-France
{"keywords": ["nettoyage", "propreté"],"departments": ["75", "77", "78", "91", "92", "93", "94", "95"],"publishedWithinDays": 3,"onlyNewSinceLastRun": true,"stateKey": "idf-cleaning"}
Input example: who won construction contracts in Rhône last month
{ "noticeTypes": ["ATTRIBUTION"], "marketTypes": ["TRAVAUX"], "departments": ["69"], "publishedWithinDays": 30 }
Output
Each notice is one dataset item. Fields:
| Group | Fields |
|---|---|
| Notice | noticeId, title, noticeType (contract_notice, award_notice, correction, prior_information…), noticeTypeLabel, status, procedure, noticeFamily, euThreshold, linkedNoticeIds |
| Dates | publishedAt, responseDeadline, daysLeftToRespond, displayEndDate |
| Buyer | buyerName, buyerSiret, buyerSiren, buyerProfileUrl |
| Scope | marketTypes (works, services, supplies), cpvCodes, mainCpv, boampDescriptors, departmentCodes, executionPlace |
| Money & time | estimatedValueEur, frameworkMaximumEur, durationMonths |
| Lots | lotsCount, lots[] (title, cpv, estimatedValue) |
| Awards | awardees (winning companies, award notices only) |
| Links & provenance | documentsUrl, url (boamp.fr), source, sourceApiUrl, sourceLicense, attribution, scrapedAt |
Output example
{"noticeId": "26-104014","title": "Prestations d'assurances pour le compte du Théâtre National de l'Odéon","noticeType": "contract_notice","marketTypes": ["services"],"procedure": "Procédure Ouverte","euThreshold": true,"publishedAt": "2026-10-27","responseDeadline": "2026-12-01T11:00:00+00:00","daysLeftToRespond": 36,"buyerName": "Théâtre National de l'Odéon","buyerSiret": "78427618000014","departmentCodes": ["75"],"cpvCodes": ["66510000", "66516000", "66514100", "66515000"],"durationMonths": 48,"lotsCount": 7,"documentsUrl": "https://www.marches-publics.gouv.fr/?page=Entreprise.EntrepriseAdvancedSearch&AllCons&id=3091747&orgAcronyme=f5j","url": "https://www.boamp.fr/pages/avis/?q=idweb:26-104014","sourceLicense": "Licence Ouverte / Open Licence v2.0 (Etalab)","attribution": "Source : BOAMP — boamp.fr / DILA, avis 26-104014 publié le 2026-10-27 — Licence Ouverte v2.0"}
How much does it cost to scrape French public tenders?
Pay per event, with no platform-usage fee on top: you only pay for notices that match your filters, and maxResults caps the cost.
| Apify plan | Per tender notice | Per 1,000 notices |
|---|---|---|
| Free | $0.0019 | $1.90 |
| Starter (Bronze) | $0.00171 | $1.71 |
| Scale (Silver) | $0.001425 | $1.43 |
| Business (Gold) and above | $0.00114 | $1.14 |
Plus $0.0003 per run start. A daily alert returning 50 new notices costs about $0.10 on the Free plan. Check the Pricing tab for the current price.
Integrations and API
- API: run the Actor and fetch results over HTTP, or with the Apify Python and JavaScript clients (see the API tab for ready-made code).
- Schedules: run it every morning to build a tender alert.
- Integrations: send new notices to Slack, e-mail, Google Sheets, Airtable or a webhook, or connect it to Make, Zapier or n8n.
- AI agents: available as a tool through the Apify MCP server.
Data quality and limits
- CPV, value, duration and lots are extracted from the structured notice (FNS, MAPA or eForms schema). About 4 in 10 notices publish an estimated value, so
minEstimatedValueEur> 0 drops notices without one. buyerSiretis the first 14-digit identifier found in the buyer block. It is best-effort for eForms notices with several organisations.- BOAMP is updated twice a day by DILA, and the API is queried live at each run.
FAQ
Is this a BOAMP API?
It uses the official BOAMP open data API published by DILA and returns clean, flattened records. Call it through the Apify API (HTTP, Python, JavaScript) or from Make, Zapier or n8n.
How do I set up French public tender alerts?
Schedule the Actor daily with your keywords or CPV prefixes and onlyNewSinceLastRun: true, then send new notices to Slack, e-mail, Google Sheets or a webhook.
Does it cover European (TED) tenders?
It covers European notices for French buyers that are published in BOAMP. Tenders from other EU countries on TED are not included.
Do you extract buyer contact names, e-mails or phones?
No, never. Only organisations (buyer, SIRET, awardees) are returned.
Is scraping BOAMP legal?
Yes. BOAMP data is published under the Licence Ouverte v2.0, which allows free commercial reuse with attribution. Every record carries source, sourceApiUrl, publishedAt and attribution.
Legal: source, licence, personal data
- Data: BOAMP (Bulletin officiel des annonces des marchés publics), published by the DILA (Direction de l'information légale et administrative, Premier ministre) through its official open data API. Licence: Licence Ouverte / Open Licence v2.0. DILA asks reusers to credit boamp.fr / DILA, the access URL and the date.
- No personal contact data: notices often contain the name, e-mail and phone of a procurement officer. This Actor never extracts those fields. Award winners (
awardees) are the official names of the contracting companies as published by law. - Not affiliated with or endorsed by DILA or the French administration.
Other French open data Actors
- France Building Permits Scraper (Sitadel): construction leads from permits.
- France New Companies (BODACC + SIRENE): newly registered companies.
- French Jobs Scraper (Emploi France): open-licence job offers.
- SAM.gov Contract Opportunities: the US federal equivalent.
🇫🇷 En français
Veille marchés publics BOAMP en open data. Appels d'offres en cours (date limite, jours restants, codes CPV, montant estimé, durée, lots, SIRET de l'acheteur, lien vers le DCE) et avis d'attribution (titulaires). Filtres : mots-clés, CPV, département, travaux/services/fournitures, montant minimum, acheteur ; mode alerte « uniquement les nouveaux avis ». Tarif : 0,0019 $ par avis (moins cher sur les offres payantes Apify), sans frais de plateforme. Aucune donnée de contact personnelle. Source : BOAMP — boamp.fr / DILA, Licence Ouverte v2.0.