Des cas d'usage concrets avec des exemples curl prêts à copier. Pour la liste exhaustive des endpoints et de leurs paramètres, voir la Documentation.
Tous les appels demandent l'en-tête X-API-Key. Obtenez une clé gratuite en une requête :
curl -X POST https://tenderapi.fr/keys \
-H "Content-Type: application/json" \
-d '{"name": "Ma société", "email": "vous@exemple.fr"}'Récupérer les AO BTP (CPV 45) français publiés depuis le dernier passage. Le curseur published_after accepte l'ISO 8601 ou un alias relatif (24h, 7d, today) :
curl -H "X-API-Key: $KEY" \ "https://tenderapi.fr/tenders?source=boamp&status=open&cpv_family=45&published_after=24h&page_size=20"
Paginer avec page=2,3… tant que page × page_size < total. Chaque page compte pour 1 requête de quota.
AND implicite entre les mots, OR explicite en majuscules, phrases entre guillemets, insensible aux accents :
# Tous les mots doivent apparaître (AND) curl -H "X-API-Key: $KEY" "https://tenderapi.fr/tenders?keyword=maintenance+photovoltaïque" # OR explicite + phrase exacte curl -H "X-API-Key: $KEY" \ --data-urlencode 'keyword=BIM OR "maquette numérique" OR IFC' --get \ "https://tenderapi.fr/tenders" # Tri par pertinence (BM25) plutôt que par date curl -H "X-API-Key: $KEY" \ "https://tenderapi.fr/tenders?keyword=hydrogène&sort=relevance"
⚠️ La virgule et le pipe ne sont pas des OR : ils sont traités comme des caractères littéraux.
region accepte les slugs (ile-de-france, paca…), les anciennes régions pré-2016 (rhone-alpes…) et les codes INSEE (11, 76, 84…). department prend le code numérique (2A/2B pour la Corse) :
curl -H "X-API-Key: $KEY" \ "https://tenderapi.fr/tenders?region=11&cpv_family=72&deadline_after=today" curl -H "X-API-Key: $KEY" "https://tenderapi.fr/tenders?department=75,92,93"
Par nom, par établissement (SIRET 14 chiffres) ou par entreprise entière (SIREN 9 chiffres, qui agrège tous les établissements) :
# Par nom (partiel, insensible à la casse) curl -H "X-API-Key: $KEY" "https://tenderapi.fr/awards?winner_name=eiffage" # Par entreprise : tous les établissements du groupe curl -H "X-API-Key: $KEY" "https://tenderapi.fr/awards?winner_siren=479766842" # Par établissement précis curl -H "X-API-Key: $KEY" "https://tenderapi.fr/awards?winner_siret=47976684200724" # Marchés IT attribués en Occitanie depuis le 1er janvier curl -H "X-API-Key: $KEY" \ "https://tenderapi.fr/awards?cpv_family=72®ion=occitanie&awarded_after=2026-01-01"
Classement des entreprises qui gagnent le plus, par secteur / région / année :
# Qui gagne les marchés IT en Île-de-France en 2026 ? curl -H "X-API-Key: $KEY" \ "https://tenderapi.fr/awards/winner-intel?cpv_family=72®ion=ile-de-france&year=2026&limit=10" # Focus sur une entreprise (SIREN) : volume et montants curl -H "X-API-Key: $KEY" \ "https://tenderapi.fr/awards/winner-intel?winner_siren=479766842"
curl -X POST -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
https://tenderapi.fr/profiles \
-d '{"name": "Veille BTP 45 IDF", "cpv_family": ["45"], "region": ["ile-de-france"],
"channel": "webhook", "webhook_url": "https://exemple.fr/hook"}'curl -H "X-API-Key: $KEY" https://tenderapi.fr/me
| Code | Cause | Correction |
|---|---|---|
401 | En-tête X-API-Key absent ou clé invalide | Vérifier la clé ; créer une clé via POST /keys |
400 | page_size au-dessus du plafond du tier (free : 20, starter/pro : 50) | Réduire page_size ou upgrader |
400 | Paramètre inconnu (faute de frappe) | Le message liste les paramètres autorisés |
422 | Valeur invalide : cpv_family à 3 chiffres, région inconnue, SIRET à 9 chiffres… | Le message indique le format attendu (et « did-you-mean ») |
429 | Quota journalier atteint | Attendre le reset (00:00 UTC) ou upgrader |
200 + locked: true | /awards en tier free : le total est visible, les lignes sont réservées à starter+ | Le compteur total est exact ; upgrader pour voir les lignes |