France Public Tenders Scraper (BOAMP) — Marchés Publics API avatar

France Public Tenders Scraper (BOAMP) — Marchés Publics API

Pricing

from $1.14 / 1,000 tender notices

Go to Apify Store
France Public Tenders Scraper (BOAMP) — Marchés Publics API

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

jules imbert

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

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 and documentsUrl.
  • 🔔 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)

  1. Click Try for free and open the Input tab.
  2. Add keywords (for example informatique, nettoyage) and/or CPV prefixes (72 = IT services, 45 = construction works).
  3. Optionally pick départements, market types, a minimum estimated value or a buyer keyword.
  4. Click Start. Results appear in the Output tab within seconds.
  5. 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:

FieldWhat it does
keywordsFrench words searched in the notice title and BOAMP descriptors (any of them matches).
cpvPrefixesCPV code prefixes, e.g. 72 (IT services) or 45 (construction works) or 90910 (cleaning).
departmentsFrench département codes, e.g. 75, 69, 2A.
marketTypesTRAVAUX (works), SERVICES, FOURNITURES (supplies).
noticeTypesAPPEL_OFFRE (calls for tenders, default), ATTRIBUTION (awards), corrections, prior information…
publishedWithinDays / publishedFrom / publishedToPublication window.
openOnlyKeep only notices whose response deadline has not passed (default on).
minEstimatedValueEurMinimum estimated value in euros (drops notices without a value).
buyerKeywordText matched against the buyer name.
onlyNewSinceLastRun + stateKeyAlert mode: return only notices not delivered by earlier runs.
maxResultsMaximum 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:

GroupFields
NoticenoticeId, title, noticeType (contract_notice, award_notice, correction, prior_information…), noticeTypeLabel, status, procedure, noticeFamily, euThreshold, linkedNoticeIds
DatespublishedAt, responseDeadline, daysLeftToRespond, displayEndDate
BuyerbuyerName, buyerSiret, buyerSiren, buyerProfileUrl
ScopemarketTypes (works, services, supplies), cpvCodes, mainCpv, boampDescriptors, departmentCodes, executionPlace
Money & timeestimatedValueEur, frameworkMaximumEur, durationMonths
LotslotsCount, lots[] (title, cpv, estimatedValue)
Awardsawardees (winning companies, award notices only)
Links & provenancedocumentsUrl, 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 planPer tender noticePer 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.
  • buyerSiret is 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.

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.

  • 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

🇫🇷 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.