Skip to main content

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.

Goal

Obtenir une estimation de prix (vente ou location) pour un bien à partir de ses caractéristiques (localisation, surface, nombre de pièces, type), avec un intervalle indicatif — sans entraîner son propre modèle.

Scénario

Un produit AVM (fintech, proptech, courtier, agence) doit afficher une estimation immédiate au moment où l’utilisateur saisit son bien. Le besoin : < 500ms, un prix central + un intervalle, et la possibilité d’appeler l’endpoint en batch sur un portefeuille.

Étapes

1

1. Construire le payload

Le minimum requis : localisation géocodée (location.locationCoordinate.location au format [lng, lat]), caractéristiques du bien (habitation.surface.total, habitation.roomCount, habitation.bedroomCount — tous trois requis ; optionnel land.surface pour les maisons), type (CLASS_FLAT | CLASS_HOUSE) et offer (objet { type: "OFFER_BUY" } — seul OFFER_BUY est supporté sur le lite).
{
  "location": {
    "locationCoordinate": {
      "location": [2.3376, 48.8606]
    }
  },
  "habitation": {
    "surface": { "total": 60 },
    "roomCount": 3,
    "bedroomCount": 2
  },
  "type": "CLASS_FLAT",
  "offer": { "type": "OFFER_BUY" }
}
Le schéma exact peut évoluer (champs optionnels supplémentaires : propertyCondition, climate (DPE/GES), characteristics, features, etc.). Voir l’OpenAPI de POST /estimate/property/lite pour la liste complète.
2

2. Appeler l'endpoint

curl -X POST https://api.fluximmo.io/v2/protected/estimate/property/lite \
  -H "x-api-key: $FLUXIMMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "location": { "locationCoordinate": { "location": [2.3376, 48.8606] } },
    "habitation": { "surface": { "total": 60 }, "roomCount": 3, "bedroomCount": 2 },
    "type": "CLASS_FLAT",
    "offer": { "type": "OFFER_BUY" }
  }'
3

3. Parser la réponse

La réponse contient typiquement (sous la clé data) :
  • data.price — estimation centrale (€)
  • data.priceRange — intervalle { lower, upper }
  • data.metadata — métadonnées optionnelles (peuvent inclure version du modèle, taille de l’échantillon de la zone, etc.)
# Pseudocode
parse(payload):
    central     = payload.data.price
    range_lower = payload.data.priceRange.lower
    range_upper = payload.data.priceRange.upper
    spread_pct  = (range_upper - range_lower) / central * 100   if central > 0
    return { central, range_lower, range_upper, spread_pct, metadata = payload.data.metadata }
Un spread_pct élevé (> 25 %) est un signal honnête à remonter à l’utilisateur : l’estimation est moins fiable sur cette zone / ce type de bien.
4

4. Cas d'usage AVM par batch

Pour scorer un portefeuille (N biens), boucler sur l’endpoint et persister. Optimisations :
  • Parallélisation — 5 à 10 requêtes concurrentes max (respect du quota).
  • Cache — clé = hash des champs métier (coordonnées arrondies + surface.total + roomCount + bedroomCount + type + offer.type). Les estimations sont stables sur quelques heures.
  • Quota — chaque appel est crédité. Avant un batch, vérifier le solde via GET /v2/protected/consumption.
# Pseudocode batch
foreach bien in portfolio:
    lng, lat = bien.location.locationCoordinate.location
    key = hash(round(lng,3), round(lat,3),
               bien.habitation.surface.total,
               bien.habitation.roomCount,
               bien.habitation.bedroomCount,
               bien.type, bien.offer.type)
    if cache[key] not stale:
        result = cache[key]
    else:
        result = POST /v2/protected/estimate/property/lite (bien)   # sémaphore concurrence ≤ 8
        cache[key] = result
    persist(bien.id, result)

Architecture / flow

Pièges fréquents

Géocodage incomplet. Sans postalCode ou lat/lon, l’estimation tombe sur des moyennes nationales — résultat moins fiable. Toujours géocoder l’adresse en amont via /geocoding/search.
Zones non couvertes. DOM-TOM, étranger, communes < 500 habitants : la base d’apprentissage est plus mince. Lire metadata.sample_size (ou équivalent) et afficher un disclaimer si la qualité est faible.
Surcoût quota. Chaque appel est crédité. Pour un batch portfolio, vérifier GET /v2/protected/consumption avant et mettre en cache (clé = hash des champs métier). Sinon vous brûlez votre solde sur des requêtes redondantes.

Pour aller plus loin

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, aucun appel commercial.