Skip to main content
Lite Similar Search properties
curl --request POST \
  --url https://api.fluximmo.io/v2/protected/properties/search/lite/similar \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "orderBy": "DESC",
  "search": {
    "filterProperty": {
      "land": {
        "surface": {
          "max": 123,
          "min": 123
        }
      },
      "location": [],
      "meta": {
        "firstSeenAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        },
        "isTotallyOffline": true,
        "lastPublishedAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        },
        "lastSeenAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        },
        "lastUpdatedAt": {
          "max": "2022-10-21T11:31:33.593Z",
          "min": "2022-10-21T11:31:33.593Z"
        }
      },
      "price": {
        "latest": {
          "value": {
            "max": 123,
            "min": 123
          },
          "valuePerArea": {
            "max": 123,
            "min": 123
          }
        }
      },
      "type": [
        "CLASS_HOUSE"
      ],
      "offer": [],
      "habitation": {
        "bedroomCount": {
          "max": 123,
          "min": 123
        },
        "roomCount": {
          "max": 123,
          "min": 123
        },
        "characteristics": {
          "hasBalcony": true,
          "hasCellar": true,
          "hasGarage": true,
          "hasLift": true,
          "hasParking": true,
          "hasPool": true,
          "hasTerrace": true
        },
        "climate": {
          "epcClimate": [],
          "epcEnergy": []
        },
        "surface": {
          "total": {
            "max": 123,
            "min": 123
          }
        },
        "features": {
          "furniture": [],
          "propertyFloor": {
            "max": 123,
            "min": 123
          },
          "propertyTotalFloor": {
            "max": 123,
            "min": 123
          }
        },
        "propertyCondition": [
          {
            "constructionYear": 123,
            "generalConditions": []
          }
        ]
      }
    },
    "fullTexts": [
      "<string>"
    ],
    "keywords": [
      "<string>"
    ]
  },
  "size": 10,
  "sortBy": "FIRST_SEEN_AT",
  "searchAfterHash": "<string>",
  "boosts": {}
}
'
{
  "data": {
    "items": [
      {
        "adverts": [
          {
            "contactInCharge": {
              "email": "<string>",
              "firstName": "<string>",
              "lastName": "<string>",
              "phoneNumber": "<string>",
              "pseudonym": "<string>"
            },
            "description": "<string>",
            "firstSeenAt": "2022-10-21T11:31:33.593Z",
            "flxId": "<string>",
            "isOnline": true,
            "lastSeenAt": "2022-10-21T11:31:33.593Z",
            "location": [
              123
            ],
            "medias": {
              "images": [
                {
                  "gaussianHash": "<string>",
                  "imageId": "<string>",
                  "meanHash": "<string>",
                  "perceptualHash": "<string>",
                  "colorHash": "<string>",
                  "differenceHash": "<string>",
                  "url": "<string>"
                }
              ],
              "virtualVisitExternalUrl": [
                "<string>"
              ]
            },
            "price": {
              "charges": {
                "yearlyCondoniumFees": 123,
                "yearlyElectricityFees": 123,
                "yearlyHeatingFees": 123,
                "yearlyHousingTax": 123,
                "yearlyLivingTax": 123,
                "yearlyRentalFees": 123,
                "monthlyRentSupplement": 123
              },
              "currency": null,
              "initial": {
                "source": {
                  "flxId": "<string>",
                  "url": "<string>",
                  "website": "<string>"
                },
                "value": 123,
                "valuePerArea": 123
              },
              "isAuction": true,
              "latest": {
                "source": {
                  "flxId": "<string>",
                  "url": "<string>",
                  "website": "<string>"
                },
                "value": 123,
                "valuePerArea": 123
              },
              "scope": null,
              "warrantyDeposit": 123,
              "variation": {
                "sinceLastModified": 123,
                "sincePublished": 123,
                "absoluteSinceLastModified": 123,
                "absoluteSincePublished": 123
              }
            },
            "source": {
              "flxId": "<string>",
              "url": "<string>",
              "website": "<string>"
            },
            "title": "<string>",
            "offlineAt": "2022-10-21T11:31:33.593Z",
            "hasAnomaly": true,
            "isPro": true,
            "seller": {
              "flxId": "<string>",
              "name": "<string>",
              "siren": "<string>",
              "type": "SELLER_TYPE_AGENCY"
            },
            "isExclusive": true
          }
        ],
        "description": "<string>",
        "flxId": "<string>",
        "habitation": {
          "bathroomCount": 123,
          "bedroomCount": 123,
          "characteristics": {
            "hasAlarm": true,
            "hasBalcony": true,
            "hasCellar": true,
            "hasConcierge": true,
            "hasDigicode": true,
            "hasFireplace": true,
            "hasGarage": true,
            "hasGarden": true,
            "hasGrenier": true,
            "hasInterphone": true,
            "hasJacuzzi": true,
            "hasLand": true,
            "hasLift": true,
            "hasMezzanine": true,
            "hasParking": true,
            "hasPool": true,
            "hasTerrace": true,
            "hasVisAVis": true,
            "isPeaceful": true
          },
          "climate": {
            "epcClimate": "GREENHOUSE_CLASSIFICATION_C",
            "epcClimateScore": 123,
            "epcEnergy": "ENERGY_CLASSIFICATION_C",
            "epcEnergyScore": 123,
            "epcClimateDate": "2022-10-21T11:31:33.593Z",
            "epcEnergyDate": "2022-10-21T11:31:33.593Z"
          },
          "features": {
            "exposure": null,
            "furniture": null,
            "propertyFloor": 123,
            "propertyTotalFloor": 123,
            "viewTypes": [],
            "constructionMaterials": [],
            "hasThroughExposure": true,
            "viewOns": []
          },
          "heatTypes": [],
          "heatTypeDetails": [],
          "heatings": [],
          "propertyCondition": {
            "constructionYear": 123,
            "interiorCondition": null,
            "renovationYear": 123,
            "generalConditions": []
          },
          "roomCount": 123,
          "surface": {
            "balconies": 123,
            "floorSpace": 123,
            "gardens": 123,
            "groundFloor": 123,
            "kitchen": 123,
            "livingSpace": 123,
            "livingRoom": 123,
            "terraces": 123,
            "total": 123
          },
          "type": [],
          "wcCount": 123
        },
        "hasAnomaly": true,
        "isUrgent": true,
        "land": {
          "canConstruct": true,
          "hasBuildingPermit": true,
          "hasElectricity": true,
          "hasTelecom": true,
          "hasWater": true,
          "isServiced": true,
          "surface": 123,
          "surfaceConstructable": 123,
          "type": null
        },
        "location": {
          "city": "<string>",
          "cityCoordinate": {
            "location": [
              2.3522,
              48.8566
            ]
          },
          "department": "<string>",
          "inseeCode": "<string>",
          "irisCode": "<string>",
          "locationCoordinate": {
            "location": [
              2.3522,
              48.8566
            ]
          },
          "postalCode": "<string>"
        },
        "medias": {
          "images": [
            {
              "gaussianHash": "<string>",
              "imageId": "<string>",
              "meanHash": "<string>",
              "perceptualHash": "<string>",
              "colorHash": "<string>",
              "differenceHash": "<string>",
              "url": "<string>"
            }
          ],
          "virtualVisitExternalUrl": [
            "<string>"
          ]
        },
        "meta": {
          "firstSeenAt": "2022-10-21T11:31:33.593Z",
          "isTotallyOffline": true,
          "lastPublishedAt": "2023-11-07T05:31:56Z",
          "lastSeenAt": "2022-10-21T11:31:33.593Z",
          "lastUpdatedAt": "2022-10-21T11:31:33.593Z",
          "totallyOfflineAt": "2022-10-21T11:31:33.593Z"
        },
        "parking": {
          "count": 123,
          "numberOfCars": 123,
          "surface": 123,
          "type": null
        },
        "price": {
          "charges": {
            "yearlyCondoniumFees": 123,
            "yearlyElectricityFees": 123,
            "yearlyHeatingFees": 123,
            "yearlyHousingTax": 123,
            "yearlyLivingTax": 123,
            "yearlyRentalFees": 123,
            "monthlyRentSupplement": 123
          },
          "currency": null,
          "initial": {
            "source": {
              "flxId": "<string>",
              "url": "<string>",
              "website": "<string>"
            },
            "value": 123,
            "valuePerArea": 123
          },
          "isAuction": true,
          "latest": {
            "source": {
              "flxId": "<string>",
              "url": "<string>",
              "website": "<string>"
            },
            "value": 123,
            "valuePerArea": 123
          },
          "scope": null,
          "warrantyDeposit": 123,
          "variation": {
            "sinceLastModified": 123,
            "sincePublished": 123,
            "absoluteSinceLastModified": 123,
            "absoluteSincePublished": 123
          }
        },
        "tags": [
          "<string>"
        ],
        "title": "<string>",
        "type": "CLASS_HOUSE",
        "offer": {
          "isCurrentlyOccupied": true,
          "renting": {
            "isColocation": true,
            "isLongTerm": true,
            "isShortTerm": true,
            "isSubLease": true
          },
          "type": "OFFER_BUY"
        }
      }
    ],
    "searchAfterHash": "<string>",
    "count": 123
  }
}

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.

