LogiScan

Documentation de l'API immobilière LogiScan

L'API fait pour un programme ce que le site fait pour un visiteur, à partir d'un lien d'annonce, d'un texte ou d'une adresse. Les exemples de cette documentation sont rejoués par un test à chaque livraison.

L'API en vidéo

L'API LogiScan en une minute et demie : la clé, le premier appel, une analyse, les crédits, la documentation

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.
  • 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 qui n'est pas dans la réponse

  • Les photos, la description de l'annonce et les liens des diffuseurs.
  • Une adresse affirmée seule, ou un champ is_correct : une résolution est une liste de candidats scorés, éventuellement vide.
  • Un avis de valeur : l'API situe un prix parmi des ventes (« dix pour cent sous la médiane du secteur »), elle ne juge pas un bien.

L'adresse de l'API

https://logiscan.fr/v1

Toutes les routes de cette documentation s'ajoutent à cette adresse : GET /v1/account s'appelle donc https://logiscan.fr/v1/account. Le schéma OpenAPI est servi sur https://logiscan.fr/v1/openapi.json, et se charge dans Postman ou un générateur de client.

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.

    Ouvrir Mon API

  2. Appelez /v1/account

    La clé s'envoie dans l'en-tête Authorization: Bearer <clé>. Cet appel est gratuit et 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 et 90 j, cette dernière étant 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 sans candidat ou sans assez de ventes est facturée. Une source en panne ne l'est pas (billed: false, crédit rendu).

    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,
            "maps_url": "https://www.google.com/maps/search/?api=1&query=47.501,2.501"
          }
        ],
        "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,
          "maps_url": "https://www.google.com/maps/search/?api=1&query=47.501,2.501"
        },
        "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

    Une analyse par lien d'annonce coûte un crédit. Le barème ci-dessous donne le coût des autres services. La recharge se fait par carte, à partir du minimum indiqué, 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

Une analyse par lien d'annonce coûte un crédit. Recharge à partir de 5 €, et 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

  • Les adresses viennent de la Base Adresse Nationale, les diagnostics des fichiers publics de l'ADEME (miroir local d'un dump complet, flux en ligne en secours, et le jeu des diagnostics d'avant juillet 2021 qu'une annonce recopie parfois), les ventes des Demandes de valeurs foncières (DVF, Etalab), et 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. Les liens, textes et adresses ne sont gardés que dans votre journal « Mes appels », visible de vous seul.

Voir ce que nous faisons des données.

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