Superimmo.com le moteur de recherche d'agences immobilières

Nous contacter

Besoin d'aide pour votre intégration ?

Pour toute question sur la mise en place de votre flux, contactez notre service technique.

Adaptabilité garantie

Le format présenté dans ce document est notre format natif, celui vers lequel nous convertissons tous les flux que nous recevons. Si votre logiciel exporte déjà dans un autre format (Poliris, Ubiflow, XML ou CSV maison…), inutile de le réécrire : envoyez-nous votre flux actuel et notre équipe technique configurera la conversion.

Vous utilisez un logiciel du marché ?

Plus de 150 logiciels immobiliers sont déjà connectés à Superimmo.com. Dans ce cas, pas de flux à développer : sélectionnez votre logiciel et suivez la procédure d'activation. Cette documentation s'adresse aux agences et éditeurs qui diffusent en direct.

Obligatoire Champ indispensable, l'annonce est ignorée sans lui Recommandé Améliore la qualité et la visibilité Optionnel Information complémentaire

Comment nous transmettre vos annonces ?

Méthode Description Fréquence
URL simple Un lien internet vers un fichier XML/JSON (éventuellement zippé) que nous récupérons automatiquement Toutes les heures
Dépôt FTP/SFTP Un espace sécurisé sur nos serveurs où vous déposez vos fichiers (identifiants fournis par nos soins) À chaque dépôt
API REST Un endpoint sur votre infrastructure, avec authentification (voir ci-dessous) Toutes les heures
Email Envoi manuel d'un fichier (pour démarrage ou tests) Manuel

Authentification API

Nous supportons tous les types d'authentification pour vos API :
Bearer Token Token JWT ou API key dans le header Authorization
API Key Clé dans un header (X-API-Key) ou en paramètre d'URL
Basic Auth Identifiant et mot de passe
OAuth 2.0 Authentification avec refresh token
Token URL Token directement dans l'URL (?token=xxx)
Custom Header Header personnalisé selon vos spécifications

Un flux, plusieurs agences

Un même fichier peut contenir les annonces de plusieurs agences (réseau, franchise, éditeur de logiciel) : chaque <bien> porte la référence de son agence dans agence.reference. Chaque agence est ensuite activée individuellement sur Superimmo.com.

Notes importantes

Ce que nous traitons automatiquement

Vous n'avez pas besoin de nettoyer vos données, nous nous en chargeons :

  • Description : le HTML est nettoyé, les balises <br>, <p>, <li> sont converties en retours à la ligne et en puces
  • Téléphone : seuls les chiffres sont conservés, le format +33 est converti en 0
  • Emails multiples : les séparateurs ; , / & sont acceptés
  • Prix et surfaces : les virgules sont converties en points, les espaces et le symbole € sont supprimés
  • Caractères spéciaux : les entités HTML (&amp;, &eacute;, etc.) sont décodées
  • Localité : le couple code postal + ville est rapproché de notre référentiel de communes, même avec des variantes d'orthographe
Détection des mises à jour

À chaque import, nous calculons une empreinte de chaque <bien>. Si rien n'a changé depuis le dernier passage, l'annonce n'est pas retraitée (gain de performance, aucune perte de statistiques).

Conséquence : si vous remplacez une photo sans changer son URL, nous ne détecterons pas le changement. Pensez à modifier l'URL (nom de fichier, paramètre ?v=2…) quand le contenu change.

Annonces absentes = annonces archivées

Le flux doit toujours contenir l'intégralité de vos annonces actives. Toute annonce présente lors du précédent import et absente du flux courant est automatiquement archivée (retirée du site). Il n'y a donc pas de balise « supprimé » à envoyer : il suffit de ne plus inclure le bien.

Valeurs booléennes

Pour tous les champs oui/non (équipements, chauffage, vues…), utilisez 1 / 0 ou true / false. Une balise vide ou absente est considérée comme « non ». Évitez « oui »/« non » en toutes lettres.

Agence & contact

Identification de l'agence
La référence agence est la clé de rattachement entre vos annonces et la fiche agence sur Superimmo.com. Elle doit être stable dans le temps (identifiant interne, code agence, SIRET…), jamais le nom de l'agence.
Champ Description Statut
agence.reference Identifiant unique et stable de l'agence dans votre système. Une annonce dont l'agence n'est pas encore activée chez nous est mise en attente, jamais perdue. Obligatoire
agence.nom Nom commercial de l'agence (facilite le rattachement lors de l'activation) Recommandé
Contact de réception des demandes
Les demandes de contact des internautes sont envoyées à l'email indiqué pour chaque annonce. À défaut, c'est l'email de la fiche agence qui est utilisé.
Champ Description Statut
contact.email Email de réception des contacts pour cette annonce. Plusieurs adresses possibles :
<email>a@agence.fr;b@agence.fr</email>
Recommandé
contact.telephone Téléphone affiché sur l'annonce (10 chiffres, le +33 est accepté) Recommandé
contact.nom Nom du négociateur en charge du bien Optionnel

