Skip to main content
Match DPE à une annonce immobilière
curl --request POST \
  --url https://api.fluximmo.io/v2/protected/opendata/dpe/match \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "filters": {
    "codeDepartement": "75",
    "inseeCode": "75113",
    "postalCode": "75013",
    "numeroDpe": "2600E0590119C",
    "typeBatiment": "appartement",
    "surface": {
      "min": 57
    },
    "dateEtablissementDpe": {
      "from": "2023-06-15"
    },
    "location": {
      "lat": 48.8566,
      "lon": 2.3522,
      "distance": "10km"
    }
  },
  "size": 5,
  "scoringTargets": {
    "consoParM2": 210,
    "emissionGesParM2": 18,
    "etiquetteDpe": "D",
    "etiquetteGes": "C",
    "nombreNiveauImmeuble": 6,
    "numeroEtageAppartement": 3,
    "periodeConstruction": "1948-1974",
    "nombreNiveauLogement": 2
  }
}
'
{
  "data": [
    {
      "score": 85.3,
      "confidence": "HIGH",
      "dpe": {
        "numero_dpe": "<string>",
        "adresse_ban": "<string>",
        "location": {
          "lat": 48.8566,
          "lon": 2.3522
        },
        "etiquette_dpe": "<string>",
        "etiquette_ges": "<string>",
        "conso_5_usages_par_m2_ep": 123,
        "emission_ges_5_usages_par_m2": 123,
        "surface_habitable_logement": 123,
        "date_etablissement_dpe": "2023-06-15",
        "date_fin_validite_dpe": "2033-06-15"
      }
    }
  ],
  "meta": {
    "ambiguous": false,
    "total": 3
  }
}

Documentation Index

Fetch the complete documentation index at: https://doc.fluximmo.io/llms.txt

Use this file to discover all available pages before exploring further.

À quoi ça sert

POST /v2/protected/opendata/dpe/match recherche, parmi les DPE de la base ADEME, les candidats les plus proches d’une annonce immobilière donnée. Contrairement à DPE Search qui renvoie une liste paginée et filtrée, Match renvoie les meilleurs candidats classés par similarité et accompagnés d’un score. Le payload sépare deux notions à ne pas confondre :
  • filters (pré-filtre dur) — exclut les candidats qui ne correspondent pas (géographie, plage de surface, type de bâtiment, plage de dates, codes ADEME/BAN). Un candidat hors de ces bornes n’apparaît jamais dans la réponse.
  • scoringTargets (ancres douces) — n’excluent rien. Elles influencent uniquement le classement : un candidat proche d’une ancre remonte dans le ranking, un candidat éloigné reste présent mais plus bas.
Chaque résultat porte un score normalisé de 0 à 100 et un confidence (HIGH, MEDIUM, LOW, REJECT). L’objet meta indique le nombre total de candidats trouvés et un drapeau ambiguous, vrai lorsque les deux premiers scores diffèrent de 5 points ou moins — utile pour signaler un match incertain à arbitrer manuellement. Cas d’usage typiques : retrouver le DPE exact d’une annonce, rapprocher un lot d’annonces de leurs DPE pour enrichir un portefeuille, ou estimer l’étiquette énergétique probable d’un bien à partir de ses caractéristiques.

Payload

Le corps de requête est un objet JSON. Toutes les clés de filters sont en camelCase.
ChampTypeObligatoireSens
filtersobjectNonPré-filtre dur. Voir le détail ci-dessous.
sizeintegerNonNombre de candidats retournés (1–20, défaut 5).
scoringTargetsobjectNonAncres de scoring. Voir le détail ci-dessous.

filters (pré-filtre dur)

