Public Tender Data

Home › Guides

BOAMP open data : les appels d'offres en CSV, depuis les fichiers de la DILA

Le BOAMP publie chaque jour les avis de marchés publics français. La DILA les met à disposition en open data, sous Licence Ouverte 2.0, sous forme de fichiers XML sur echanges.dila.gouv.fr. Aucun compte ni clé API n’est nécessaire. Tous les exemples ci-dessous ont été testés le 3 novembre 2026.

1. Où sont les fichiers

Un dossier par jour : https://echanges.dila.gouv.fr/OPENDATA/BOAMP/AAAA/MM/JJ/. Le dossier du 2 novembre 2026 contenait 166 avis, un fichier par avis (26-106020.xml, 26-106021.xml, …), de 50 à 250 Ko chacun.

curl -s https://echanges.dila.gouv.fr/OPENDATA/BOAMP/2026/11/02/ | grep -o '26-[0-9]*\.xml' | sort -u | head
curl -s https://echanges.dila.gouv.fr/OPENDATA/BOAMP/2026/11/02/26-106020.xml -o avis.xml

2. Le format

3. Pourquoi les fichiers et pas l’API OpenDataSoft

Le portail OpenDataSoft du BOAMP propose une API, mais son robots.txt interdit /api/ aux robots. Les fichiers de la DILA n’ont pas cette restriction, et c’est la source officielle de réutilisation indiquée sur data.gouv.fr.

4. Extraire en CSV (Python)

import csv, re, httpx, xml.etree.ElementTree as ET
day = "https://echanges.dila.gouv.fr/OPENDATA/BOAMP/2026/11/02/"
ids = sorted(set(re.findall(r'href="(\d{2}-\d+\.xml)"', httpx.get(day).text)))
loc = lambda t: t.split("}")[-1]
with open("boamp.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.writer(f); w.writerow(["avis", "objet", "cpv"])
    for i in ids[:20]:  # soyez raisonnable : un petit délai entre les fichiers
        root = ET.fromstring(httpx.get(day + i).content)
        names = [e.text for e in root.iter() if loc(e.tag) == "Name" and e.text]
        cpv = [e.text for e in root.iter() if loc(e.tag) == "ItemClassificationCode" and e.text]
        w.writerow([i[:-4], names[0] if names else "", cpv[0] if cpv else ""])

Le premier champ Name n’est pas toujours l’objet du marché : en production, ciblez cac:ProcurementProject/cbc:Name.

5. Sans code

Le France Public Tenders Scraper (BOAMP) sur Apify lit ces mêmes fichiers de la DILA et gère les deux formats. Il filtre par période, CPV, mots-clés, départements, type d’avis et valeur minimale, puis exporte en CSV, Excel ou JSON, éventuellement chaque jour. Vous payez par avis.

Obtenir les avis BOAMP en CSV / API →

FAQ

La réutilisation commerciale est-elle autorisée ? Oui, sous Licence Ouverte 2.0, en mentionnant la source (BOAMP, DILA).

Les avis contiennent-ils des données personnelles ? Ils peuvent contenir le nom et les coordonnées d’un contact chez l’acheteur. Si vous les réutilisez, le RGPD s’applique. Notre outil ne les extrait pas.

Quelle fréquence ? Un dossier par jour de publication (environ 150 à 250 avis par jour ouvré).

Source : BOAMP, DILA, Licence Ouverte 2.0. Exemples testés le 2026-11-03.