Endpoint en BETA. L’algorithme de scoring de similarité (boosts, distance) est susceptible d’évoluer. Le contrat d’entrée/sortie reste stable. Signalez-nous tout résultat incohérent — nous ajustons les boosts en continu.
Recherche de biens similaires à une property de référence (par flxId ou par payload). Pratique pour les cas peer comparison / AVM : à partir d’un bien donné, trouver les N biens les plus proches en termes de localisation, surface, prix, type. Le scoring repose sur des boosts de pertinence, passés via le champ optionnel boosts. À privilégier pour : modules “biens similaires” sur fiche bien, AVM peer-based, recommandations utilisateur, alimentation d’un comparateur.

Cas d’usage

  • Module “biens similaires” sur une fiche détaillée (suggestions contextualisées)
  • AVM (Automated Valuation Model) : prix médian / quartile sur peers proches
  • Comparateur : trouver 5-10 biens comparables à présenter à un acheteur
  • Détection d’anomalie de prix : un bien dont les peers sont 30% plus chers
  • Réassurance vendeur : “voici les biens vendus / en vente comparables”

Filtres clés

Mêmes filtres que search/lite (pas d’adverts[] nested, pas de parking, pas de process, pas de tags, pas de hasAnomaly, pas de isUrgent). Champ additionnel : boosts (objet optionnel) — map nom de champ → coefficient pour ajuster le poids de chaque dimension de similarité (ex: pondérer plus fort la distance géo vs la surface). Laissez vide pour utiliser les boosts par défaut Fluximmo.
Le filtre location[].city est ignoré côté moteur de recherche. Utilisez postalCode, inseeCode ou department pour filtrer par zone administrative — sinon le résultat couvre toute la France.