Identification de l'annonce

Références et dates
Champ Description Statut
reference.interne Votre référence d'annonce, unique au sein de l'agence et stable dans le temps (255 caractères max). C'est elle qui permet la mise à jour d'une annonce d'un import à l'autre. Obligatoire
reference.api_key Identifiant technique renvoyé dans les demandes de contact (API leads, CRM). Par défaut égal à la référence interne. Recommandé
date_creation Date de création de l'annonce (AAAA-MM-JJ ou AAAA-MM-JJ HH:MM:SS) Recommandé
date_maj Date de dernière modification Recommandé
date_mandat Date de signature du mandat Optionnel
Type de transaction et de bien
Champ Description Statut
prestation Type de transaction : vente ou location Obligatoire
propriete Type de bien (voir la liste des valeurs ci-dessous). Une valeur inconnue est classée en divers. Obligatoire
sous_type Précision libre sur le type : villa, duplex, longère, box, bureaux… Optionnel
options.type_mandat exclusif pour afficher la mention « Exclusivité », simple sinon Optionnel

Valeurs acceptées pour propriete

appartement Appartement
studio Studio
loft Loft / atelier
maison Maison / villa
chateau Château
hotel_particulier Hôtel particulier
immeuble Immeuble
terrain Terrain
parking Parking / box / garage
local_commercial Local commercial / bureaux
divers Autre
Les annonces de programmes neufs (lots de promoteur) ne relèvent pas de ce flux : elles sont diffusées sur SuperNeuf via un format dédié.

Localisation

Adresse et commune
Champ Description Statut
code_postal Code postal du bien (5 chiffres) Obligatoire
ville Nom de la commune. Le couple code postal + ville est rapproché de notre référentiel ; en cas d'ambiguïté, la commune la plus proche est retenue. Obligatoire
adresse Adresse du bien (numéro et voie) Recommandé
latitude / longitude Coordonnées GPS décimales (ex : 48.8698 / 2.3421). Ignorées si elles sont à plus de 25 km de la commune déclarée. Recommandé
precision_localite Précision de la position sur la carte : address (adresse exacte), district (quartier), city (commune) ou personalized (rayon libre, en mètres dans precision_localite_distance) Optionnel
Localisation approximative
Pour ne pas révéler la commune réelle d'un bien (mandat confidentiel, petite commune), vous pouvez indiquer une commune de substitution qui sera affichée à la place.
Champ Description Statut
ville_2 / code_postal_2 Commune affichée à la place de la commune réelle. Le bien reste positionné sur la commune réelle pour la recherche. Optionnel
afficher_ville_approximative 1 pour afficher la mention « à proximité de » sans changer de commune Optionnel
georisque 1 pour afficher le lien vers les risques naturels et technologiques de la commune (georisques.gouv.fr) Optionnel

Prix & honoraires

Prix
Champ Description Statut
prix Prix de vente ou loyer mensuel en euros, honoraires inclus (nombre entier ou décimal, sans symbole). Un prix vide ou inférieur à 10 € est traité comme « prix non communiqué ». Obligatoire
options.prix_hors_honoraire Prix net vendeur (vente) — obligation d'affichage lorsque les honoraires sont à la charge de l'acquéreur Recommandé
options.honoraires Montant des honoraires TTC en euros Recommandé
options.pourcentage_frais_agence_ttc Honoraires TTC exprimés en pourcentage du prix (ex : 4.5) Recommandé
options.honoraires_pour À la charge de : seller (vendeur), buyer (acquéreur) ou both Recommandé
options.taxe_fonciere Taxe foncière annuelle en euros Optionnel
options.taxe_habitation Taxe d'habitation annuelle en euros Optionnel
options.prix_terrain_seul / options.prix_construction_seule Décomposition terrain + construction (maisons neuves, constructeurs) Optionnel
Barème d'honoraires

L'URL de votre barème d'honoraires (bareme_url, voir Visite virtuelle & barème) est affichée sur chaque annonce conformément à l'arrêté du 10 janvier 2017.

Surfaces & pièces

