LogiScan

Documentation de l'API immobilière LogiScan

Ce que le site fait pour un visiteur, l'API le fait pour un programme : à partir d'un lien d'annonce, d'un texte ou d'une adresse. Cette documentation dit ce qu'elle rend, ce qu'elle ne rend jamais, ce qu'elle coûte, et comment l'appeler — avec des exemples qu'un test rejoue à chaque livraison.

Ce que l'API rend

  • Une liste d'adresses candidates, chacune avec son score de confiance, sa méthode et les critères comparés — jamais une adresse unique affirmée.
  • Un Deal Score par rayon (300, 500, 800 et 1 000 m) : le prix affiché situé parmi les ventes voisines publiées dans DVF, et une fourchette d'estimation quand l'annonce n'a pas de prix.
  • Les ventes comparables retenues, l'environnement (risques, urbanisme, chantiers, terrain, toiture), le quartier (équipements, écoles, transports, connectivité, air) et le diagnostic de performance énergétique.
  • Ce qui manque à une annonce pour être bien analysée, du champ le plus utile au moins.

Ce qu'elle ne rend jamais

  • Aucune photo, aucune description d'annonce, aucune adresse de diffuseur : l'API rend des faits, pas le contenu d'un tiers.
  • Aucune adresse affirmée seule, aucun champ is_correct : une résolution est une liste de candidats scorés, et une liste vide est une réponse.
  • Aucun avis de valeur : « le prix se situe dix pour cent sous la médiane du secteur », jamais « ce bien est sous-évalué ».

