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.

Une Advert = annonce individuelle sur un portail. 1 URL = 1 Advert. Plusieurs adverts décrivant le même bien physique sont rattachées à une même Property parente après déduplication.

Champs principaux

Schéma OpenAPI complet rendu plus bas par Mintlify (AdvertDto). Tableau ci-dessous : champs métier + champs spécifiques advert.
ChampTypeDescription
flxIdstringIdentifiant unique Fluximmo de l’advert.
propertyFlxIdstringflxId de la Property parente côté Fluximmo (toujours présent en prod). Deux adverts avec le même propertyFlxId sont des doublons d’un même bien physique.
mainPropertyAdFlxIdstringflxId de l’Advert primaire (premier dupliqué détecté) au sein du groupe. À distinguer de propertyFlxId qui pointe vers la Property parente. (déprécié — utiliser propertyFlxId à la place. Conservé pour rétro-compatibilité.)
typeenumMêmes valeurs que PropertyDto.type.
titlestringTitre de l’annonce tel que sur le portail source.
descriptionstringDescription telle que sur le portail source.
sourceSourceDto{ flxId, url, website }website = identifiant interne du portail/source (grands réseaux d’agences, mandataires indépendants, agences locales, etc.) + URL canonique.
sellerLightSellerDto{ flxId, name, siren, type } avec typeSELLER_TYPE_AGENCY, SELLER_TYPE_NETWORK, SELLER_TYPE_UNKNOWN.
contactInChargeContactDtoContact en charge (quand disponible).
isOnlinebooleanAnnonce actuellement en ligne sur le portail.
isProbooleanVendeur professionnel.
isExclusivebooleanAnnonce déclarée exclusive par le vendeur.
isAuctionbooleanAnnonce de type enchère.
isUrgentbooleanMarquée urgent.
firstSeenAtDatePremière fois que Fluximmo a vu cette advert (ISO 8601).
lastSeenAtDateDernière fois vue.
lastModifiedAtDateDernière modification détectée (ISO 8601).
currentPriceAdvertPriceDto{ value, valuePerArea } — prix courant de l’advert (€).
currencyenumCURRENCY_EUR ou CURRENCY_USD.
scopeenumPRICING_ONE_OFF ou PRICING_MENSUAL.
chargesChargesDtoCharges récurrentes, taxes, suppléments de loyer, frais annuels.
warrantyDepositnumberDépôt de garantie (location).
offerOfferDtoVoir Property → offer.
locationAdLocationDtoVoir Property → location (équivalent, sans region/country natifs — utiliser department et postalCode).
habitationTypeHabitationDtoIdem Property : { surface, roomCount, bedroomCount, climate (DPE/GES), characteristics, features, … }.
landTypeLandDtoDétails terrain.
parkingTypeParkingDtoDétails parking.
mediasMediasDtoPhotos / médias de cette advert.
tagsstring[]Tags non structurés.
hasAnomalybooleanIncohérence détectée.
Note — pour les structures partagées (OfferDto, TypeHabitationDto, MetaDto-like), voir la page Property. L’Advert n’a pas de bloc meta séparé : firstSeenAt, lastSeenAt, lastModifiedAt, isOnline sont au niveau racine de l’advert.

Events spécifiques aux adverts

L’Advert est l’objet dynamique (ce qui change dans le temps). Les webhooks ALERT_MATCH_ADVERT_EVENT couvrent :
  • PRICE — toute variation de prix (même 1 €).
  • REPUBLISHED — passage isOnline: falsetrue.
  • UNPUBLISHED — passage isOnline: truefalse.
Le check interne CHECK (vérification sans changement détecté) ne déclenche pas de webhook. Détails : Match types & cycle alerte.

JSON exemple

{
  "flxId": "adv_01HXY...",
  "propertyFlxId": "prop_01HXY...",
  "mainPropertyAdFlxId": "adv_01HXY_main",
  "type": "CLASS_FLAT",
  "title": "T3 75m² Bastille - terrasse",
  "source": {
    "website": "<portail-a>",
    "url": "https://<portail-a>.example/annonces/...",
    "flxId": "src_01HXY..."
  },
  "seller": { "name": "Agence Bastille Immo", "type": "SELLER_TYPE_AGENCY", "siren": "812345678" },
  "isOnline": true,
  "isPro": true,
  "isExclusive": false,
  "isAuction": false,
  "currency": "CURRENCY_EUR",
  "scope": "PRICING_ONE_OFF",
  "currentPrice": { "value": 435000, "valuePerArea": 5800 },
  "offer": { "type": "OFFER_BUY", "isCurrentlyOccupied": false },
  "location": {
    "postalCode": "75011", "inseeCode": "75111", "city": "Paris",
    "locationCoordinate": { "lat": 48.857, "lng": 2.376 }
  },
  "habitation": { "surface": { "total": 75 }, "roomCount": 3, "bedroomCount": 2 },
  "firstSeenAt": "2025-04-22T09:11:00.000Z",
  "lastSeenAt":  "2025-04-30T18:42:00.000Z",
  "lastModifiedAt": "2025-04-29T07:00:00.000Z"
}
Échantillon live : GET /v2/sample/adverts — voir Sample data.