Surfaces
Champ Description Statut
surface Surface habitable en m² (décimales acceptées). Pour un terrain, c'est options.surface_terrain qui fait foi. Obligatoire
options.surface_terrain Surface du terrain en m² (obligatoire pour un terrain, recommandée pour une maison) Recommandé
options.surface_carrez Surface loi Carrez (lots de copropriété) Recommandé
options.surface_sejour Surface du séjour Optionnel
options.surface_cuisine, surface_salle_a_manger Surfaces des autres pièces de vie Optionnel
options.surface_balcon, surface_terrasse, surface_loggia, surface_veranda, surface_jardin Surfaces des extérieurs Optionnel
options.surface_cave, surface_garage Surfaces des annexes Optionnel
options.hauteur_plafond Hauteur sous plafond en mètres Optionnel
Pièces et niveaux
Champ Description Statut
nb_pieces Nombre de pièces principales (entier, 99 max). Non pris en compte pour les terrains, parkings et immeubles. Obligatoire
options.nb_chambres Nombre de chambres Recommandé
options.nb_salles_de_bain / nb_salles_eau Nombre de salles de bain / salles d'eau Recommandé
options.nb_wc Nombre de WC Optionnel
options.etage Étage du bien (0 = rez-de-chaussée) Recommandé
options.nb_etages Nombre d'étages de l'immeuble Optionnel
options.nb_niveau Nombre de niveaux du bien (maison, duplex) Optionnel
options.nb_chambres_rdc Nombre de chambres en rez-de-chaussée Optionnel
options.nb_parkings, nb_garages, nb_boxes, nb_caves Nombre de stationnements, garages, boxes et caves Optionnel
options.nb_balcon, nb_terrasse Nombre de balcons et terrasses Optionnel

Description

Champ Description Statut
description.fr_FR Texte de l'annonce. Le HTML est toléré et nettoyé ; les retours à la ligne sont conservés. Encapsulez le texte dans un <![CDATA[ … ]]> pour éviter les problèmes d'échappement. Obligatoire
Contenu de la description

Le titre de l'annonce est généré automatiquement (type de bien, pièces, surface, commune). Les mentions légales (honoraires, DPE, copropriété) sont affichées à partir des champs structurés : inutile de les répéter dans le texte.

Diagnostics (DPE / GES)

L'affichage du DPE est une obligation légale sur toute annonce de vente ou de location d'un logement. Les étiquettes sont calculées à partir des valeurs si elles ne sont pas fournies.
Champ Description Statut
options.dpe Consommation énergétique en kWh/m²/an (nombre) Obligatoire
options.dpe_etiquette Classe énergie : une lettre de A à G Obligatoire
options.ges Émissions de gaz à effet de serre en kgCO₂/m²/an (nombre) Obligatoire
options.ges_etiquette Classe climat : une lettre de A à G Obligatoire
options.sans_dpe 1 si le bien n'est pas soumis au DPE (terrain, parking, bâtiment non chauffé…). Remplace les champs ci-dessus. Recommandé
options.dpe_date Date de réalisation du diagnostic (AAAA-MM-JJ) Recommandé
options.dpe_depense_bas / dpe_depense_haut Fourchette des dépenses annuelles d'énergie en euros (obligatoire pour les DPE réalisés depuis juillet 2021) Recommandé
options.dpe_depense_annee Année de référence des prix de l'énergie utilisés pour l'estimation Recommandé
options.diagnostic_amiante / diagnostic_plomb 1 si le diagnostic a été réalisé Optionnel

Équipements & confort

