AnchorExports d’annonces immobilières : initialisez puis réconciliez votre copie locale
Constituez dans votre base une sélection d’annonces Immoteur pour l’analyser, l’enrichir ou l’utiliser dans vos outils. Préparez d’abord la réception des webhooks et activez les notifications, puis demandez un export complet. Gardez les notifications actives pendant l’initialisation et utilisez ensuite les exports delta pour vérifier que votre copie reste cohérente.
AnchorInitialisez la sélection dont vous avez besoin
Configurez un service classified-export avec les filtres et les droits d’accès
de votre compte. Un export complet livre les annonces Classified publiquement
exportables situées en France qui correspondent alors à cette sélection, pas
toute la base Immoteur ni un ensemble de biens immobiliers regroupés.
Avant de demander le premier export complet, rendez opérationnel l’endpoint qui
reçoit les webhooks et activez classified-notification-single ou
classified-notification-batch, avec onlyNew=false. Utilisez des filtres
compatibles avec ceux de classified-export et gardez ce service actif pendant
l’initialisation ainsi que les exports complets ou delta suivants.
Pour être exportable, une annonce doit avoir une localisation française complète
(code INSEE, nom de ville, code postal et département), un type de bien, un prix
et un type de transaction. Sa devise est l’euro ou n’est pas renseignée, le
statut professionnel ou non de son diffuseur est connu, et elle est liée à un
Property visible.
L’export peut aussi contenir des annonces retirées lorsqu’elles restent éligibles.
Une annonce Classified décrit une publication source. Son
propertyId désigne un regroupement Property qui peut réunir une annonce de
programme et des annonces de logements distincts. N’agrégez pas leurs prix,
surfaces ou nombres de pièces pour reconstituer l’historique d’un seul logement.
AnchorReconnaissez ce que l’export a effectivement livré
Si la sélection est vide, l’export ne livre aucun lot de données. Sa terminaison
est signalée par un message terminal contenant items: [] et isComplete: true,
comme pour un export non vide, qui peut arriver en plusieurs messages. Ne
déduisez pas la fin de l’export du nombre de messages, de leur ordre d’arrivée
ou d’une période sans livraison.
Lisez exportType dans chaque message : il indique le type réellement livré,
full ou delta. Cette valeur permet à votre intégration de traiter un export
delta qui a dû être livré en export complet.
AnchorAssociez export initial, mises à jour et contrôle des écarts
Utilisez classified-notification-single ou
classified-notification-batch, avec onlyNew=false, pour recevoir les
mises à jour d’annonces. Gardez ce service distinct de classified-export :
les notifications suivent les changements, tandis que les exports servent à
initialiser puis à contrôler votre copie locale.
Pour un même besoin, configurez des filtres compatibles. Traitez séparément les notifications qui ne relèvent pas du périmètre exportable.
Après l’accusé de réception, un worker de votre application peut appliquer les lots et réconcilier votre copie locale.
Planifiez un export delta tous les sept jours, même si les notifications
fonctionnent. Une revisite qui ne change que meta.lastSeenAt ne déclenche pas
de notification directe ; le delta sert donc aussi à réconcilier ces revisites
et à reprendre après un incident.
Pour un delta, l’export antérieur doit être réussi, compatible avec les filtres actuels et créé depuis au plus huit jours. Ce délai sert à déterminer son éligibilité, sans décrire sa conservation ni sa suppression. Sans export éligible ou si les filtres ont changé, Immoteur peut livrer un export complet ; changer uniquement l’URL de destination ne rend pas l’export antérieur incompatible.
AnchorPréservez vos données locales lors des mises à jour
Enregistrez chaque annonce reçue comme donnée source, puis conservez vos notes, scores, rapprochements et autres enrichissements locaux dans des champs ou des tables séparés. Une nouvelle donnée source peut ainsi mettre à jour l’annonce sans écraser le travail de vos équipes.
Enregistrez chaque classified.id de façon idempotente, afin qu’une même
livraison rejouée ne crée pas de doublon.
Pour choisir la version source à conserver, ignorez l’ordre d’arrivée, la
position dans un lot, le X-Immoteur-Delivery-Id et le nombre de réessais.
meta.lastModifiedAt aide à éviter qu’une livraison clairement plus ancienne
remplace une donnée source plus récente. Ne fondez pas cette décision uniquement
sur meta.lastModifiedAt ou meta.lastSeenAt : deux changements peuvent avoir
la même date.
À dates égales, traitez notamment la modification de propertyId au lieu de la
rejeter sur ce seul critère. Conservez vos enrichissements locaux et le dernier
meta.lastSeenAt utile à votre intégration.
L’absence d’une annonce dans un export ultérieur n’est pas un ordre de suppression. Décidez du cycle de vie dans votre application à partir de l’annonce reçue et de vos propres règles.
AnchorConfigurez votre synchronisation
Le guide Synchroniser les annonces immobilières
explique comment combiner l’export complet, les notifications et la
réconciliation. Consultez aussi la référence de classified-export
pour les champs exacts des messages d’export.