ChampTypeSens
codeDepartementstringCode département BAN (2–3 caractères, ex. 75, 2A, 974).
inseeCodestringCode INSEE de la commune (5 caractères).
postalCodestringCode postal (5 chiffres).
numeroDpestringNuméro unique du DPE attribué par l’ADEME. Recherche par identifiant.
typeBatimentstringappartement, maison ou immeuble.
surfaceobjectPlage de surface habitable en m² : { "min": number, "max": number }.
dateEtablissementDpeobjectPlage de dates d’établissement : { "from": "YYYY-MM-DD", "to": "YYYY-MM-DD" }.
locationobjectFiltre géographique : { "lat": number, "lon": number, "distance": "10km" }. Unités acceptées : m, km, mi, ft, yd, nmi.

scoringTargets (ancres douces)

ChampTypeSens
consoParM2numberConsommation cible en kWh/m²/an. Rapproche les candidats à conso proche.
emissionGesParM2numberÉmissions GES cibles en kgCO₂/m²/an.
etiquetteDpestringÉtiquette énergie cible (AG). Bonus de score si correspondance.
etiquetteGesstringÉtiquette GES cible (AG). Bonus de score si correspondance.
nombreNiveauImmeublenumberNombre de niveaux de l’immeuble (0–200).
numeroEtageAppartementnumberÉtage de l’appartement (−10 à 200 ; valeur négative = sous-sol).
periodeConstructionstringPériode de construction cible (ex. avant 1948, 1948-1974, après 2021).
nombreNiveauLogementnumberNombre de niveaux du logement (0–200).

Réponse

L’API retourne un objet { data, meta }. data est un tableau de candidats classés par score décroissant. Chaque entrée contient :
ChampTypeSens
scorenumberScore de similarité normalisé (0–100).
confidencestringNiveau de confiance : HIGH, MEDIUM, LOW ou REJECT.
dpeobjectChamps clés du DPE retenu (projection Match).
L’objet dpe expose notamment numero_dpe, adresse_ban, location ({ lat, lon }), etiquette_dpe, etiquette_ges, conso_5_usages_par_m2_ep, emission_ges_5_usages_par_m2, surface_habitable_logement, date_etablissement_dpe et date_fin_validite_dpe. meta contient :
ChampTypeSens
totalnumberNombre total de candidats trouvés (au-delà de size).
ambiguousbooleantrue si les deux premiers scores diffèrent de 5 points ou moins.
Le contrat exact est documenté plus bas par le bloc OpenAPI (POST /v2/protected/opendata/dpe/match).

Exemple

Recherche par numéro de DPE

Lookup direct par identifiant ADEME : la recherche court-circuite le scoring et retourne le DPE correspondant.
curl -X POST https://api.fluximmo.io/v2/protected/opendata/dpe/match \
  -H "x-api-key: $FLUXIMMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "codeDepartement": "75",
      "postalCode": "75009",
      "numeroDpe": "2675E0698907D"
    }
  }'

Match multi-critères avec ancres de scoring

Pré-filtre dur sur la zone, le type et la plage de surface, puis classement affiné par quatre ancres douces.
curl -X POST https://api.fluximmo.io/v2/protected/opendata/dpe/match \
  -H "x-api-key: $FLUXIMMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "codeDepartement": "75",
      "postalCode": "75011",
      "typeBatiment": "appartement",
      "surface": { "min": 45, "max": 60 },
      "location": { "lat": 48.8592, "lon": 2.3789, "distance": "2km" }
    },
    "scoringTargets": {
      "etiquetteDpe": "D",
      "etiquetteGes": "C",
      "consoParM2": 210,
      "nombreNiveauImmeuble": 6
    },
    "size": 5
  }'

Liens utiles

Clé test gratuite — 1 semaine

Créez un compte sur my.fluximmo.io pour récupérer une clé API test gratuite (1 semaine, accès limité). Aucun paiement requis.

Authorizations

x-api-key
string
header
required

Body

application/json
filters
object
size
integer
default:5

Page size

Required range: 1 <= x <= 20
scoringTargets
object

Scoring anchors (consoParM2/emissionGesParM2/etiquetteDpe/etiquetteGes/nombreNiveauImmeuble). Influence ranking only — do not exclude candidates.

Response

Candidats DPE classés par score de similarité

data
object[]
required

Candidats DPE classés par score de similarité

meta
object
required

Métadonnées du matching