GET /attributions
Avis d'attribution
Identifiant d'opération : searchAttributions
Les avis d'attribution tels que les sources les publient (BOAMP et e-marchespublics aujourd'hui), du plus récent au plus ancien de leur date de publication. Chaque avis : id, source (code publié), titre, budget, date_publication, cpv, acheteur (nom, siret, departement), lien_source (lien vers l'avis d'origine), licence et mention (à afficher). LIMITE : ces avis ne portent AUCUN titulaire, AUCUN montant attribué et AUCUNE date d'attribution (la source ne les publie pas, et l'API ne les invente pas) ; budget est celui de l'avis, pas un montant attribué. Les gagnants et les montants sont dans les contrats DECP : GET /contrats. Aucun filtre n'est obligatoire. Pagination par curseur : meta.curseur_suivant dans curseur, meta.total seulement sur la première page. Mise en cache 60 s. Quota : famille decp. Périmètre requis : decp:read (403 si la clé ne le porte pas). Quota : réserve limite enregistrements (1 pour un détail) de la famille decp ; 429 quota_exceeded une fois la limite journalière atteinte.
Clé requise, périmètre decp:read.
Paramètres
| Nom | Emplacement | Obligatoire | Type | Description |
|---|---|---|---|---|
acheteur_siret | query | non | string | SIRET de l'acheteur, exactement 14 chiffres. |
departement | query | non | string | Un seul code de département (01 à 95, 2A, 2B, 971 à 978, 986 à 988) : département de l'acheteur. |
cpv | query | non | string | Préfixe de code CPV, de 2 à 8 chiffres (45 : travaux de bâtiment et de génie civil). |
date_min | query | non | string | Date de publication minimale (AAAA-MM-JJ), incluse. Doit précéder date_max. |
date_max | query | non | string | Date de publication maximale (AAAA-MM-JJ), incluse. |
limite | query | non | string | Résultats par page : 50 par défaut, 100 au plus. Réserve autant d'enregistrements du quota. |
curseur | query | non | string | Valeur de meta.curseur_suivant de la page précédente, à repasser telle quelle avec les mêmes filtres (limite peut changer). Un curseur illisible ou employé avec d'autres filtres donne 400 invalid_cursor. meta.curseur_suivant vaut null à la dernière page. |
Réponses
| Code | Description |
|---|---|
| 200 | Succès. |
| 400 | invalid_parameter : Paramètre invalide. ; invalid_cursor : Curseur invalide : repartez de la première page, sans curseur, avec les mêmes filtres. |
| 401 | unauthorized : Clé d'API manquante ou invalide. |
| 403 | forbidden : Accès refusé : compte non Pro ou périmètre de la clé insuffisant. |
| 429 | quota_exceeded : Quota journalier atteint. Il se renouvelle à minuit UTC. ; rate_limited : Trop de requêtes. Réessayez plus tard. |
| 503 | unavailable : Service momentanément indisponible. |
Exemple
curl -H "X-API-Key: pk_live_VOTRE_CLE" "https://publikconnect.fr/api/v1/attributions"GET /contrats
Contrats DECP
Identifiant d'opération : searchContrats
Les contrats de la commande publique (données essentielles, données actuelles seulement), du plus récent au plus ancien de leur date de notification : acheteur, titulaire, montant, CPV, nature, procédure, durée, offres reçues, forme de prix, sous-traitance, considérations sociales et environnementales, marché innovant. Chaque contrat : uid, objet, acheteur (siret, nom, departement), titulaire (siret, nom, departement, categorie), non_diffusible, montant, cpv, nature, procedure, date_notification, duree_mois, fin_estimee, lieu_execution, offres_recues, forme_prix, sous_traitance_declaree, considerations (sociales, environnementales) et marche_innovant. Toute valeur que le contrat ne renseigne pas vaut null. FILTRE OBLIGATOIRE : au moins un parmi acheteur_siret, titulaire_siret, titulaire_siren, departement et cpv, sinon 400 filter_required. departement est le département d'EXÉCUTION du contrat. q (recherche dans l'objet) n'est accepté qu'avec un acheteur ou un titulaire, sinon 400 invalid_parameter. fin_estimee n'est pas publiée par l'acheteur : elle est calculée (date_notification + duree_mois), d'où { date, estimation: true } (null sans durée). Un titulaire non diffusible (RGPD) a titulaire.siret et titulaire.nom à null et non_diffusible à true : ils ne sont jamais rendus. Pagination par curseur : meta.curseur_suivant dans curseur. meta.total n'est compté que sur la première page ET quand un acheteur ou un titulaire est demandé ; sinon null (compter 2,2 millions de lignes serait trop long), jamais un chiffre approximatif. Un filtre très large (par exemple un cpv à 2 chiffres ou un departement seul sur une longue période, sans autre filtre) peut dépasser le délai de la base (5 secondes) et répondre 503 unavailable, sans rien compter dans le quota : ajoutez un filtre (acheteur, titulaire, dates, montants). Mise en cache 60 s. Quota : famille decp. Périmètre requis : decp:read (403 si la clé ne le porte pas). Quota : réserve limite enregistrements (1 pour un détail) de la famille decp ; 429 quota_exceeded une fois la limite journalière atteinte.
Clé requise, périmètre decp:read.
Paramètres
| Nom | Emplacement | Obligatoire | Type | Description |
|---|---|---|---|---|
acheteur_siret | query | non | string | SIRET de l'acheteur, exactement 14 chiffres. Filtre indexé. |
departement | query | non | string | Un seul code de département (01 à 95, 2A, 2B, 971 à 978, 986 à 988) : département d'EXÉCUTION du contrat, pas le siège de l'acheteur. Filtre indexé. |
cpv | query | non | string | Préfixe de code CPV, de 2 à 8 chiffres. Filtre indexé. |
date_min | query | non | string | Date de notification minimale (AAAA-MM-JJ), incluse. |
date_max | query | non | string | Date de notification maximale (AAAA-MM-JJ), incluse. |
limite | query | non | string | Résultats par page : 50 par défaut, 100 au plus. Réserve autant d'enregistrements du quota. |
curseur | query | non | string | Valeur de meta.curseur_suivant de la page précédente, à repasser telle quelle avec les mêmes filtres (limite peut changer). Un curseur illisible ou employé avec d'autres filtres donne 400 invalid_cursor. meta.curseur_suivant vaut null à la dernière page. |
titulaire_siret | query | non | string | SIRET du titulaire, exactement 14 chiffres. Filtre indexé. |
titulaire_siren | query | non | string | SIREN du titulaire, exactement 9 chiffres (tous ses établissements). Filtre indexé. |
montant_min | query | non | string | Montant minimal en euros (entier), au plus égal à montant_max. |
montant_max | query | non | string | Montant maximal en euros (entier). |
q | query | non | string | Mots recherchés dans l'objet du contrat (2 à 100 caractères). Accepté seulement avec acheteur_siret, titulaire_siret ou titulaire_siren : sinon 400 invalid_parameter. |
Réponses
| Code | Description |
|---|---|
| 200 | Succès. |
| 400 | invalid_parameter : Paramètre invalide. ; filter_required : Filtre obligatoire : indiquez au moins acheteur_siret, titulaire_siret, titulaire_siren, departement ou cpv. ; invalid_cursor : Curseur invalide : repartez de la première page, sans curseur, avec les mêmes filtres. |
| 401 | unauthorized : Clé d'API manquante ou invalide. |
| 403 | forbidden : Accès refusé : compte non Pro ou périmètre de la clé insuffisant. |
| 429 | quota_exceeded : Quota journalier atteint. Il se renouvelle à minuit UTC. ; rate_limited : Trop de requêtes. Réessayez plus tard. |
| 503 | unavailable : Service momentanément indisponible. |
Exemple
curl -H "X-API-Key: pk_live_VOTRE_CLE" "https://publikconnect.fr/api/v1/contrats"Demander une clé
Avoir un compte Pro
La clé est réservée aux comptes au plan Pro.
Écrire au support
Nous vérifions votre compte Pro puis vous répondons par e-mail avec votre clé.