BOAMP France Public Tenders Scraper
Pricing
Pay per usage
BOAMP France Public Tenders Scraper
French public procurement tenders from BOAMP — appels d'offres, MAPA and award results, updated daily. Filter by sector, department, deadline, keywords; get clean JSON with buyer, deadline and direct notice links.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Hermingway
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Veille automatisée des marchés publics français — appels d'offres, MAPA et avis d'attribution, en JSON propre. Automated monitoring of French public procurement — tender notices, MAPA procedures and award results, as clean JSON.
Pourquoi cet Actor ?
Chaque jour ouvré, environ 400 avis de marchés publics sont publiés sur BOAMP — près de 2 000 par semaine, 1,7 million depuis 2015. Les lire à la main est impossible ; les manquer coûte des contrats. Cet Actor interroge la source officielle (DILA / bulletin BOAMP) et rend chaque avis exploitable : acheteur, date limite de remise, objet, département, descripteurs — dans un JSON structuré, prêt pour votre veille, vos alertes ou votre CRM.
Why this Actor?
- Official data, no scraping fragility — queries the DILA open-data mirror of the BOAMP bulletin. No proxies, no CAPTCHAs, no HTML parsing that breaks when the site redesigns.
- Fast: a Rust core fetches pages concurrently; a full sweep of the day's notices takes seconds, not minutes. Your compute bill stays tiny.
- Server-side filtering: département, market type, procedure family and BOAMP descripteur codes are filtered at the source, so you don't pay to download notices you'll throw away.
- New-only alert mode: schedule daily runs and get only notices you have never seen before — a monitoring feed, not a repeated scrape.
Sample output
{"idweb": "26-88433","objet": "Accord-cadre à bons de commande relatif à l'acquisition de Dvd vidéo pour le réseau des bibliothèques de la Ville de Perpignan","nomAcheteur": "Mairie de Perpignan","nature": "APPEL_OFFRE","natureLibelle": "Avis de marché","famille": "FNS","familleLibelle": "Marchés entre 90 k€ et seuils européens","procedure": "Procédure Ouverte","typesMarche": ["FOURNITURES"],"departements": ["66"],"descripteurs": ["Cd, DVD"],"descripteurCodes": ["45"],"dateParution": "2026-09-11","dateLimiteReponse": "2026-10-09T12:00:00+00:00","urlAvis": "https://www.boamp.fr/pages/avis/?q=idweb:26-88433"}
Example input configurations
IT services tenders in Paris, deadline ahead:
{"nature": ["APPEL_OFFRE"],"descripteurs": ["163", "186"],"departements": ["75", "77", "78", "91", "92", "93", "94", "95"],"deadlineFrom": "2026-09-13"}
Construction works (Bâtiment, code 33) nationwide, published this week:
{"nature": ["APPEL_OFFRE"],"typeMarche": ["TRAVAUX"],"descripteurs": ["33"],"dateFrom": "2026-09-07"}
Daily award-notices alert (new-only mode):
{"nature": ["ATTRIBUTION"],"dateFrom": "2026-09-12","newOnly": true}
Everything mentioning "informatique":
{"query": "informatique","maxPages": 20}
Input fields
| Field | Type | Meaning |
|---|---|---|
nature | list | Notice type: APPEL_OFFRE (call for tenders), ATTRIBUTION (award), RECTIFICATIF, PRE-INFORMATION, MODIFICATION, ANNULATION, INTENTION_CONCLURE, EX_ANTE_VOLONTAIRE, AUTRE. Default: APPEL_OFFRE + ATTRIBUTION. |
famille | list | JOUE (EU-threshold), FNS (90 k€ to EU thresholds, national), MAPA (below 90 k€), plus DSP (délégations de service public) and DIVERS. |
typeMarche | list | TRAVAUX / FOURNITURES / SERVICES. |
departements | list | Two-digit codes (75 = Paris). Empty = all France. |
descripteurs | list | BOAMP descripteur codes, filtered server-side. See table below. |
query | string | Server-side full-text search on the notice. |
keywords | list | Client-side OR filter on object + descriptors (applied after fetch). |
dateFrom | date | Only notices published on/after (YYYY-MM-DD). |
deadlineFrom | date | Only notices with response deadline on/after. |
maxPages | int | Max API pages (100 notices/page). Default 5. |
maxItems | int | Stop after N notices (0 = no limit). |
newOnly | bool | Emit only notices never returned in any previous run of this Actor. State persists in the Actor's key-value store. First run returns everything — combine with dateFrom to start clean. |
Common descripteur codes
| Code | Libellé |
|---|---|
| 33 | Bâtiment |
| 163 | Informatique (prestations de services) |
| 162 | Informatique (matériel) |
| 186 | Logiciel |
| 197 | Maîtrise d'oeuvre |
| 196 | Maintenance |
| 105 | Electricité (travaux) |
| 116 | Espaces verts |
| 144 | Gros oeuvre |
| 239 | Nettoyage de locaux |
| 138 | Gardiennage |
| 66 | Concession (services restauration) |
The full official vocabulary (370 codes) is on data.boamp.fr. The Actor also returns each notice's descripteur codes and labels in the output, so you can discover the codes relevant to your sector from real data.
Field dictionary
| Output field | Always present | Meaning |
|---|---|---|
idweb | ✅ | Unique BOAMP notice ID (e.g. 26-88433). Use for dedup. |
objet | ✅ | Notice subject/title. |
nomAcheteur | ✅ | Buyer (entity that published the notice). |
urlAvis | ✅ | Direct link to the notice on boamp.fr. |
dateParution | ✅ | Publication date. |
nature / natureLibelle | ✅ | Notice type code + label. |
famille / familleLibelle | ✅ | Procedure family code + label. |
departements | most | Département(s) of execution. |
dateLimiteReponse | tender notices | Response deadline (ISO 8601). Absent on some award notices. |
descripteurs / descripteurCodes | most | Activity descriptors, labels + codes. |
typesMarche | most | TRAVAUX / FOURNITURES / SERVICES. |
procedure | most | Procedure name (e.g. Procédure Ouverte). |
titulaires | award notices | Winner(s) of the contract. |
criteres | sometimes | Award criteria (e.g. environmental). |
dateFinDiffusion | most | Last date the notice is published. |
Limitations (read before you buy)
- Sub-90k MAPA coverage is partial. Publication on BOAMP is optional below €90,000 HT, so many small MAPA markets never appear — even though the dataset does carry hundreds of thousands of them. If your market is sub-90k public work, BOAMP cannot be your only source.
- Buyer-profile-only notices are invisible. Some entities publish exclusively on their own profil acheteur without a BOAMP notice.
- Field richness varies. Pre-2024 notices carry less structured detail than eForms-era notices;
dateLimiteReponseis missing on some award notices. - No personal contact data. The Actor returns the buyer organisation, never named individuals — no natural person's name appears in the output.
- Source: DILA BOAMP open dataset — updated daily by the French government. This Actor is an independent tool and is not affiliated with DILA.
FAQ
Est-ce que l'Actor fonctionne pour la veille quotidienne ?
Oui — programmez une exécution quotidienne avec newOnly: true et dateFrom d'hier : vous ne recevez que les nouveaux avis.
Is this free to run? The underlying government dataset is free and public; the Actor charges only Apify platform compute, which is minimal thanks to the Rust core.
Comment récupérer les appels d'offres BOAMP en JSON ? C'est exactement ce que fait cet Actor : chaque avis est rendu en JSON structuré (acheteur, objet, deadline, département, descripteurs) dans le dataset Apify, exportable en CSV/Excel/JSON ou via API.
Does it cover EU-threshold (JOUE) notices? Yes — including notices also published on TED. Note that above-threshold notices appear in both BOAMP and TED; this Actor covers the BOAMP side.
Can I get award results with winners?
Yes — set nature: ["ATTRIBUTION"]. Award notices include titulaires when published.
Changelog
- 2026-09-13 — Added BOAMP descripteur-code server-side filtering, cross-run new-only alert mode, and maxItems early-stop. Rewritten buyer-facing README.
- 2026-09-12 — Initial release: nature/famille/type-marche/département filters, keyword and full-text search, deadline and date filters, concurrent Rust fetcher.
Links
- Official BOAMP portal — the source bulletin
- DILA BOAMP open dataset — the dataset this Actor queries
- TED (Tenders Electronic Daily) — EU-level publication
- data.boamp.fr — documentation of the descripteur vocabulary
Acteur indépendant, non affilié au gouvernement français. Independent tool, not affiliated with the French government.