Aller au contenu principal

Documentation de l'API

Le site que vous consultez n'utilise aucune route en dehors de celles listées ci-dessous. C'est une contrainte d'architecture, pas une promesse : tout ce que fait l'interface, une intégration peut le faire.

Authentification

Deux modes. Un jeton de session pour les comptes (Authorization: Bearer …), obtenu par POST /auth/login ou par lien magique. Une clé API pour les intégrations (X-API-Key: aak_…), créée depuis l'espace organisation, avec ses portées et son quota.

Les clés ne sont stockées que hachées : la valeur en clair n'est affichée qu'une fois, à la création.

Lancer un audit et récupérer le résultat

curl -X POST https://exemple/api/audit \ -H "X-API-Key: aak_votre_cle" \ -H "Content-Type: application/json" \ -d '{"adresse": "12 rue de la Paix, 75002 Paris", "profil": "acheteur"}' # 202 { "audit_id": "…", "statut": "en_cours", "quota": { … } } curl https://exemple/api/audit/AUDIT_ID -H "X-API-Key: aak_votre_cle" curl https://exemple/api/audit/AUDIT_ID/data -H "X-API-Key: aak_votre_cle" curl https://exemple/api/audit/AUDIT_ID/pdf -H "X-API-Key: aak_votre_cle" -o rapport.pdf

POST /audit répond 202 : le calcul est asynchrone (15 à 35 secondes). Le quota est vérifié avant lancement — un refus arrive en 402 ou 429 sans qu'aucune requête n'ait été émise vers une source externe, donc sans facturation surprise.

Toutes les routes

Les routes publiques de la plateforme.
RouteCe qu'elle fait
POST /auth/registerCrée un compte particulier.
POST /auth/loginJeton de session par mot de passe.
POST /auth/magic-linkEnvoie un lien de connexion (15 min, usage unique).
POST /auth/magic-link/verifyÉchange le lien contre un jeton de session.
GET /meCompte courant et consommation du mois.
POST /auditLance un audit. 202 + identifiant.
GET /audit/{id}Statut, progression, liens.
GET /audit/{id}/dataL'audit complet en JSON.
GET /audit/{id}/pdfLe rapport imprimé.
DELETE /audit/{id}Supprime un audit et ses données.
GET /auditsHistorique. q=, tri=, format=json|csv.
GET /audits/compare?ids=a,b2 à 5 audits côte à côte.
POST /audits/batchLot d'adresses (organisations).
GET /org/membersMembres et quota de l'organisation.
POST /org/membersAjoute un membre (org_admin).
DELETE /org/members/{id}Retire un membre (org_admin).
GET /org/api-keysListe les clés (org_admin).
POST /org/api-keysCrée une clé (org_admin).
GET /admin/metricsSanté des sources (administrateur).
GET /admin/auditsDerniers audits (administrateur).
GET /healthDisponibilité du service.

Codes de retour et limites

Ce que renvoie un audit

GET /audit/{id}/data renvoie l'objet complet : adresse normalisée, fiche du bien, les 23 modules avec leur statut, leur source et leur date, les scores par pilier, les indices de mobilité, les alertes et la couverture des données.

Un module absent n'est jamais omis ni mis à zéro : il porte status: "no_data" et une raison en clair. C'est la même règle que dans le rapport et sur le site — une donnée manquante est une information, pas un vide.