BOAMP Tenders Scraper (French public procurement, normalized) avatar

BOAMP Tenders Scraper (French public procurement, normalized)

Pricing

from $1.40 / 1,000 tender notices

Go to Apify Store
BOAMP Tenders Scraper (French public procurement, normalized)

BOAMP Tenders Scraper (French public procurement, normalized)

French public procurement notices from BOAMP (DILA open data) as clean JSON: one row per notice with CPV decoded (FR+EN), estimated and awarded values, deadline with days left, lots, winners, departments. Filter by department, family, kind, keywords; 'only new' mode. No personal data.

Pricing

from $1.40 / 1,000 tender notices

Rating

0.0

(0)

Developer

Radu Coman

Radu Coman

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Categories

Security

Limited permissions

Share

BOAMP Tenders Scraper: French public procurement, normalized for people and AI agents

Every public procurement notice published in France's official bulletin (BOAMP, Bulletin officiel des annonces des marchés publics) as one clean JSON row: buyer, departments, CPV codes decoded in French and English, estimated and awarded values, deadline with days left, lots, winners. Export French public tenders (appels d'offres, avis de marché, MAPA) and awards to JSON, CSV or Excel, set up a daily veille by département and CPV, and feed Google Sheets, n8n, Make or an AI agent.

BOAMP publishes about 600 notices a day: EU-level tenders (JOUE), national tenders between 90 k€ and the EU thresholds, and small adapted-procedure contracts (MAPA) that never reach the EU's TED. DILA exposes them as open data, but the useful details sit inside a nested XML-turned-JSON blob in three different formats (eForms UBL, FNSimple, MAPA). This Actor reads all three and returns one flat, predictable schema.

Who uses it

  • Bid teams and consultants in France who need every new avis de marché in their départements and sectors, every morning, in Excel or Google Sheets.
  • Companies selling to French public bodies who want to know which contracts were awarded, to whom and for how much (résultats de marché).
  • Analysts comparing procurement volumes by département, procedure and CPV.
  • AI agents and automations (n8n, Make, Zapier, MCP) that need flat JSON instead of three nested XML formats.

What you get per row

BlockFields
identityidweb, BOAMP page URL, publication date, end of publication, family (JOUE, FNS, MAPA, DSP) and label, notice kind (Avis de marché, Résultat de marché, Rectificatif…), status, procedure, market types
texttitle, description
buyername, city, postal code, NUTS region, SIRET, buyer profile URL
locationdepartments (codes), placeNuts (places of performance)
classificationdescriptors (BOAMP's own thesaurus), cpv with labelFr and labelEn, cpvDivisions
lotstitle, estimated value, currency, deadline; lotCount
valueestimated, awarded, framework maximum, currency
deadlinedate, date-time, daysLeft
awardwinners (titulaire), number of tenders received
extrasrelated notices, document links, data format used, source attribution, scrape timestamp

No contact persons, phone numbers or emails are extracted, in line with the dataset's personal-data conditions.

Input

  • Departments: codes such as 75, 13, 69, 2A, 971. Empty = all of France.
  • Families: EU-level, national, MAPA, public service delegations. Empty = all.
  • Notice kind: open tenders (default), awards, corrections…
  • Market type: services, works, supplies.
  • Keywords: full-text search.
  • Published in the last N days (default 3) or explicit dates.
  • Max items (default 500) and Only new since last run (monitoring mode).
{ "departments": ["75", "92", "93", "94"], "natures": ["Avis de marché"], "marketTypes": ["SERVICES"], "publishedSinceDays": 7 }
{ "natures": ["Résultat de marché"], "publishedFrom": "2026-10-01", "publishedTo": "2026-10-31", "maxItems": 5000 }

Pricing

Pay per event: $0.002 per notice row, charged only after the row is saved. No charge for platform usage. A daily monitor of all open tenders in France (about 350 rows per day) costs about $0.70 per day; one department costs cents.

Quality and limits

  • Every row is validated against a strict schema before it is saved; invalid rows are logged and never charged.
  • Tested on 240 real notices across the three data formats: CPV present on 100 % of EU-level and 85 %+ of national notices (MAPA notices carry no CPV in the source), deadline on more than 90 %, buyer city on more than 95 %.
  • Awarded amounts come from the eForms result block when the buyer published them; many award notices publish the winner without an amount.
  • The source API serves at most 10,000 rows per query; for larger extractions, split by dates.
  • Buyer profile and document links are kept only when they are real URLs.

Attribution and reuse

Data: BOAMP, DILA (Direction de l'information légale et administrative), published as open data on data.gouv.fr under the Licence Ouverte / Open Licence. Keep the attribution in meta.source when you redistribute.

How to use it

In the Apify Console: choose départements and notice kinds, press Start, download the dataset as JSON, CSV or Excel.

From your code (Apify API):

curl -X POST "https://api.apify.com/v2/acts/islandata~boamp-tenders-fr/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"departments": ["75"], "natures": ["Avis de marché"], "publishedSinceDays": 1}'

In n8n, Make or Zapier: use the Apify node or app, pick islandata/boamp-tenders-fr, schedule it daily with onlyNew: true and map the rows to Google Sheets, Airtable, Notion, Slack or email: a complete veille marchés publics in three nodes.

With an AI agent (MCP): connect the agent to https://mcp.apify.com?tools=islandata/boamp-tenders-fr. Flat JSON, small rows: the agent calls it with a département list and onlyNew: true, then ranks by value.estimated and deadline.daysLeft.

FAQ

Is this the official BOAMP API? It uses the official open-data API published by DILA on data.gouv.fr and returns its data normalized. No account or key is needed.

Does it include MAPA (small adapted-procedure contracts)? Yes. MAPA notices never reach the EU's TED and are the main reason to read BOAMP directly. Note that the source publishes no CPV for most MAPA notices.

Can I get awards (résultats de marché)? Yes: natures: ["Résultat de marché"] returns award notices with the winner (titulaire), the number of tenders received and, when published, the amount.

Does it include contact persons? No. Buyer organisations are public bodies and are included; contact names, phones and emails are not extracted, in line with the dataset's conditions.

Français : les marchés publics du BOAMP en JSON, CSV ou Excel

Chaque avis publié au BOAMP (appels d'offres, avis de marché, MAPA, résultats de marché, délégations de service public) devient une ligne JSON propre : acheteur, départements, codes CPV décodés en français et en anglais, montants estimés et attribués, date limite avec jours restants, lots, attributaires. Exportez les marchés publics vers Excel ou Google Sheets, mettez en place une veille quotidienne par département et par CPV, et connectez-la à n8n, Make ou à un agent IA.

Pour qui : équipes de réponse aux appels d'offres, consultants en marchés publics, entreprises qui vendent aux collectivités et à l'État, analystes, automatisations et agents IA.

Entrée : départements (75, 13, 69, 2A, 971…), familles (JOUE, national, MAPA, DSP), nature de l'avis (avis de marché, résultat, rectificatif), type de marché (services, travaux, fournitures), mots-clés, période de publication, mode « nouveaux uniquement ».

Prix : 0,002 $ par ligne enregistrée, sans frais de plateforme. La veille quotidienne de tous les appels d'offres ouverts en France (environ 350 lignes par jour) coûte environ 0,70 $ par jour ; un seul département, quelques centimes.

Source et réutilisation : données BOAMP de la DILA, publiées en open data sur data.gouv.fr sous Licence Ouverte. Aucune donnée personnelle (ni noms de contact, ni téléphones, ni e-mails). Conservez la mention de source meta.source en cas de rediffusion.