France BOAMP Public Tenders & Contract Awards Scraper
Pricing
from $10.20 / 1,000 results
France BOAMP Public Tenders & Contract Awards Scraper
Scrape French public procurement notices and contract awards from BOAMP: title, buyer name with email and phone, contract type, CPV codes and labels, value, winning supplier, publication and deadline dates. Filter by keyword, CPV, department, buyer and date. Export to JSON, CSV or Excel.
Pricing
from $10.20 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
France BOAMP Public Tenders & Contract Awards Scraper
Here is one real result, with every field the actor returns (long French/English text trimmed for display, real values):
{"noticeId": "26-80198","reference": "26_80198","title": "2026A0234 - Fourniture et mise en œuvre de divers matériels de cuisine","noticeType": "Avis de marché","noticeNature": "APPEL_OFFRE","isAward": false,"family": "Marchés européens","scope": "DIRECTIVE-24","buyerName": "Département des Alpes-Maritimes - Direction de la Construction, de l'Immobilier et du Patrimoine","buyerEmail": "marches@departement06.fr","buyerPhone": "+33 497186000","buyerAddress": "Département des Alpes-Maritimes - Centre administratif départemental (CADAM)","buyerCity": "NICE CEDEX 3","buyerPostalCode": "06201","department": "6","performanceDepartment": null,"nutsCode": "FRL03","contractType": "Fournitures","cpvCodes": ["39314000"],"cpvDivisionLabels": ["Furniture, furnishings, appliances & cleaning products"],"descriptorCodes": ["108", "77"],"descriptorLabels": ["Electroménager", "Cuisine (équipement)"],"description": "Les dispositions envisagées pour appréhender le chantier de manière environnementale au regard de la charte chantier vert. Le candidat décrit son modèle de Schéma d'Organisation et de Gestion des Déchets (SOGED). [trimmed]","procedureType": "OUVERT","procedureLabel": "Procédure Ouverte","estimatedValueAmount": 5520000,"awardedValueAmount": null,"valueCurrency": "EUR","awardedSupplierNames": [],"awardedSupplierCount": 0,"state": "INITIAL","publicationDate": "2026-08-14","deadlineDate": "2026-09-21T13:30:00+00:00","endDiffusionDate": "2026-09-21","noticeUrl": "https://www.boamp.fr/pages/avis/?q=idweb:26-80198","matchedKeyword": null,"source": "BOAMP","observedAt": "2026-08-14T06:29:07.241Z","aiSummary": "The Alpes-Maritimes Department is seeking suppliers for the provision and implementation of various kitchen equipment, with a focus on environmental management and waste tracking. The estimated value of the contract is €5,520,000, and the deadline for submissions is September 21, 2026.","aiExtract": {"buyer": "Département des Alpes-Maritimes - Direction de la Construction, de l'Immobilier et du Patrimoine","value": "5520000 EUR","deadline": "2026-09-21T13:30:00+00:00","cpv": "39314000","eligibility": null},"aiTitleEn": "2026A0234 - Supply and Implementation of Various Kitchen Equipment","aiDescriptionEn": "The provisions planned to approach the project in an environmentally friendly manner in accordance with the green site charter. The candidate describes their Waste Organization and Management Scheme (SOGED). [trimmed]","aiTranslation": "Subject: 2026A0234 - Supply and Implementation of Various Kitchen Equipment\nDescription: The provisions planned to approach the project in an environmentally friendly manner [trimmed]"}
The most complete France BOAMP public procurement scraper available. It returns every field the BOAMP notice exposes for each tender or contract award, plus decoded CPV and descriptor labels, buyer contact details, awarded supplier names and three optional AI add-ons, and gives you keyword, CPV, department, buyer, procedure and date filters to target exactly the notices you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches the French BOAMP (Bulletin officiel des annonces des marchés publics) procurement dataset, applies the filters you pass as input, and writes one normalized record per notice to the run's dataset. CPV codes are decoded into readable division labels, descriptor codes into readable labels, buyer email and phone are pulled out, and contract award notices expose the winning supplier names and awarded value. Missing source values are returned as null.
Coverage is French public procurement: contract notices (tenders), contract award results, corrigenda and related notice types. Three optional AI add-ons write a plain-English summary (withAiSummary), extract structured fields (withAiExtract), and translate the French title and description to English (withAiTranslate); each is billed per successfully processed record and requires a paid Apify plan.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the 10 most recent notices matching "informatique".
{"keywords": ["informatique"],"maxTenders": 10,"sortBy": "newest"}
Every input field is optional. Each entry in keywords runs its own search across the whole notice. Leave keywords empty to browse the latest notices, and add cpvCode, departments, buyerName or noticeCategory to narrow.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | string[] | no | ["informatique"] | Keywords searched across title, object, buyer and description. Each runs its own search. |
cpvCode | string | no | (empty) | Keep only notices whose CPV codes start with this value, for example 72 or 45. |
departments | string[] | no | (empty) | French department codes, for example 75, 69, 13. |
buyerName | string | no | (empty) | Keep only notices whose buyer name contains this text, for example metropole. |
noticeCategory | enum | no | (any) | Notice type, for example Avis de marché (tender), Résultat de marché (award), Rectificatif. |
contractType | enum | no | (any) | Travaux (works), Services, or Fournitures (supplies). |
procedureType | enum | no | (any) | Procedure code, for example OUVERT, RESTREINT, PROCEDURE_ADAPTE, NEGOCIE, DSP. |
publishedFrom | string | no | (empty) | Only notices published on or after this date (YYYY-MM-DD). |
publishedTo | string | no | (empty) | Only notices published on or before this date (YYYY-MM-DD). |
deadlineFrom | string | no | (empty) | Only notices whose response deadline is on or after this date (YYYY-MM-DD). |
deadlineTo | string | no | (empty) | Only notices whose response deadline is on or before this date (YYYY-MM-DD). |
sortBy | enum | no | newest | newest, oldest, or deadline (soonest deadline first). |
maxTenders | integer | no | 10 | Maximum notices to collect across the whole run. Free plans are capped at 10. |
withAiSummary | boolean | no | false | AI plain-English summary. Billed per enriched record; paid plans only. |
withAiExtract | boolean | no | false | AI structured extract (buyer, value, deadline, CPV, eligibility). Billed per enriched record; paid plans only. |
withAiTranslate | boolean | no | false | AI translation of the French title and description to English. Billed per enriched record; paid plans only. |
Filters combine with logical AND. A single source query returns at most 10,000 notices; narrow with filters or date ranges for larger universes.
Output reference
One dataset item per notice. Types: string, integer, boolean, string[], object, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
noticeId | string | BOAMP notice id (unique per notice). |
reference | string | BOAMP internal reference. |
title | string | Notice title. |
noticeType | string | Notice type, for example Avis de marché, Résultat de marché. |
noticeNature | string | Notice nature code, for example APPEL_OFFRE, ATTRIBUTION. |
isAward | boolean | true when the notice is a contract award result. |
family | string | Notice family, for example Marchés européens. |
scope | string | Procurement scope, for example DIRECTIVE-24, MAPA. |
buyerName | string | Contracting authority (buyer) name. |
buyerEmail | string | Buyer email. |
buyerPhone | string | Buyer phone. |
buyerAddress | string | Buyer address, or null. |
buyerCity | string | Buyer city. |
buyerPostalCode | string | Buyer postal code. |
department | string | French department code of the buyer. |
performanceDepartment | string | Department where the contract is performed, or null. |
nutsCode | string | NUTS region code, or null. |
contractType | string | Travaux, Services, Fournitures, or null. |
cpvCodes | string[] | CPV codes on the notice. |
cpvDivisionLabels | string[] | Readable CPV division labels. |
descriptorCodes | string[] | BOAMP descriptor codes. |
descriptorLabels | string[] | Readable descriptor labels. |
description | string | Notice description text, or null. |
procedureType | string | Procedure code, for example OUVERT. |
procedureLabel | string | Readable procedure label. |
estimatedValueAmount | integer | Estimated contract value, or null. |
awardedValueAmount | integer | Awarded contract value (award notices), or null. |
valueCurrency | string | Value currency, for example EUR. |
awardedSupplierNames | string[] | Winning supplier names (award notices). |
awardedSupplierCount | integer | Number of winning suppliers. |
state | string | Notice state, for example INITIAL. |
publicationDate | string | Publication date (YYYY-MM-DD). |
deadlineDate | string | Response deadline (ISO), or null. |
endDiffusionDate | string | End of diffusion date (YYYY-MM-DD). |
noticeUrl | string | Public BOAMP notice URL. |
matchedKeyword | string | Which keyword produced this record, or null. |
source | string | Data source label (BOAMP). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
aiSummary | string | AI plain-English summary (add-on). |
aiExtract | object | AI structured extract (add-on). |
aiTitleEn | string | AI English title (add-on). |
aiDescriptionEn | string | AI English description (add-on). |
aiTranslation | string | AI full English translation (add-on). |
Example output record
Real contract award record from a live run (input {"keywords":["informatique"],"maxTenders":10,"sortBy":"newest"}):
{"noticeId": "26-79393","reference": "26_79393","title": "Extension multi-territoriale, évolutions structurelles, hébergement et interopérabilité de la plateforme ÉcoBoussole","noticeType": "Résultat de marché","noticeNature": "ATTRIBUTION","isAward": true,"family": "Marchés <90 k€ (MAPA)","scope": "MAPA","buyerName": "Agence Régionale du Tourisme Grand-Est","buyerEmail": "boamp@art-grandest.fr","buyerPhone": "0389298100","buyerAddress": null,"buyerCity": "Colmar","buyerPostalCode": "68000","department": "68","performanceDepartment": null,"nutsCode": null,"contractType": null,"cpvCodes": [],"cpvDivisionLabels": [],"descriptorCodes": ["163", "274"],"descriptorLabels": ["Informatique (prestations de services)", "Prestations de services"],"description": null,"procedureType": "PROCEDURE_ADAPTE","procedureLabel": "Procédure Adaptée","estimatedValueAmount": null,"awardedValueAmount": 85000,"valueCurrency": "EUR","awardedSupplierNames": ["LA COULEUR DU ZEBRE"],"awardedSupplierCount": 1,"state": "INITIAL","publicationDate": "2026-08-10","deadlineDate": null,"endDiffusionDate": "2026-11-07","noticeUrl": "https://www.boamp.fr/pages/avis/?q=idweb:26-79393","matchedKeyword": "informatique","source": "BOAMP","observedAt": "2026-08-10T14:35:29.586Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~france-boamp-tenders-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"keywords":["informatique"],"cpvCode":"72","departments":["75"],"maxTenders":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~france-boamp-tenders-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"noticeCategory":"Résultat de marché","contractType":"Services","maxTenders":100}'
Apify CLI:
apify call scrapers_lat/france-boamp-tenders-scraper \--input '{"buyerName":"metropole","sortBy":"deadline"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per notice returned (
resultevent). See the pricing tab for the current per-result price. - AI add-ons.
withAiSummary,withAiExtractandwithAiTranslateare billed separately per successfully processed record and require a paid Apify plan. They are skipped for free users. - No charge on failure. If a run errors or matches nothing, the actor writes a single item with an
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 notices per run. Upgrade for higher
maxTenders. - Source query ceiling. A single source query returns at most 10,000 notices. For larger universes, split the work with narrower filters or date ranges.
FAQ and troubleshooting
A run returned 0 records. Why? The filter combination matched nothing in BOAMP. Loosen filters (for example widen the date range or drop the CPV code), or check the keyword. Zero-result runs are not charged.
How do I get only contract awards with the winning supplier?
Set noticeCategory to Résultat de marché. Award notices populate awardedSupplierNames, awardedSupplierCount and awardedValueAmount.
Why is contractType or cpvCodes empty on some notices?
Small procedures (MAPA) and certain notice types do not always report a contract type or CPV code. Missing source values are returned as null or an empty array, never invented.
Can I translate the notices to English?
Yes. Enable withAiTranslate for an English title and description, or withAiSummary for a short English summary. Both are optional and require a paid plan.
Is this an official BOAMP tool? No. This actor is independent and has no affiliation with BOAMP or the DILA. It reads only publicly available procurement data. Use the results in accordance with the source's terms.
Related scrapers
- EU TED Tenders & Public Procurement Scraper
- UK Contracts Finder Tenders & Awards Scraper
- France Company Registry Scraper (SIREN, Officers, Finances)
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with BOAMP or the DILA. Accesses only publicly available procurement data. Use the results in accordance with the source's terms.
