GET /opportunites
Opportunités du compte
Identifiant d'opération : listOpportunites
Le fil du compte propriétaire de la clé : les avis qui correspondent à son profil, classés par score de pertinence décroissant, avec le score (0 à 100) et les raisons : le profil vient uniquement de la clé. C'est la réponse à « quels marchés correspondent à mon activité ? ». Paramètres : tous facultatifs, aucun autre n'est accepté, aucun ne peut être répété ; profil, profile_id, source, statut, montant_min, date_min et date_max n'existent pas ici et donnent un 400. Même forme d'avis que GET /avis (complétude, version, publie_aussi_sur et origines compris), plus score (score de pertinence du profil), raisons (pourquoi ce score ; clés possibles : distance, metier, budget et mode), verdict, statut_utilisateur et vu_le (date de première consultation par l'utilisateur, ou null). verdict est le verdict de l'évaluation automatique de la pertinence de l'avis pour ce profil (réalisée par deux modèles d'intelligence artificielle), { valeur: "oui" | "incertain" | "non", raison }, ou null si l'avis n'a jamais été évalué ; le filtre verdict sert oui,incertain par défaut, non (rejet par les deux modèles) seulement à la demande : le rejet par un seul modèle est traité comme incertain par le filtre, et un avis jamais évalué comme oui, comme dans l'application. Le champ verdict.valeur, lui, rend le verdict brut : un avis rejeté par un seul modèle peut donc porter valeur: "non" tout en étant servi par défaut ; un avis jamais évalué porte verdict: null. verdict.raison est la raison donnée par un modèle qui a rejeté l'avis (celle du plus grand des deux modèles en priorité), sinon celle de l'évaluation, sinon null. statut_utilisateur est le statut posé par l'utilisateur dans l'application (une des neuf valeurs du filtre ; lecture seule : l'API n'écrit aucun statut) ; ignored n'est servi qu'à la demande. Différence avec l'application : pour les comptes sans signal positif, l'écran de l'application applique une règle de filtrage plus prudente que celle de l'API, qui applique la même règle à tous les comptes. Aucune fenêtre de publication ; date_limite_min et date_limite_max bornent la date limite. liens.acheteur renvoie à la fiche publique de l'acheteur (null sans SIRET d'acheteur à 14 chiffres ; le lien peut renvoyer 404 dans moins de 1 % des cas). Les avis d'une source non servie sont écartés de la page (meta.total peut alors dépasser le nombre d'avis renvoyés). Jamais gardé en mémoire. Résultats limités à 1000 par recherche ; meta.total_exact vaut false au-delà. Périmètre requis : opportunites:read (403 si la clé ne le porte pas). Quota : réserve per_page enregistrements (1 pour un détail) de la famille general ; 429 quota_exceeded une fois la limite journalière atteinte.
Clé requise, périmètre opportunites:read.
Paramètres
| Nom | Emplacement | Obligatoire | Type | Description |
|---|---|---|---|---|
q | query | non | string | Mots recherchés dans le titre et le nom de l'acheteur (200 caractères au plus). |
departement | query | non | string | Codes de département séparés par des virgules (01 à 95, 2A, 2B, 971 à 978, 986 à 988 ; 20 au plus). Lieu d'exécution déclaré par l'acheteur. |
cpv | query | non | string | Préfixe de code CPV, de 2 à 8 chiffres (45 : tous les travaux de bâtiment et de génie civil). |
budget_min | query | non | string | Budget minimal en euros (entier). |
budget_max | query | non | string | Budget maximal en euros (entier). Un avis sans budget reste servi quand seul budget_max est donné. |
date_limite_min | query | non | string | Date limite de réponse minimale (AAAA-MM-JJ), incluse. |
date_limite_max | query | non | string | Date limite de réponse maximale (AAAA-MM-JJ), incluse. |
score_min | query | non | string | Score minimal de 0 à 100 (50 par défaut). |
verdict | query | non | string | Verdicts de l'évaluation automatique de la pertinence à servir, séparés par des virgules parmi oui, incertain, non (sans doublon). oui,incertain par défaut. non : l'avis a été rejeté par les DEUX modèles d'évaluation ; le rejet par un seul modèle compte pour incertain, et un avis jamais évalué pour oui. |
statut_utilisateur | query | non | string | Statuts posés par l'utilisateur à servir, séparés par des virgules parmi new, viewed, saved, applied, ignored, en_attente, en_cours, gagne, perdu (sans doublon). Tous sauf ignored par défaut. |
page | query | non | string | Numéro de page, à partir de 1 (1 par défaut). page × per_page ne peut pas dépasser 1000. |
per_page | query | non | string | Résultats par page : 20 par défaut, 100 au plus. |
Réponses
| Code | Description |
|---|---|
| 200 | Succès. |
| 400 | invalid_parameter : Paramètre invalide. ; page_too_deep : Page trop profonde : affinez votre recherche. |
| 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/opportunites"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é.