Différences clés vs Property

Détails conceptuels : Property vs Advert.

Déduplication côté client (propertyFlxId)

Chaque advert porte un propertyFlxId qui pointe vers sa Property parente côté Fluximmo. Deux adverts avec le même propertyFlxId sont des doublons d’un même bien physique. Pour identifier l’advert primaire d’un groupe (le premier dupliqué détecté), utilisez mainPropertyAdFlxId.
// Advert 1 — racine de la chaîne
{ "flxId": "adv_aaa", "propertyFlxId": "prop_xxx", "mainPropertyAdFlxId": "adv_aaa", "source": { "website": "<portail-a>" } }

// Advert 2 — doublon ingéré 12 h plus tard sur un autre portail
{ "flxId": "adv_bbb", "propertyFlxId": "prop_xxx", "mainPropertyAdFlxId": "adv_aaa", "source": { "website": "<portail-b>" } }
Côté DB, vous savez que adv_bbb est doublon de adv_aaa (même propertyFlxId). Un client ADVERTS-only peut ainsi reconstruire sa propre vue agrégée à la Property en groupant par propertyFlxId — sans dépendre de l’API properties côté Fluximmo.

Cas d’usage

Alerte chasseur temps réel. Vous voulez chaque variation de prix, chaque republication d’annonce ? Souscrivez ALERT_MATCH_ADVERT_EVENT — payload complet dans le webhook (pas de refetch nécessaire). Réplication BDD source-par-source. 1 advert = 1 ligne par portail. Idéal pour reconstituer en local le flux brut multi-portail, garder la trace de chaque URL et de qui (quel seller) a publié quoi. Tracking concurrentiel par agence. seller.flxId + source.website permettent de suivre l’inventaire d’une agence donnée sur un portail donné, et de mesurer firstSeenAtUNPUBLISHED (durée de vie de l’annonce).

Endpoints associés

contactInCharge
object
required
charges
object

Breakdown of recurring property-related charges, taxes, rent supplements, and annual fees associated with the asset.

currency
enum<string>

Currency of the advert

Available options:
CURRENCY_EUR,
CURRENCY_USD
Example:

null

currentPrice
object

Current price of the advert

description
string

Description of the advert as it is on the source

firstSeenAt
string<date-time>

Date should be in ISO format (ex: 2022-10-21T11:31:33.593Z)

Example:

"2022-10-21T11:31:33.593Z"

flxId
string

Unique identifier of the advert

habitation
object

Habitation details of the property

hasAnomaly
boolean

An anomaly or incoherence have been detected

isAuction
boolean

Is this advert an auction

isUrgent
boolean

Is this advert marked as urgent

land
object

Land details of the property

lastModifiedAt
string<date-time>

Date should be in ISO format (ex: 2022-10-21T11:31:33.593Z)

Example:

"2022-10-21T11:31:33.593Z"

location
object

Location details of the advert

medias
object

Medias of the advert

parking
object

Parking details of the property

scope
enum<string>

Pricing scope of the advert - mensual or onetime

Available options:
PRICING_ONE_OFF,
PRICING_MENSUAL
Example:

null

source
object

Source of the advert

tags
string[]

Unstructured tags of the advert

title
string

Title of the advert as it is on the source

type
enum<string>

Type of the advert

Available options:
CLASS_UNKNOWN,
CLASS_HOUSE,
CLASS_FLAT,
CLASS_PROGRAM,
CLASS_SHOP,
CLASS_PREMISES,
CLASS_OFFICE,
CLASS_LAND,
CLASS_BUILDING,
CLASS_PARKING,
CLASS_ROOM,
CLASS_OTHER
Example:

"CLASS_HOUSE"

warrantyDeposit
number

Warranty deposit for renting this property

offer
object

Offer details of the advert

mainPropertyAdFlxId
string

FlxId of the first duplicated advert we found for this advertised property

propertyFlxId
string

FlxId of the property this advert is linked to

isOnline
boolean

Is the advert online or not

lastSeenAt
string<date-time>

Last time we saw this advert

isPro
boolean

Is the seller a professional or not

seller
object

Seller details of the advert

isExclusive
boolean

Is the advert exclusive to the seller