Tous les champs de cette section sont des booléens (1 / 0) placés dans le nœud <options>. N'envoyez que ceux qui sont vrais, les autres peuvent être omis.
Extérieurs
balcon Balcon
terrasse Terrasse
loggia Loggia
veranda Véranda
jardin Jardin
jardin_privatif Jardin privatif
rez_de_jardin Rez-de-jardin
piscine Piscine
barbecue Barbecue
court_de_tennis Court de tennis
espace_vert Espace vert
etang Étang
mare Mare / plan d'eau
plage_privee Plage privée
cloture Terrain clôturé
cloture_grillage, cloture_haie, cloture_mur, cloture_palissade, cloture_talus Type de clôture
Stationnement et annexes
parking Parking
parking_couvert Parking couvert
parking_a_ciel_ouvert Parking extérieur
stationnement Stationnement
garage Garage
cave Cave
sous_sol Sous-sol
grenier Grenier / combles
dependance Dépendance
remise Remise
buanderie Buanderie
service_room Chambre de service
Intérieur et agencement
cuisine_equipee Cuisine équipée
cuisine_amenagee Cuisine aménagée
cuisine_ouverte Cuisine ouverte
cuisine_semi_ouverte Cuisine semi-ouverte
cuisine_separee Cuisine séparée
coin_cuisine Coin cuisine
cuisine_industrielle Cuisine industrielle
entree Entrée
dressing Dressing
rangements Rangements / placards
wc_separes WC séparés
mezzanine Mezzanine
duplex Duplex
plain_pied Plain-pied
dernier_etage Dernier étage
traversant Traversant
chambre_au_rez_de_chaussee Chambre en RDC
parquet Parquet
moulures Moulures
boiserie Boiseries
cheminee Cheminée
spacieux Grands volumes
atypical Bien atypique
meuble Meublé
vide Non meublé
Confort, sécurité et accessibilité
ascenseur Ascenseur
acces_handicap Accès handicapé
climatisation Climatisation
double_vitrage Double vitrage
triple_vitrage Triple vitrage
simple_vitrage Simple vitrage
sur_vitrage Survitrage
fenetres_en_pvc, fenetres_en_bois, fenetres_en_aluminium Menuiseries
fibre_optique Fibre optique
television_par_cable TV par câble
interphone Interphone
visiophone Visiophone
digicode Digicode
gardien Gardien
alarme Alarme
videosurveillance Vidéosurveillance
porte_blindee Porte blindée
jacuzzi Jacuzzi
sauna Sauna
ammam Hammam
calme Environnement calme
sans_vis_a_vis Sans vis-à-vis
Vues et orientation
vue_mer Vue mer
vue_montagne Vue montagne
vue_campagne Vue campagne
vue_degagee Vue dégagée
vue_jardin Vue jardin
vue_parc Vue parc
vue_foret Vue forêt
vue_port Vue port
vue_verdure Vue verdure
vue_cour Vue cour
vue_rue Vue rue
Champ Description Statut
options.orientations.orientation Une balise par orientation, valeurs : nord, sud, est, ouest, nord_est, nord_ouest, sud_est, sud_ouest
<orientations><orientation>sud</orientation><orientation>ouest</orientation></orientations>
Optionnel
options.sejour_orientation Orientation du séjour : nord, sud, est, ouest, nord-sud, est-ouest, sud-ouest, sud-est, nord-ouest, nord-est Optionnel

Chauffage & énergie

Le chauffage est décrit par trois familles de booléens combinables : le type (individuel / collectif), l'énergie et le mécanisme. Exemple : chauffage individuel au gaz par radiateurs = chauffage_type_individuel + chauffage_energie_gaz + chauffage_mecanisme_radiateur.

Type

chauffage_type_individuel Individuel
chauffage_type_collectif Collectif

Énergie

chauffage_energie_gaz Gaz
chauffage_energie_electrique Électrique
chauffage_energie_fuel Fioul
chauffage_energie_bois Bois
chauffage_energie_granules Granulés
chauffage_energie_charbon Charbon
chauffage_energie_solaire Solaire
chauffage_energie_geothermie Géothermie
chauffage_energie_aerothermie Aérothermie
chauffage_energie_aquathermie Aquathermie
chauffage_energie_eolienne Éolienne
chauffage_energie_mixte Mixte

Mécanisme

chauffage_mecanisme_radiateur Radiateurs
chauffage_mecanisme_sol Plancher chauffant
chauffage_mecanisme_plafond Plafond chauffant
chauffage_mecanisme_central Chauffage central
chauffage_mecanisme_chaudiere Chaudière
chauffage_mecanisme_pompe_chaleur Pompe à chaleur
chauffage_mecanisme_clim Climatisation réversible
chauffage_mecanisme_convecteur Convecteurs
chauffage_mecanisme_accumulateur Accumulateurs
chauffage_mecanisme_panneaux_radiants Panneaux radiants
chauffage_mecanisme_air_pulse Air pulsé
chauffage_mecanisme_poele Poêle
chauffage_mecanisme_cheminee Cheminée
chauffage_mecanisme_individuel Individuel
chauffage_mecanisme_mixte Mixte

Eau chaude

Champ Description Statut
options.eau_chaude individuel ou collectif Optionnel
options.chauffage_eau Production : ballon_electrique, chaudiere, chauffe_eau, gaz, panneau_solaire, geothermie, thermodynamique Optionnel

État & construction