Exemples

Exemple 1 — Peer comparison à partir d’un quartier + critères de référence

Cas AVM peer-based : on cherche des biens similaires à un T3 ~70 m² à vendre dans le 11e arrondissement de Paris, dans un rayon de 1.5 km autour d’un point de référence, budget proche, même type. Le moteur retourne les biens les plus similaires triés par score.
Pour une similarité à partir d’un flxId existant, fetchez d’abord la property cible via GET /v2/protected/properties/{flxId} pour récupérer ses caractéristiques, puis utilisez-les comme filtres dans le payload ci-dessous. Cet endpoint n’accepte pas flxId directement comme entrée.
{
  "size": 10,
  "sortBy": "RELEVANCE",
  "orderBy": "DESC",
  "search": {
    "filterProperty": {
      "location": [
        {
          "locationCoordinate": {
            "location": {
              "geoDistance": {
                "pin": { "lat": 48.8566, "lon": 2.3776 },
                "distanceKm": 1.5
              }
            }
          }
        }
      ],
      "type": ["CLASS_FLAT"],
      "offer": [{ "type": "OFFER_BUY" }],
      "price": { "latest": { "value": { "min": 450000, "max": 750000 } } },
      "habitation": {
        "surface": { "total": { "min": 55, "max": 90 } },
        "bedroomCount": { "min": 2, "max": 3 }
      },
      "meta": { "isTotallyOffline": false }
    }
  },
  "boosts": {
    "habitation.surface.total": 2.0,
    "price.latest.value": 1.5
  }
}
curl -X POST https://api.fluximmo.io/v2/protected/properties/search/lite/similar \
  -H "x-api-key: $FLUXIMMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d @payload.json

Pagination

Cursor searchAfterHash identique à search full. size accepte jusqu’à 100 sur cet endpoint (à confirmer selon votre quota). sortBy=RELEVANCE est le tri naturel ici (score de similarité), mais vous pouvez forcer un autre critère (PRICE, FIRST_SEEN_AT) si besoin.

Authorizations

x-api-key
string
header
required

Body

application/json
orderBy
enum<string>
required
Available options:
ASC,
DESC
Example:

"DESC"

size
number
default:10
required
Required range: 1 <= x <= 100
Example:

10

sortBy
enum<string>
required
Available options:
FIRST_SEEN_AT,
PRICE,
LAST_UPDATED_AT,
LAST_SEEN_AT,
RELEVANCE
Example:

"FIRST_SEEN_AT"

searchAfterHash
string

The searchAfterHash parameter allows you to retrieve the next page of results by using the searchAfterHash value returned in the response from the previous page. This method eliminates the complexities of traditional pagination methods and ensures accurate results, regardless of insertions or deletions in the dataset.

boosts
object

A map of field names to boost values

Response

data
object
required