{
  "info": {
    "name": "API publique PublikConnect",
    "description": "Exemples d'appels de l'API de données PublikConnect (documentation : https://publikconnect.fr/docs/api). Renseignez la variable api_key (votre clé pk_live_…) ; la variable base_url pointe par défaut vers l'API de production. Les paramètres désactivés sont des exemples valides à cocher selon le besoin.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://publikconnect.fr/api/v1",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Avis : recherche (mode page)",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/avis?q=voirie&per_page=5",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "avis"
          ],
          "query": [
            {
              "key": "q",
              "value": "voirie",
              "description": "Mots du titre ou de l'acheteur (200 caractères au plus). Fournir q, tri ou page active le mode page."
            },
            {
              "key": "source",
              "value": "boamp,aji",
              "description": "Codes de sources séparés par des virgules (voir GET /sources).",
              "disabled": true
            },
            {
              "key": "departement",
              "value": "69,01",
              "description": "Codes de département séparés par des virgules (20 au plus).",
              "disabled": true
            },
            {
              "key": "cpv",
              "value": "45233140",
              "description": "Préfixe de code CPV, de 2 à 8 chiffres.",
              "disabled": true
            },
            {
              "key": "type_marche",
              "value": "Travaux",
              "description": "Travaux, Services ou Fournitures.",
              "disabled": true
            },
            {
              "key": "budget_min",
              "value": "50000",
              "description": "Budget minimal en euros (entier).",
              "disabled": true
            },
            {
              "key": "budget_max",
              "value": "500000",
              "description": "Budget maximal en euros (entier).",
              "disabled": true
            },
            {
              "key": "date_limite_min",
              "value": "2026-11-01",
              "description": "Date limite de réponse minimale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "date_limite_max",
              "value": "2026-12-31",
              "description": "Date limite de réponse maximale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "publie_depuis",
              "value": "2026-10-01",
              "description": "Date de publication minimale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "completude_min",
              "value": "70",
              "description": "Complétude minimale, de 0 à 100.",
              "disabled": true
            },
            {
              "key": "statut",
              "value": "ouvert",
              "description": "ouvert (défaut), clos ou tous.",
              "disabled": true
            },
            {
              "key": "tri",
              "value": "date_limite",
              "description": "date_limite ou publication.",
              "disabled": true
            },
            {
              "key": "page",
              "value": "1",
              "description": "Numéro de page, à partir de 1.",
              "disabled": true
            },
            {
              "key": "per_page",
              "value": "5",
              "description": "Résultats par page (100 au plus)."
            }
          ]
        },
        "description": "Mode page : dès que q, tri ou page est fourni. Limité à 1 000 résultats. Périmètre avis:read."
      }
    },
    {
      "name": "Avis : synchronisation (mode curseur)",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/avis?per_page=5",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "avis"
          ],
          "query": [
            {
              "key": "per_page",
              "value": "5",
              "description": "Résultats par page (100 au plus ; 50 par défaut en mode curseur)."
            },
            {
              "key": "curseur",
              "value": "",
              "description": "meta.curseur_suivant de la page précédente, avec les mêmes filtres.",
              "disabled": true
            },
            {
              "key": "updated_since",
              "value": "2026-10-08T09:50:00Z",
              "description": "ISO 8601 avec fuseau, 30 jours au plus dans le passé : meta.synchronise_jusqu_a de la synchronisation précédente.",
              "disabled": true
            },
            {
              "key": "source",
              "value": "boamp,aji",
              "description": "Codes de sources séparés par des virgules (voir GET /sources).",
              "disabled": true
            },
            {
              "key": "departement",
              "value": "69,01",
              "description": "Codes de département séparés par des virgules (20 au plus).",
              "disabled": true
            },
            {
              "key": "cpv",
              "value": "45233140",
              "description": "Préfixe de code CPV, de 2 à 8 chiffres.",
              "disabled": true
            },
            {
              "key": "statut",
              "value": "tous",
              "description": "ouvert (défaut), clos ou tous. Refusé avec updated_since.",
              "disabled": true
            }
          ]
        },
        "description": "Mode curseur (par défaut) : copie complète, puis reprise avec updated_since. Voir https://publikconnect.fr/docs/api/guide-synchronisation. Ne pas combiner avec q, tri ni page. updated_since refuse statut et ne remonte pas à plus de 30 jours : adapter la date d'exemple. Périmètre avis:read."
      }
    },
    {
      "name": "Avis : détail",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/avis/:id",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "avis",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": "6f1c2a52-8d0e-4b8c-9a55-2d6f6a1b7c10",
              "description": "UUID d'un avis, tiré de GET /avis."
            }
          ]
        },
        "description": "Un avis par identifiant, description complète et détail enrichi. Périmètre avis:read."
      }
    },
    {
      "name": "Opportunités : fil du compte",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/opportunites?per_page=5",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "opportunites"
          ],
          "query": [
            {
              "key": "q",
              "value": "voirie",
              "description": "Mots du titre ou de l'acheteur.",
              "disabled": true
            },
            {
              "key": "departement",
              "value": "69,01",
              "description": "Codes de département séparés par des virgules.",
              "disabled": true
            },
            {
              "key": "cpv",
              "value": "45233140",
              "description": "Préfixe de code CPV, de 2 à 8 chiffres.",
              "disabled": true
            },
            {
              "key": "budget_min",
              "value": "50000",
              "description": "Budget minimal en euros.",
              "disabled": true
            },
            {
              "key": "budget_max",
              "value": "500000",
              "description": "Budget maximal en euros.",
              "disabled": true
            },
            {
              "key": "date_limite_min",
              "value": "2026-11-01",
              "description": "AAAA-MM-JJ.",
              "disabled": true
            },
            {
              "key": "date_limite_max",
              "value": "2026-12-31",
              "description": "AAAA-MM-JJ.",
              "disabled": true
            },
            {
              "key": "score_min",
              "value": "60",
              "description": "Score minimal, de 0 à 100 (50 par défaut).",
              "disabled": true
            },
            {
              "key": "verdict",
              "value": "oui,incertain",
              "description": "oui, incertain, non, séparés par des virgules (oui,incertain par défaut).",
              "disabled": true
            },
            {
              "key": "statut_utilisateur",
              "value": "new,viewed,saved",
              "description": "Statuts posés par l'utilisateur (tous sauf ignored par défaut).",
              "disabled": true
            },
            {
              "key": "page",
              "value": "1",
              "description": "Numéro de page, à partir de 1.",
              "disabled": true
            },
            {
              "key": "per_page",
              "value": "5",
              "description": "Résultats par page (100 au plus)."
            }
          ]
        },
        "description": "Les avis qui correspondent au profil du compte propriétaire de la clé, par score décroissant. Périmètre opportunites:read."
      }
    },
    {
      "name": "Prestataires : recherche",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/prestataires?per_page=5",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "prestataires"
          ],
          "query": [
            {
              "key": "q",
              "value": "voirie",
              "description": "Mots du nom, 2 à 100 caractères.",
              "disabled": true
            },
            {
              "key": "departement",
              "value": "69",
              "description": "Un seul code : département principal d'activité.",
              "disabled": true
            },
            {
              "key": "cpv",
              "value": "45",
              "description": "Division CPV, exactement 2 chiffres.",
              "disabled": true
            },
            {
              "key": "taille",
              "value": "PME",
              "description": "PME, ETI ou GE.",
              "disabled": true
            },
            {
              "key": "tri",
              "value": "contrats",
              "description": "pertinence (avec q), contrats ou montant.",
              "disabled": true
            },
            {
              "key": "page",
              "value": "1",
              "description": "Numéro de page, à partir de 1.",
              "disabled": true
            },
            {
              "key": "per_page",
              "value": "5",
              "description": "Résultats par page (100 au plus)."
            }
          ]
        },
        "description": "Recherche des titulaires de marchés publics (un prestataire = un SIREN). Périmètre prestataires:read."
      }
    },
    {
      "name": "Prestataires : fiche",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/prestataires/:slug",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "prestataires",
            ":slug"
          ],
          "variable": [
            {
              "key": "slug",
              "value": "exemple-voirie-12345678901234",
              "description": "Slug tiré de GET /prestataires (champ slug)."
            }
          ]
        },
        "description": "Fiche publique d'un titulaire, avec principaux acheteurs et contrats à échéance. Périmètre prestataires:read."
      }
    },
    {
      "name": "Acheteurs : fiche",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/acheteurs/:siret",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "acheteurs",
            ":siret"
          ],
          "variable": [
            {
              "key": "siret",
              "value": "21380185500015",
              "description": "SIRET de l'acheteur, exactement 14 chiffres."
            }
          ]
        },
        "description": "Fiche d'un acheteur public à partir de son SIRET. Périmètre acheteurs:read."
      }
    },
    {
      "name": "Attributions : liste",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/attributions?limite=5",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "attributions"
          ],
          "query": [
            {
              "key": "acheteur_siret",
              "value": "21380185500015",
              "description": "SIRET de l'acheteur, 14 chiffres.",
              "disabled": true
            },
            {
              "key": "departement",
              "value": "38",
              "description": "Un seul code de département.",
              "disabled": true
            },
            {
              "key": "cpv",
              "value": "45",
              "description": "Préfixe de code CPV, de 2 à 8 chiffres.",
              "disabled": true
            },
            {
              "key": "date_min",
              "value": "2026-01-01",
              "description": "Date de publication minimale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "date_max",
              "value": "2026-10-08",
              "description": "Date de publication maximale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "limite",
              "value": "5",
              "description": "Résultats par page (100 au plus)."
            },
            {
              "key": "curseur",
              "value": "",
              "description": "meta.curseur_suivant de la page précédente, avec les mêmes filtres.",
              "disabled": true
            }
          ]
        },
        "description": "Avis d'attribution tels que les sources les publient (sans titulaire ni montant attribué : voir GET /contrats). Périmètre decp:read, quota decp."
      }
    },
    {
      "name": "Contrats : liste",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/contrats?acheteur_siret=21380185500015&limite=5",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "contrats"
          ],
          "query": [
            {
              "key": "acheteur_siret",
              "value": "21380185500015",
              "description": "SIRET de l'acheteur, 14 chiffres. Filtre indexé : un au moins est obligatoire."
            },
            {
              "key": "titulaire_siret",
              "value": "91111111100011",
              "description": "SIRET du titulaire, 14 chiffres. Filtre indexé.",
              "disabled": true
            },
            {
              "key": "titulaire_siren",
              "value": "911111111",
              "description": "SIREN du titulaire, 9 chiffres. Filtre indexé.",
              "disabled": true
            },
            {
              "key": "departement",
              "value": "38",
              "description": "Un seul code : département d'exécution. Filtre indexé.",
              "disabled": true
            },
            {
              "key": "cpv",
              "value": "45233140",
              "description": "Préfixe de code CPV. Filtre indexé.",
              "disabled": true
            },
            {
              "key": "date_min",
              "value": "2026-01-01",
              "description": "Date de notification minimale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "date_max",
              "value": "2026-10-08",
              "description": "Date de notification maximale (AAAA-MM-JJ).",
              "disabled": true
            },
            {
              "key": "montant_min",
              "value": "10000",
              "description": "Montant minimal en euros.",
              "disabled": true
            },
            {
              "key": "montant_max",
              "value": "500000",
              "description": "Montant maximal en euros.",
              "disabled": true
            },
            {
              "key": "q",
              "value": "voirie",
              "description": "Recherche dans l'objet, 2 à 100 caractères, avec un acheteur ou un titulaire.",
              "disabled": true
            },
            {
              "key": "limite",
              "value": "5",
              "description": "Résultats par page (100 au plus)."
            },
            {
              "key": "curseur",
              "value": "",
              "description": "meta.curseur_suivant de la page précédente, avec les mêmes filtres.",
              "disabled": true
            }
          ]
        },
        "description": "Contrats de la commande publique (DECP). Un filtre indexé au moins est obligatoire : acheteur_siret, titulaire_siret, titulaire_siren, departement ou cpv (sinon 400 filter_required). q n'est accepté qu'avec un acheteur ou un titulaire. Périmètre decp:read, quota decp."
      }
    },
    {
      "name": "Départements : liste",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/departements",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "departements"
          ]
        },
        "description": "Tous les départements et leur nombre d'avis ouverts. Toute clé valide, aucun quota."
      }
    },
    {
      "name": "Sources : registre",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/sources",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "sources"
          ]
        },
        "description": "Registre des sources d'avis (licence, mention, état, complétude). Toute clé valide, aucun quota."
      }
    },
    {
      "name": "Moi : clé et quota",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Authorization",
            "value": "Bearer {{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/moi",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "moi"
          ]
        },
        "description": "La clé, le plan du compte et le quota du jour UTC. Toute clé valide, aucun quota."
      }
    },
    {
      "name": "Santé",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/sante",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "sante"
          ]
        },
        "description": "État de l'API, sans clé. Inutile de l'interroger plus d'une fois par minute."
      }
    },
    {
      "name": "Document OpenAPI",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/openapi.json",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "openapi.json"
          ]
        },
        "description": "Document OpenAPI 3.1, sans clé. Importable dans Postman, Insomnia ou un générateur de client."
      }
    }
  ]
}