Champ Description Statut
options.etat_du_bien État général : refait_a_neuf, tres_bon_etat, bon_etat, a_rafraichir, travaux_a_prevoir, a_renover Recommandé
options.annee_construction Année de construction (4 chiffres) Recommandé
options.annee_renovation Année de la dernière rénovation Optionnel
options.type_de_construction parpaings, beton, briques, pierres, bois, pise, prefabrique Optionnel
options.couverture Toiture : tuile, ardoise, zinc, tole, shingle Optionnel
options.assainissement collectif, fosse_septique, fosse_toutes_eaux, micro_station, separation_des_eaux, puits_perdu, fosse_naturelle, fosse_morte, sans Optionnel
options.modele_maison Nom du modèle (constructeurs de maisons individuelles) Optionnel
options.mur_mitoyen 1 si mitoyen Optionnel

Spécifique terrain

Champ Description Statut
options.terrain_constructible 1 si constructible Recommandé
options.viabilise 1 si viabilisé Recommandé
options.raccorde_eau, raccorde_electricite, raccorde_gaz Raccordements existants Optionnel
options.permis_de_construire 1 si un permis de construire est accordé Optionnel
options.certificat_d_urbanisation 1 si un certificat d'urbanisme est disponible Optionnel
options.lotissement 1 si en lotissement Optionnel

Copropriété

Mentions obligatoires (loi ALUR) pour tout lot en copropriété mis en vente.
Champ Description Statut
options.copropriete 1 si le bien est soumis au statut de la copropriété Recommandé
options.nombre_lot_copropriete Nombre total de lots de la copropriété Recommandé
options.numero_lot_copropriete Numéro du lot Optionnel
options.charges_prev_annuelles Montant moyen annuel de la quote-part de charges (budget prévisionnel), en euros Recommandé
options.procedure_copropriete 1 si une procédure est en cours (art. 29-1 A et 29-1 loi 65-557, art. L615-6 CCH) Recommandé
options.detail_procedure_copropriete Détail de la procédure en cours (texte libre) Optionnel
options.statut_syndicat_temporaire administrateur_provisoire ou mandataire_ad_hoc Optionnel
options.plan_de_sauvegarde_copropriete 1 si un plan de sauvegarde est en cours Optionnel
options.etat_des_parties_communes refait_a_neuf, bon_etat, travaux_a_prevoir, a_renover Optionnel

Spécifique location

