Version bêta : des champs peuvent être ajoutés sans préavis. Aucun champ n'est renommé ni retiré dans /api/v1. Statut et versions

Opportunités

Sur cette page

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

NomEmplacementObligatoireTypeDescription
qquerynonstringMots recherchés dans le titre et le nom de l'acheteur (200 caractères au plus).
departementquerynonstringCodes 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.
cpvquerynonstringPréfixe de code CPV, de 2 à 8 chiffres (45 : tous les travaux de bâtiment et de génie civil).
budget_minquerynonstringBudget minimal en euros (entier).
budget_maxquerynonstringBudget maximal en euros (entier). Un avis sans budget reste servi quand seul budget_max est donné.
date_limite_minquerynonstringDate limite de réponse minimale (AAAA-MM-JJ), incluse.
date_limite_maxquerynonstringDate limite de réponse maximale (AAAA-MM-JJ), incluse.
score_minquerynonstringScore minimal de 0 à 100 (50 par défaut).
verdictquerynonstringVerdicts 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_utilisateurquerynonstringStatuts 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.
pagequerynonstringNuméro de page, à partir de 1 (1 par défaut). page × per_page ne peut pas dépasser 1000.
per_pagequerynonstringRésultats par page : 20 par défaut, 100 au plus.

Réponses

CodeDescription
200Succès.
400invalid_parameter : Paramètre invalide. ; page_too_deep : Page trop profonde : affinez votre recherche.
401unauthorized : Clé d'API manquante ou invalide.
403forbidden : Accès refusé : compte non Pro ou périmètre de la clé insuffisant.
429quota_exceeded : Quota journalier atteint. Il se renouvelle à minuit UTC. ; rate_limited : Trop de requêtes. Réessayez plus tard.
503unavailable : Service momentanément indisponible.

Exemple

bash
curl -H "X-API-Key: pk_live_VOTRE_CLE" "https://publikconnect.fr/api/v1/opportunites"

Demander une clé

  1. Avoir un compte Pro

    La clé est réservée aux comptes au plan Pro.

    Créer un compteVoir les offres

  2. Écrire au support

    support@publikconnect.fr

    Nous vérifions votre compte Pro puis vous répondons par e-mail avec votre clé.