Démarrer en quatre étapes

  1. Créez un compte, puis une clé

    Un compte ordinaire suffit. Sur Mon compte → Mon API, créez une clé de bac à sable (lsk_test_…) pour essayer sans payer, puis une clé réelle (lsk_live_…) quand vous voulez de vraies données. Le secret s'affiche une seule fois : copiez-le, il n'est écrit nulle part chez nous.

    Ouvrir Mon API

  2. Appelez /v1/account

    La clé s'envoie dans l'en-tête Authorization: Bearer <clé>. Le premier appel à faire est gratuit : il rend votre solde, votre usage et les tarifs en vigueur.

    GET /v1/account Le compte derrière la clé 0 crédit

    Gratuit. Le solde en crédits, l'usage sur quatre fenêtres (24 h, 7 j, 30 j, 90 j — la dernière est aussi la durée pendant laquelle l'usage est gardé), et les tarifs en vigueur.

    curl
    curl -s 'https://logiscan.fr/v1/account' \
      -H 'Authorization: Bearer lsk_test_VOTRE_CLE'
    Python · httpx
    import httpx
    
    CLE = "lsk_test_VOTRE_CLE"
    
    reponse = httpx.get(
        "https://logiscan.fr/v1/account",
        headers={"Authorization": f"Bearer {CLE}"},
        timeout=30,
    )
    print(reponse.status_code, reponse.json())
    JavaScript · fetch
    const CLE = "lsk_test_VOTRE_CLE";
    
    const reponse = await fetch("https://logiscan.fr/v1/account", {
      method: "GET",
      headers: { Authorization: `Bearer ${CLE}` },
    });
    console.log(reponse.status, await reponse.json());
    Réponse du bac à sable — ce qu'une clé lsk_test_ reçoit, données fictives
    JSON · 200
    {
      "email": "vous@exemple.fr",
      "key": {
        "prefixe": "lsk_test_BACASABL",
        "libelle": "bac à sable",
        "mode": "test",
        "created_at": "2026-09-01T09:00:00Z",
        "expires_at": null
      },
      "balance_credits": 0.0,
      "usage": {
        "24h": {
          "calls": 3,
          "credits": 0.0
        },
        "7d": {
          "calls": 3,
          "credits": 0.0
        },
        "30d": {
          "calls": 3,
          "credits": 0.0
        },
        "90d": {
          "calls": 3,
          "credits": 0.0
        }
      },
      "tarifs": {
        "account": 0.0,
        "analyses.listing_url": 1.0,
        "analyses.listing_text": 0.6,
        "analyses.address": 0.6,
        "dpe": 0.1,
        "listings.completeness": 0.05
      }
    }
  3. Lancez une analyse

    Un lien d'annonce, un texte ou une adresse. Avec une clé de bac à sable, la réponse est fictive et ne coûte rien ; avec une clé réelle, elle est vraie et consomme un crédit.

    POST /v1/analyses?wait=20 Analyser une annonce par son lien 1 crédit

    wait attend le résultat jusqu'à vingt secondes ; sinon la réponse est un 202 avec l'adresse où le relire (GET /v1/analyses/{id}). Un même lien demandé deux fois dans l'heure est servi d'une mémoire, au même tarif. Une réponse vide mais honnête — aucun candidat, pas assez de ventes — est facturée : le travail a été fait. Une source en panne ne l'est pas : billed vaut false et le crédit revient.

    curl
    curl -s -X POST 'https://logiscan.fr/v1/analyses?wait=20' \
      -H 'Authorization: Bearer lsk_test_VOTRE_CLE' \
      -H 'Content-Type: application/json' \
      -d '{"source": {"listing_url": "https://www.exemple.fr/annonces/12345"}, "radii": [300, 500, 800, 1000]}'
    Python · httpx
    import httpx
    
    CLE = "lsk_test_VOTRE_CLE"
    
    reponse = httpx.post(
        "https://logiscan.fr/v1/analyses?wait=20",
        json={"source": {"listing_url": "https://www.exemple.fr/annonces/12345"}, "radii": [300, 500, 800, 1000]},
        headers={"Authorization": f"Bearer {CLE}"},
        timeout=30,
    )
    print(reponse.status_code, reponse.json())
    JavaScript · fetch
    const CLE = "lsk_test_VOTRE_CLE";
    
    const reponse = await fetch("https://logiscan.fr/v1/analyses?wait=20", {
      method: "POST",
      headers: { Authorization: `Bearer ${CLE}`, "Content-Type": "application/json" },
      body: JSON.stringify({"source": {"listing_url": "https://www.exemple.fr/annonces/12345"}, "radii": [300, 500, 800, 1000]}),
    });
    console.log(reponse.status, await reponse.json());
    Réponse du bac à sable — ce qu'une clé lsk_test_ reçoit, données fictives
    JSON · 200
    {
      "id": "bac-a-sable",
      "statut": "termine",
      "billed": false,
      "source": "listing_url",
      "mode": "test",
      "cost_credits": 0.0,
      "resolution": {
        "request_id": "9336e3757bb54af38e9586bd707875da",
        "status": "resolved",
        "candidates": [
          {
            "label": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
            "ban_id": "99999_0001_00012",
            "lat": 47.501,
            "lon": 2.501,
            "parcelle": null,
            "confidence": 1.0,
            "method": "adresse_saisie",
            "matched_criteria": [
              "adresse choisie dans la Base Adresse Nationale"
            ],
            "diverged_criteria": [],
            "comparaisons": [],
            "position_approchee": false,
            "dpe_trouve": null
          }
        ],
        "confidence_label": "eleve",
        "resolved_by_level": null,
        "levels_attempted": [],
        "sources_status": {
          "ademe": "not_used",
          "ademe_local": "not_used",
          "ban": "not_used",
          "ign": "not_used",
          "dvf": "not_used",
          "cadastre": "not_used",
          "georisques": "not_used",
          "gpu": "not_used",
          "sitadel": "not_used",
          "bpe": "not_used",
          "education": "not_used",
          "arcep": "not_used",
          "atmo": "not_used",
          "transit": "not_used"
        },
        "search_area": null,
        "duration_ms": 0,
        "interrompue": false
      },
      "deal_scores": [
        {
          "adresse": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
          "par_rayon": {
            "300": {
              "statut": "calcule",
              "adresse": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
              "score": 6.0,
              "libelle": "dans le marché",
              "explication": "Prix affiché comparé à 10 vente(s) enregistrée(s) dans un rayon de 300 m depuis moins de 3 ans, de surface voisine : l'écart à l'estimation médiane est de +5.0%.",
              "avertissement": null,
              "ecart_relatif": 0.05,
              "prix_m2_annonce": 2100.0,
              "prix_m2_median": 2000.0,
              "estimation_basse_eur": 200000.0,
              "estimation_mediane_eur": 200000.0,
              "estimation_haute_eur": 200000.0,
              "nb_comparables": 10,
              "ventes_examinees": 10,
              "rayon_m": 300.0,
              "etapes": [
                {
                  "etape": "un seul logement par vente",
                  "restants": 10
                },
                {
                  "etape": "nature « Vente »",
                  "restants": 10
                },
                {
                  "etape": "type de bien",
                  "restants": 10
                },
                {
                  "etape": "surface comparable",
                  "restants": 10
                },
                {
                  "etape": "vente récente",
                  "restants": 10
                },
                {
                  "etape": "prix au m² plausible",
                  "restants": 10
                },
                {
                  "etape": "à moins de 300 m",
                  "restants": 10
                }
              ],
              "mutations_comparables": [
                "2024-900000",
                "2024-900001",
                "2024-900002",
                "2024-900003",
                "2024-900004",
                "2024-900005",
                "2024-900006",
                "2024-900007",
                "2024-900008",
                "2024-900009"
              ],
              "methodology_version": "1.1",
              "sources_status": {
                "ademe": "not_used",
                "ademe_local": "not_used",
                "ban": "not_used",
                "ign": "not_used",
                "dvf": "ok",
                "cadastre": "not_used",
                "georisques": "not_used",
                "gpu": "not_used",
                "sitadel": "not_used",
                "bpe": "not_used",
                "education": "not_used",
                "arcep": "not_used",
                "atmo": "not_used",
                "transit": "not_used"
              },
              "duration_ms": 0
            },
            "500": {
              "statut": "calcule",
              "adresse": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
              "score": 6.0,
              "libelle": "dans le marché",
              "explication": "Prix affiché comparé à 10 vente(s) enregistrée(s) dans un rayon de 500 m depuis moins de 3 ans, de surface voisine : l'écart à l'estimation médiane est de +5.0%.",
              "avertissement": null,
              "ecart_relatif": 0.05,
              "prix_m2_annonce": 2100.0,
              "prix_m2_median": 2000.0,
              "estimation_basse_eur": 200000.0,
              "estimation_mediane_eur": 200000.0,
              "estimation_haute_eur": 200000.0,
              "nb_comparables": 10,
              "ventes_examinees": 10,
              "rayon_m": 500.0,
              "etapes": [
                {
                  "etape": "un seul logement par vente",
                  "restants": 10
                },
                {
                  "etape": "nature « Vente »",
                  "restants": 10
                },
                {
                  "etape": "type de bien",
                  "restants": 10
                },
                {
                  "etape": "surface comparable",
                  "restants": 10
                },
                {
                  "etape": "vente récente",
                  "restants": 10
                },
                {
                  "etape": "prix au m² plausible",
                  "restants": 10
                },
                {
                  "etape": "à moins de 500 m",
                  "restants": 10
                }
              ],
              "mutations_comparables": [
                "2024-900000",
                "2024-900001",
                "2024-900002",
                "2024-900003",
                "2024-900004",
                "2024-900005",
                "2024-900006",
                "2024-900007",
                "2024-900008",
                "2024-900009"
              ],
              "methodology_version": "1.1",
              "sources_status": {
                "ademe": "not_used",
                "ademe_local": "not_used",
                "ban": "not_used",
                "ign": "not_used",
                "dvf": "ok",
                "cadastre": "not_used",
                "georisques": "not_used",
                "gpu": "not_used",
                "sitadel": "not_used",
                "bpe": "not_used",
                "education": "not_used",
                "arcep": "not_used",
                "atmo": "not_used",
                "transit": "not_used"
              },
              "duration_ms": 0
            },
            "800": {
              "statut": "calcule",
              "adresse": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
              "score": 6.0,
              "libelle": "dans le marché",
              "explication": "Prix affiché comparé à 10 vente(s) enregistrée(s) dans un rayon de 800 m depuis moins de 3 ans, de surface voisine : l'écart à l'estimation médiane est de +5.0%.",
              "avertissement": null,
              "ecart_relatif": 0.05,
              "prix_m2_annonce": 2100.0,
              "prix_m2_median": 2000.0,
              "estimation_basse_eur": 200000.0,
              "estimation_mediane_eur": 200000.0,
              "estimation_haute_eur": 200000.0,
              "nb_comparables": 10,
              "ventes_examinees": 10,
              "rayon_m": 800.0,
              "etapes": [
                {
                  "etape": "un seul logement par vente",
                  "restants": 10
                },
                {
                  "etape": "nature « Vente »",
                  "restants": 10
                },
                {
                  "etape": "type de bien",
                  "restants": 10
                },
                {
                  "etape": "surface comparable",
                  "restants": 10
                },
                {
                  "etape": "vente récente",
                  "restants": 10
                },
                {
                  "etape": "prix au m² plausible",
                  "restants": 10
                },
                {
                  "etape": "à moins de 800 m",
                  "restants": 10
                }
              ],
              "mutations_comparables": [
                "2024-900000",
                "2024-900001",
                "2024-900002",
                "2024-900003",
                "2024-900004",
                "2024-900005",
                "2024-900006",
                "2024-900007",
                "2024-900008",
                "2024-900009"
              ],
              "methodology_version": "1.1",
              "sources_status": {
                "ademe": "not_used",
                "ademe_local": "not_used",
                "ban": "not_used",
                "ign": "not_used",
                "dvf": "ok",
                "cadastre": "not_used",
                "georisques": "not_used",
                "gpu": "not_used",
                "sitadel": "not_used",
                "bpe": "not_used",
                "education": "not_used",
                "arcep": "not_used",
                "atmo": "not_used",
                "transit": "not_used"
              },
              "duration_ms": 0
            },
            "1000": {
              "statut": "calcule",
              "adresse": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
              "score": 6.0,
              "libelle": "dans le marché",
              "explication": "Prix affiché comparé à 10 vente(s) enregistrée(s) dans un rayon de 1000 m depuis moins de 3 ans, de surface voisine : l'écart à l'estimation médiane est de +5.0%.",
              "avertissement": null,
              "ecart_relatif": 0.05,
              "prix_m2_annonce": 2100.0,
              "prix_m2_median": 2000.0,
              "estimation_basse_eur": 200000.0,
              "estimation_mediane_eur": 200000.0,
              "estimation_haute_eur": 200000.0,
              "nb_comparables": 10,
              "ventes_examinees": 10,
              "rayon_m": 1000.0,
              "etapes": [
                {
                  "etape": "un seul logement par vente",
                  "restants": 10
                },
                {
                  "etape": "nature « Vente »",
                  "restants": 10
                },
                {
                  "etape": "type de bien",
                  "restants": 10
                },
                {
                  "etape": "surface comparable",
                  "restants": 10
                },
                {
                  "etape": "vente récente",
                  "restants": 10
                },
                {
                  "etape": "prix au m² plausible",
                  "restants": 10
                },
                {
                  "etape": "à moins de 1000 m",
                  "restants": 10
                }
              ],
              "mutations_comparables": [
                "2024-900000",
                "2024-900001",
                "2024-900002",
                "2024-900003",
                "2024-900004",
                "2024-900005",
                "2024-900006",
                "2024-900007",
                "2024-900008",
                "2024-900009"
              ],
              "methodology_version": "1.1",
              "sources_status": {
                "ademe": "not_used",
                "ademe_local": "not_used",
                "ban": "not_used",
                "ign": "not_used",
                "dvf": "ok",
                "cadastre": "not_used",
                "georisques": "not_used",
                "gpu": "not_used",
                "sitadel": "not_used",
                "bpe": "not_used",
                "education": "not_used",
                "arcep": "not_used",
                "atmo": "not_used",
                "transit": "not_used"
              },
              "duration_ms": 0
            }
          }
        }
      ],
      "comparables": [
        {
          "date": "2026-06-08",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "10 RUE DE L'EXEMPLE",
          "distance_m": 0.0
        },
        {
          "date": "2026-06-07",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "11 RUE DE L'EXEMPLE",
          "distance_m": 27.0
        },
        {
          "date": "2026-06-06",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "12 RUE DE L'EXEMPLE",
          "distance_m": 54.0
        },
        {
          "date": "2026-06-05",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "13 RUE DE L'EXEMPLE",
          "distance_m": 81.0
        },
        {
          "date": "2026-06-04",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "14 RUE DE L'EXEMPLE",
          "distance_m": 107.0
        },
        {
          "date": "2026-06-03",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "15 RUE DE L'EXEMPLE",
          "distance_m": 134.0
        },
        {
          "date": "2026-06-02",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "16 RUE DE L'EXEMPLE",
          "distance_m": 161.0
        },
        {
          "date": "2026-06-01",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "17 RUE DE L'EXEMPLE",
          "distance_m": 188.0
        },
        {
          "date": "2026-05-31",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "18 RUE DE L'EXEMPLE",
          "distance_m": 215.0
        },
        {
          "date": "2026-05-30",
          "prix_eur": 200000.0,
          "surface_m2": 100.0,
          "type_local": "Appartement",
          "voie": "19 RUE DE L'EXEMPLE",
          "distance_m": 242.0
        }
      ],
      "enrichment": {
        "adresse": {
          "label": "12 rue de l'Exemple 99999 Villeneuve-sur-Fixture (BAN)",
          "ban_id": "99999_0001_00012",
          "lat": 47.501,
          "lon": 2.501,
          "parcelle": null,
          "confidence": 1.0,
          "method": "adresse_saisie",
          "matched_criteria": [
            "adresse choisie dans la Base Adresse Nationale"
          ],
          "diverged_criteria": [],
          "comparaisons": [],
          "position_approchee": false,
          "dpe_trouve": null
        },
        "risques": {
          "inondation": {
            "concerne": true,
            "libelles": [],
            "atlas": [
              "Lot"
            ]
          },
          "seisme": {
            "zone": 1,
            "libelle": "1 - TRES FAIBLE"
          },
          "argiles": {
            "niveau": 2,
            "libelle": "Exposition moyenne"
          },
          "radon": {
            "potentiel": 1,
            "libelle": "Potentiel faible"
          },
          "risques_recenses": [
            {
              "code": "12",
              "libelle": "Mouvement de terrain"
            },
            {
              "code": "121",
              "libelle": "Affaissements et effondrements d'origine anthropique (anciennes carrières souterraines, hors mines)"
            },
            {
              "code": "123",
              "libelle": "Eboulement ou chutes de pierres et de blocs"
            },
            {
              "code": "124",
              "libelle": "Glissement de terrain"
            },
            {
              "code": "127",
              "libelle": "Tassements différentiels"
            },
            {
              "code": "16",
              "libelle": "Feu de forêt"
            },
            {
              "code": "23",
              "libelle": "Rupture de barrage"
            },
            {
              "code": "24",
              "libelle": "Transport de marchandises dangereuses"
            }
          ],
          "sites": [],
          "statuts": {
            "risques_recenses": "ok",
            "inondation": "ok",
            "seisme": "ok",
            "radon": "ok",
            "argiles": "ok",
            "sites": "ok"
          }
        },
        "urbanisme": {
          "zonage": {
            "code": "Ub",
            "libelle": "Zone urbaine : quartiers à densifier ou à restructurer",
            "type_zone": "U",
            "document": "PLUI",
            "date_validation": "2025-12-18"
          },
          "servitudes": [
            {
              "code": "AC1",
              "libelle": "COLLEGE GAMBETTA",
              "nature": "Périmètre des abords"
            },
            {
              "code": "T1",
              "libelle": "SUP T1 du Lot",
              "nature": "Zone de protection"
            },
            {
              "code": "PM1",
              "libelle": "PM1",
              "nature": "Enveloppe des zonages r?glementaires"
            }
          ],
          "statuts": {
            "zonage": "ok",
            "servitudes": "ok"
          }
        },
        "projets": [],
        "terrain": null,
        "solaire": null,
        "copropriete": null,
        "sources_status": {
          "ademe": "not_used",
          "ademe_local": "not_used",
          "ban": "not_used",
          "ign": "not_used",
          "dvf": "not_used",
          "cadastre": "ok",
          "georisques": "ok",
          "gpu": "ok",
          "sitadel": "ok",
          "bpe": "ok",
          "education": "ok",
          "arcep": "ok",
          "atmo": "ok",
          "transit": "not_used"
        }
      },
      "neighborhood": {
        "amenities": [
          {
            "categorie": "sante",
            "type": "Masseur kinésithérapeute",
            "nom": null,
            "distance_m": 348036.1,
            "code": "D233",
            "lat": 44.457760539675,
            "lon": 1.447585132636019
          },
          {
            "categorie": "sante",
            "type": "Infirmier",
            "nom": null,
            "distance_m": 348139.4,
            "code": "D232",
            "lat": 44.45634199299316,
            "lon": 1.450374463658037
          },
          {
            "categorie": "sante",
            "type": "Pédicure-podologue",
            "nom": null,
            "distance_m": 348153.2,
            "code": "D237",
            "lat": 44.457007419263995,
            "lon": 1.445613798237905
          },
          {
            "categorie": "sante",
            "type": "Structure psychiatrique en ambulatoire",
            "nom": null,
            "distance_m": 348242.9,
            "code": "D109",
            "lat": 44.45625098392544,
            "lon": 1.445183798617627
          },
          {
            "categorie": "sante",
            "type": "Psychologue",
            "nom": null,
            "distance_m": 348364.5,
            "code": "D243",
            "lat": 44.45495993149608,
            "lon": 1.446192134879147
          },
          {
            "categorie": "education",
            "type": "École maternelle",
            "nom": null,
            "distance_m": 348375.2,
            "code": "C101",
            "lat": 44.45475270686691,
            "lon": 1.446840309934811
          },
          {
            "categorie": "alimentation",
            "type": "Boulangerie",
            "nom": null,
            "distance_m": 348500.5,
            "code": "B203",
            "lat": 44.45364137495746,
            "lon": 1.446565373837412
          },
          {
            "categorie": "education",
            "type": "École primaire",
            "nom": null,
            "distance_m": 348594.2,
            "code": "C104",
            "lat": 44.45279354677859,
            "lon": 1.446460447750797
          },
          {
            "categorie": "education",
            "type": "Ufr",
            "nom": null,
            "distance_m": 348626.2,
            "code": "C501",
            "lat": 44.45251315825198,
            "lon": 1.446370103813196
          },
          {
            "categorie": "education",
            "type": "Institut universitaire",
            "nom": null,
            "distance_m": 348661.9,
            "code": "C502",
            "lat": 44.452196892756014,
            "lon": 1.446289545446312
          },
          {
            "categorie": "alimentation",
            "type": "Épicerie",
            "nom": null,
            "distance_m": 348698.9,
            "code": "B202",
            "lat": 44.45293670780534,
            "lon": 1.439818211021289
          },
          {
            "categorie": "education",
            "type": "Collège",
            "nom": null,
            "distance_m": 348936.2,
            "code": "C201",
            "lat": 44.4504552854695,
            "lon": 1.441549627874779
          }
        ],
        "schools": [
          {
            "nom": "Lycée polyvalent Gaston Monnerville",
            "type": "Lycée",
            "distance_m": 347275.4,
            "secteur": "Public",
            "education_prioritaire": null,
            "commune": "Cahors",
            "lat": 44.46354320618618,
            "lon": 1.4550500739231473,
            "uai": null,
            "nature": "lycee",
            "indicateurs": null
          },
          {
            "nom": "Section d'enseignement général et professionnel adapté du Collège Olivier de Magny",
            "type": "Collège",
            "distance_m": 347275.4,
            "secteur": "Public",
            "education_prioritaire": null,
            "commune": "Cahors",
            "lat": 44.46354320618618,
            "lon": 1.4550500739231473,
            "uai": null,
            "nature": "college",
            "indicateurs": null
          },
          {
            "nom": "Ecole élémentaire  Lucien Bénac Terre Rouge",
            "type": "Ecole",
            "distance_m": 347482.8,
            "secteur": "Public",
            "education_prioritaire": null,
            "commune": "Cahors",
            "lat": 44.46168794004309,
            "lon": 1.4546934307658848,
            "uai": null,
            "nature": "primaire",
            "indicateurs": null
          },
          {
            "nom": "Ecole maternelle publique Lucien Bénac Terre Rouge",
            "type": "Ecole",
            "distance_m": 347581.3,
            "secteur": "Public",
            "education_prioritaire": null,
            "commune": "Cahors",
            "lat": 44.460885623948506,
            "lon": 1.4540452753864679,
            "uai": null,
            "nature": "primaire",
            "indicateurs": null
          },
          {
            "nom": "Ecole primaire publique P. Ségala",
            "type": "Ecole",
            "distance_m": 347997.4,
            "secteur": "Public",
            "education_prioritaire": null,
            "commune": "Cahors",
            "lat": 44.460156607721466,
            "lon": 1.4354300805942848,
            "uai": null,
            "nature": "primaire",
            "indicateurs": null
          }
        ],
        "transit_stops": [],
        "transit_source": null,
        "connectivity": {
          "fibre_disponible": null,
          "part_locaux_fibre": null,
          "technologies_filaires": [],
          "couverture_mobile": [],
          "statuts": {
            "fixe": "ok",
            "mobile": "ok"
          }
        },
        "antennes": [],
        "evenements": [],
        "air_quality": {
          "indice": 3,
          "libelle": "Dégradé",
          "date_indice": "2026-08-07",
          "polluants": [
            {
              "code": "o3",
              "libelle": "Ozone",
              "indice": 3
            },
            {
              "code": "no2",
              "libelle": "Dioxyde d'azote",
              "indice": 1
            },
            {
              "code": "pm10",
              "libelle": "Particules PM10",
              "indice": 1
            },
            {
              "code": "pm25",
              "libelle": "Particules fines PM2,5",
              "indice": 1
            },
            {
              "code": "so2",
              "libelle": "Dioxyde de soufre",
              "indice": 1
            }
          ],
          "source": "Atmo HDF",
          "zone": "LILLE"
        },
        "delinquance": null,
        "statuts": {
          "equipements": "ok",
          "ecoles": "ok",
          "resultats_ecoles": "ok",
          "transports": "not_used",
          "connectivite": "ok",
          "qualite_air": "ok",
          "delinquance": "not_used",
          "antennes": "ok",
          "evenements": "down"
        },
        "sources_status": {
          "ademe": "not_used",
          "ademe_local": "not_used",
          "ban": "not_used",
          "ign": "not_used",
          "dvf": "not_used",
          "cadastre": "not_used",
          "georisques": "not_used",
          "gpu": "not_used",
          "sitadel": "not_used",
          "bpe": "ok",
          "education": "ok",
          "arcep": "ok",
          "atmo": "ok",
          "transit": "not_used"
        },
        "duration_ms": 40
      },
      "diffuseurs": {
        "nombre": 0,
        "portails": []
      },
      "sections": [
        {
          "nom": "resolution",
          "statut": "ok",
          "detail": null
        },
        {
          "nom": "enrichissement",
          "statut": "ok",
          "detail": null
        },
        {
          "nom": "quartier",
          "statut": "ok",
          "detail": null
        },
        {
          "nom": "deal_score",
          "statut": "ok",
          "detail": null
        }
      ],
      "sources_status": {
        "ademe": "not_used",
        "ademe_local": "not_used",
        "ban": "not_used",
        "ign": "not_used",
        "dvf": "ok",
        "cadastre": "ok",
        "georisques": "ok",
        "gpu": "ok",
        "sitadel": "ok",
        "bpe": "ok",
        "education": "ok",
        "arcep": "ok",
        "atmo": "ok",
        "transit": "not_used"
      },
      "duration_ms": 81
    }
  4. Rechargez des crédits quand vous passez au réel

    Un crédit vaut une analyse par lien d'annonce ; les autres services en coûtent une fraction. La recharge se fait par carte, à partir du minimum indiqué ci-dessous, et les crédits n'expirent pas.

    Recharger