Pour une prestation = location, le champ prix correspond au loyer mensuel charges comprises.
Champ Description Statut
options.charges_mensuelles Montant mensuel des charges en euros Recommandé
options.charges_mensuelles_comprises 1 si le loyer indiqué inclut les charges (défaut : oui si charges_mensuelles est vide) Recommandé
options.prix_sans_charge Loyer hors charges en euros Optionnel
options.modalites_charges forfaitaires_mensuelles, previsionnelles_mensuelles_avec_regularisation_annuelle ou remboursement_annuel_par_le_locataire Optionnel
options.complement_loyer Complément de loyer en euros (zones d'encadrement des loyers) Optionnel
options.depot_garantie Dépôt de garantie en euros Recommandé
options.honoraires Honoraires TTC à la charge du locataire en euros Recommandé
options.etat_des_lieux Part des honoraires dédiée à l'état des lieux, en euros Recommandé
options.honoraire_frais_dossier Frais de dossier en euros Optionnel
options.caution Montant de la caution demandée Optionnel
date_disponibilite Date de disponibilité (AAAA-MM-JJ) Recommandé
options.disponible_immediatement 1 si disponible immédiatement Optionnel
options.meuble / options.vide Location meublée / vide Recommandé
options.colocation 1 si colocation acceptée Optionnel
options.profession_liberale 1 si l'exercice d'une profession libérale est autorisé Optionnel

Viager

Champ Description Statut
options.viager 1 pour une vente en viager (le prix reste renseigné avec la valeur du bien) Recommandé
options.type_de_viager libre, occupe ou vente_nu_propriete Recommandé
options.bouquet Montant du bouquet en euros Recommandé
options.rente_mensuelle Montant de la rente mensuelle en euros Recommandé
options.viager_age_personne_1 / viager_age_personne_2 Âge du ou des crédirentiers Optionnel
options.vendu_libre / options.vendu_loue Bien vendu libre / occupé par un locataire (hors viager également) Optionnel
options.sous_compromis 1 pour afficher la mention « Sous compromis » Optionnel

Photos

Champ Description Statut
photos.photo.url URL publique de l'image (JPEG ou PNG, HTTPS de préférence, 1200 px de large minimum recommandé). Une annonce sans photo est diffusée mais fortement pénalisée. Obligatoire
photos.photo.position Ordre d'affichage (1, 2, 3…). La position 1 est la photo principale. Recommandé
IMPORTANT : mise à jour des images

Notre système détecte les changements en comparant les URLs des photos.
Si vous modifiez une image sans changer son URL, la mise à jour ne sera pas détectée.

Bonnes pratiques :

  • Utilisez un nom de fichier différent pour chaque nouvelle version (ex : salon-v2.jpg)
  • Ou ajoutez un paramètre de version à l'URL (ex : salon.jpg?v=2)
  • Ou incluez un horodatage dans le nom (ex : salon-20260903.jpg)
Récupération des images en parallèle

Nous téléchargeons les images en parallèle pour optimiser les temps d'import.

Si votre serveur a des restrictions (limite de requêtes par seconde, pare-feu, protection anti-robots), merci de nous en informer pour que nous adaptions notre configuration.

Nos adresses IP publiques :

  • 146.185.45.94
  • 146.185.45.103
  • 146.185.45.209

Pensez à les autoriser si vous filtrez les accès.

Visite virtuelle & barème

Champ Description Statut
visite_virtuelle_url URL de la visite virtuelle ou de la vidéo (YouTube, Vimeo, Matterport, Nodalview, Previsite…). Une balise <iframe> complète est acceptée, nous en extrayons la source. HTTPS obligatoire pour l'intégration. Recommandé
bareme_url URL publique de votre barème d'honoraires (PDF ou page web). Peut être commun à toutes les annonces de l'agence. Recommandé

Exemple complet

Un fichier = une racine <biens> contenant un <bien> par annonce. Encodage UTF-8. Les champs non renseignés peuvent être omis. L'équivalent JSON suit exactement la même structure.
<?xml version="1.0" encoding="UTF-8"?>
<biens>
  <bien>
    <!-- ══════════ AGENCE & CONTACT ══════════ -->
    <agence>
      <reference>AG-75002</reference>
      <nom>Agence du Sentier</nom>
    </agence>
    <contact>
      <nom>Camille Martin</nom>
      <telephone>0140267707</telephone>
      <email>contact@agence-du-sentier.fr;camille@agence-du-sentier.fr</email>
    </contact>

    <!-- ══════════ IDENTIFICATION ══════════ -->
    <reference>
      <interne>VA-2026-0142</interne>
      <api_key>VA-2026-0142</api_key>
    </reference>
    <date_creation>2026-08-12 09:30:00</date_creation>
    <date_maj>2026-09-01 17:45:00</date_maj>
    <date_mandat>2026-08-10</date_mandat>
    <prestation>vente</prestation>
    <propriete>appartement</propriete>
    <sous_type>duplex</sous_type>

    <!-- ══════════ LOCALISATION ══════════ -->
    <adresse>14 rue d'Uzès</adresse>
    <code_postal>75002</code_postal>
    <ville>Paris 2e</ville>
    <latitude>48.8698</latitude>
    <longitude>2.3421</longitude>
    <precision_localite>address</precision_localite>

    <!-- ══════════ PRIX, SURFACES, PIÈCES ══════════ -->
    <prix>745000</prix>
    <surface>72.5</surface>
    <nb_pieces>3</nb_pieces>

    <!-- ══════════ DESCRIPTION ══════════ -->
    <description>
      <fr_FR><![CDATA[Au cœur du Sentier, duplex de 72 m² au dernier étage d'un immeuble pierre de taille.
Séjour traversant de 28 m² avec cuisine ouverte équipée, deux chambres, salle de bains et WC séparés.
Cave en sous-sol. Copropriété de 18 lots sans procédure en cours.]]></fr_FR>
    </description>

    <!-- ══════════ PHOTOS ══════════ -->
    <photos>
      <photo>
        <position>1</position>
        <url>https://cdn.agence-du-sentier.fr/VA-2026-0142/sejour-v2.jpg</url>
      </photo>
      <photo>
        <position>2</position>
        <url>https://cdn.agence-du-sentier.fr/VA-2026-0142/cuisine.jpg</url>
      </photo>
    </photos>

    <!-- ══════════ MÉDIAS ══════════ -->
    <visite_virtuelle_url>https://my.matterport.com/show/?m=AbCdEf123</visite_virtuelle_url>
    <bareme_url>https://www.agence-du-sentier.fr/honoraires.pdf</bareme_url>

    <!-- ══════════ OPTIONS (détails, honoraires, diagnostics, équipements) ══════════ -->
    <options>
      <type_mandat>exclusif</type_mandat>
      <prix_hors_honoraire>715000</prix_hors_honoraire>
      <honoraires>30000</honoraires>
      <pourcentage_frais_agence_ttc>4.2</pourcentage_frais_agence_ttc>
      <honoraires_pour>buyer</honoraires_pour>
      <taxe_fonciere>1450</taxe_fonciere>

      <surface_carrez>70.8</surface_carrez>
      <surface_sejour>28</surface_sejour>
      <nb_chambres>2</nb_chambres>
      <nb_salles_de_bain>1</nb_salles_de_bain>
      <nb_wc>1</nb_wc>
      <etage>5</etage>
      <nb_etages>5</nb_etages>
      <nb_niveau>2</nb_niveau>
      <nb_caves>1</nb_caves>

      <dpe>178</dpe>
      <dpe_etiquette>D</dpe_etiquette>
      <ges>36</ges>
      <ges_etiquette>D</ges_etiquette>
      <dpe_date>2025-11-20</dpe_date>
      <dpe_depense_bas>1120</dpe_depense_bas>
      <dpe_depense_haut>1560</dpe_depense_haut>
      <dpe_depense_annee>2024</dpe_depense_annee>

      <etat_du_bien>tres_bon_etat</etat_du_bien>
      <annee_construction>1880</annee_construction>
      <annee_renovation>2022</annee_renovation>

      <copropriete>1</copropriete>
      <nombre_lot_copropriete>18</nombre_lot_copropriete>
      <charges_prev_annuelles>2160</charges_prev_annuelles>
      <procedure_copropriete>0</procedure_copropriete>

      <chauffage_type_individuel>1</chauffage_type_individuel>
      <chauffage_energie_gaz>1</chauffage_energie_gaz>
      <chauffage_mecanisme_radiateur>1</chauffage_mecanisme_radiateur>

      <duplex>1</duplex>
      <dernier_etage>1</dernier_etage>
      <traversant>1</traversant>
      <cuisine_ouverte>1</cuisine_ouverte>
      <cuisine_equipee>1</cuisine_equipee>
      <wc_separes>1</wc_separes>
      <parquet>1</parquet>
      <cave>1</cave>
      <double_vitrage>1</double_vitrage>
      <fibre_optique>1</fibre_optique>
      <digicode>1</digicode>
      <interphone>1</interphone>
      <vue_degagee>1</vue_degagee>
      <orientations>
        <orientation>sud</orientation>
        <orientation>ouest</orientation>
      </orientations>
    </options>
  </bien>

  <!-- Deuxième annonce : location -->
  <bien>
    <agence><reference>AG-75002</reference></agence>
    <contact><email>location@agence-du-sentier.fr</email><telephone>0140267707</telephone></contact>
    <reference><interne>LOC-2026-0031</interne></reference>
    <prestation>location</prestation>
    <propriete>studio</propriete>
    <code_postal>75011</code_postal>
    <ville>Paris 11e</ville>
    <prix>980</prix>
    <surface>24</surface>
    <nb_pieces>1</nb_pieces>
    <date_disponibilite>2026-10-01</date_disponibilite>
    <description><fr_FR><![CDATA[Studio meublé refait à neuf, proche métro Parmentier.]]></fr_FR></description>
    <photos><photo><position>1</position><url>https://cdn.agence-du-sentier.fr/LOC-2026-0031/piece.jpg</url></photo></photos>
    <options>
      <charges_mensuelles>60</charges_mensuelles>
      <charges_mensuelles_comprises>1</charges_mensuelles_comprises>
      <modalites_charges>forfaitaires_mensuelles</modalites_charges>
      <depot_garantie>920</depot_garantie>
      <honoraires>288</honoraires>
      <etat_des_lieux>72</etat_des_lieux>
      <meuble>1</meuble>
      <etage>2</etage>
      <dpe>245</dpe>
      <dpe_etiquette>E</dpe_etiquette>
      <ges>7</ges>
      <ges_etiquette>B</ges_etiquette>
    </options>
  </bien>
</biens>
{
  "biens": [
    {
      // ══════════ AGENCE & CONTACT ══════════
      "agence": { "reference": "AG-75002", "nom": "Agence du Sentier" },
      "contact": {
        "nom": "Camille Martin",
        "telephone": "0140267707",
        "email": "contact@agence-du-sentier.fr;camille@agence-du-sentier.fr"
      },

      // ══════════ IDENTIFICATION ══════════
      "reference": { "interne": "VA-2026-0142", "api_key": "VA-2026-0142" },
      "date_creation": "2026-08-12 09:30:00",
      "date_maj": "2026-09-01 17:45:00",
      "date_mandat": "2026-08-10",
      "prestation": "vente",
      "propriete": "appartement",
      "sous_type": "duplex",

      // ══════════ LOCALISATION ══════════
      "adresse": "14 rue d'Uzès",
      "code_postal": "75002",
      "ville": "Paris 2e",
      "latitude": 48.8698,
      "longitude": 2.3421,
      "precision_localite": "address",

      // ══════════ PRIX, SURFACES, PIÈCES ══════════
      "prix": 745000,
      "surface": 72.5,
      "nb_pieces": 3,

      // ══════════ DESCRIPTION ══════════
      "description": {
        "fr_FR": "Au cœur du Sentier, duplex de 72 m² au dernier étage d'un immeuble pierre de taille.\nSéjour traversant de 28 m² avec cuisine ouverte équipée, deux chambres, salle de bains et WC séparés.\nCave en sous-sol. Copropriété de 18 lots sans procédure en cours."
      },

      // ══════════ PHOTOS ══════════
      "photos": [
        { "position": 1, "url": "https://cdn.agence-du-sentier.fr/VA-2026-0142/sejour-v2.jpg" },
        { "position": 2, "url": "https://cdn.agence-du-sentier.fr/VA-2026-0142/cuisine.jpg" }
      ],

      // ══════════ MÉDIAS ══════════
      "visite_virtuelle_url": "https://my.matterport.com/show/?m=AbCdEf123",
      "bareme_url": "https://www.agence-du-sentier.fr/honoraires.pdf",

      // ══════════ OPTIONS ══════════
      "options": {
        "type_mandat": "exclusif",
        "prix_hors_honoraire": 715000,
        "honoraires": 30000,
        "pourcentage_frais_agence_ttc": 4.2,
        "honoraires_pour": "buyer",
        "taxe_fonciere": 1450,

        "surface_carrez": 70.8,
        "surface_sejour": 28,
        "nb_chambres": 2,
        "nb_salles_de_bain": 1,
        "nb_wc": 1,
        "etage": 5,
        "nb_etages": 5,
        "nb_niveau": 2,
        "nb_caves": 1,

        "dpe": 178,
        "dpe_etiquette": "D",
        "ges": 36,
        "ges_etiquette": "D",
        "dpe_date": "2025-11-20",
        "dpe_depense_bas": 1120,
        "dpe_depense_haut": 1560,
        "dpe_depense_annee": 2024,

        "etat_du_bien": "tres_bon_etat",
        "annee_construction": 1880,
        "annee_renovation": 2022,

        "copropriete": true,
        "nombre_lot_copropriete": 18,
        "charges_prev_annuelles": 2160,
        "procedure_copropriete": false,

        "chauffage_type_individuel": true,
        "chauffage_energie_gaz": true,
        "chauffage_mecanisme_radiateur": true,

        "duplex": true,
        "dernier_etage": true,
        "traversant": true,
        "cuisine_ouverte": true,
        "cuisine_equipee": true,
        "wc_separes": true,
        "parquet": true,
        "cave": true,
        "double_vitrage": true,
        "fibre_optique": true,
        "digicode": true,
        "interphone": true,
        "vue_degagee": true,
        "orientations": ["sud", "ouest"]
      }
    },
    {
      // Deuxième annonce : location
      "agence": { "reference": "AG-75002" },
      "contact": { "email": "location@agence-du-sentier.fr", "telephone": "0140267707" },
      "reference": { "interne": "LOC-2026-0031" },
      "prestation": "location",
      "propriete": "studio",
      "code_postal": "75011",
      "ville": "Paris 11e",
      "prix": 980,
      "surface": 24,
      "nb_pieces": 1,
      "date_disponibilite": "2026-10-01",
      "description": { "fr_FR": "Studio meublé refait à neuf, proche métro Parmentier." },
      "photos": [{ "position": 1, "url": "https://cdn.agence-du-sentier.fr/LOC-2026-0031/piece.jpg" }],
      "options": {
        "charges_mensuelles": 60,
        "charges_mensuelles_comprises": true,
        "modalites_charges": "forfaitaires_mensuelles",
        "depot_garantie": 920,
        "honoraires": 288,
        "etat_des_lieux": 72,
        "meuble": true,
        "etage": 2,
        "dpe": 245,
        "dpe_etiquette": "E",
        "ges": 7,
        "ges_etiquette": "B"
      }
    }
  ]
}
Rappel important

Cet exemple illustre notre format natif. Nous nous adaptons à votre format existant, quelle que soit sa structure.

Envoyez-nous votre flux actuel et notre équipe technique configurera l'import pour correspondre exactement à vos données.