Ce que ça coûte

ServiceRouteCrédits par appel
Analyse d'une annonce par son lienanalyses.listing_url1
Analyse d'une annonce par son texteanalyses.listing_text0,6
Analyse d'une adresse postaleanalyses.address0,6
Lecture d'un diagnostic énergétiquedpe0,1
Complétude d'une annoncelistings.completeness0,05

Un crédit vaut une analyse par lien d'annonce. Recharge à partir de 5 € ; les crédits ne sont pas remboursables et n'expirent pas. Le détail est dans Crédits et facturation.

Les sections

Les données, et ce qui est gardé

  • Les adresses viennent de la Base Adresse Nationale ; les diagnostics du fichier public de l'ADEME (miroir local d'un dump complet, flux en ligne en secours) ; les ventes des Demandes de valeurs foncières (DVF, Etalab) ; le cadastre, les risques, l'urbanisme et les équipements des services publics correspondants.
  • Ce que l'API conserve de vos appels : la route, le statut, le coût, la durée — pendant quatre-vingt-dix jours — et le registre de vos crédits, comme pièce comptable. Jamais un lien, un texte, une adresse ni un numéro de diagnostic.

Voir ce que nous faisons des données.

Miroir des diagnostics : dump ADEME chargé le 15/09/2026.Ventes : DVF, millésimes 2021, 2022, 2023, 2024, 2025 (Etalab). Le schéma qui fait foi est servi sur /v1/openapi.json.