Stream EstateStream Estate

Changelog

Versions, changements incompatibles et nouveautés de l'API Stream Estate

Les changements de l'API v2 qui peuvent impacter votre intégration, du plus récent au plus ancien.

L'API v2 est en Beta : des changements incompatibles, notamment de syntaxe, restent possibles. Ils sont consignés ici.

S'abonner au flux RSS
Mandat, référence et contact de l'annonceur en JSON:APIAPICopier le lien de cette entrée

En JSON:API, chaque bien donne désormais le mandat, la référence et le contact de ses annonceurs, comme le JSON à plat.

Changed

  • included peut contenir un quatrième type, PropertyPublisher : un client qui n'accepte que Listing, Publisher et Source doit l'accepter ou l'ignorer. Voir Types de ressources.

Added

  • PropertyPublisher, référencée par relationships.propertyPublishers : mandate, reference et contact d'un annonceur sur ce bien. Voir Format de réponse.

Fixed

  • Un Publisher sans aucun champ renseigné renvoie "attributes": {} au lieu de [], comme le prévoit le format.
Résolution d'adresse : version 2APICopier le lien de cette entrée

La résolution d'adresse s'améliore : les correspondances sont plus fiables, et nous continuerons de les affiner pendant la bêta.

Added

  • algorithmVersion — la version de la logique qui a produit la réponse. Une réponse peut changer d'une version à l'autre. Chaque nouvelle version est annoncée ici. Voir la référence.
Résolution de l'adresse d'un bien (bêta)APICopier le lien de cette entrée

Obtenez l'adresse postale d'un bien donné.

Added

  • POST /properties/{id}/resolve-address — l'adresse du bien et son niveau de confiance, de EXACT à NONE. En bêta. Voir la référence.
Tolérance temporaire du champ enabled des règlesDépréciéAPICopier le lien de cette entrée

Une règle qui contient encore l'ancien champ enabled n'est plus refusée. Vous avez jusqu'au 2026-10-20 pour le retirer.

Deprecated

  • enabled sur une règle est toléré jusqu'au 2026-10-20 : false retire la règle, true est ignoré. Ensuite, le champ sera refusé en 400. Pour ne plus recevoir un événement, retirez sa règle. Voir Alert.
Granularité des règles et intervalles de variationBreakingAPIWebhooksCopier le lien de cette entrée

Une règle choisit sa granularité avec scope. Une règle PRICE_CHANGE accepte plusieurs intervalles de variation de prix. Les changements de prix et d'attributs déclenchent désormais des notifications.

Breaking

  • ADDITIONAL_LISTING n'existe plus, ni dans les règles ni dans les webhooks. Une règle qui l'envoie reçoit un 400. Pour être prévenu de chaque nouveau listing sur une property déjà suivie, utilisez NEW_MATCH avec scope: LISTING. Voir Alert et Webhooks.
  • variationPercent est maintenant une liste d'intervalles : [{ "gte": …, "lte": … }]. Un objet seul reçoit un 400. Voir l'intervalle de variation.
  • Une seule règle par eventType. Un doublon reçoit un 422. Voir Alert.

Changed

  • PRICE_CHANGE et OTHER_CHANGE déclenchent désormais des notifications. scope et variationPercent sont pris en compte. Voir Alert.
Recherche par URL d'annonceAPICopier le lien de cette entrée

Retrouver une property à partir de l'URL d'une annonce ne dépend plus du slash final.

Fixed

  • listings.url sur POST /properties — l'URL est reconnue avec ou sans slash final ; auparavant, la forme différente de celle publiée par le site ne renvoyait aucun résultat. Aucun changement à faire côté client, le champ url des réponses est inchangé. Voir la référence.
Règles de notification des alertesBreakingAPIWebhooksCopier le lien de cette entrée

Les règles de notificationConfig adoptent un nouveau vocabulaire ; les anciens noms sont rejetés, sans période de cohabitation.

Breaking

  • eventType : PRICE_CHANGED → PRICE_CHANGE, ANY_ATTRIBUTE_CHANGED → OTHER_CHANGE, LISTING_EXPIRED → EXPIRED, LISTING_REACTIVATED → REACTIVATED, dans les règles comme dans les webhooks reçus. Voir Alert et Webhooks.
  • thresholdPercentage, thresholdMinPercentage, thresholdMaxPercentage, thresholdDirection et enabled disparaissent des règles : utilisez la liste d'intervalles signés variationPercent ([{ "lte": -5 }] pour une baisse d'au moins 5 %). Voir l'intervalle de variation.

Added

  • scope sur chaque règle — PROPERTY (défaut) ou LISTING, la granularité de la notification. Voir Alert.
Norme du diagnostic énergétiqueAPICopier le lien de cette entrée

Le bloc unit.diagnostic d'une property gagne trois champs, dont la norme réglementaire du diagnostic, et cette norme devient filtrable.

Added

  • unit.diagnostic.standard — FR_DPE_2006 ou FR_DPE_2021, absent quand la source ne l'indique pas ; liste préfixée par pays, appelée à s'étendre. Voir la référence.
  • unit.diagnostic.methodVersion et unit.diagnostic.reference — révision du modèle de données et numéro du certificat au registre émetteur. Voir la référence.
  • Filtre property.unit.diagnostic.standard sur POST /properties, avec in / nin / inOrMissing, utilisable dans le criteria d'une alerte. Voir Filtrage — norme du diagnostic énergétique.
Mise à jour partielle des alertesAPICopier le lien de cette entrée

PUT /alerts/{uuid} ne modifie désormais que les champs nommés dans le corps, comme toute autre mise à jour de l'API.

Changed

  • Un champ omis du corps de PUT /alerts/{uuid} conserve sa valeur enregistrée ; il était auparavant remis à sa valeur par défaut de création. Voir Alertes — mettre à jour une alerte.
  • Pour effacer un champ, envoyez-le à null. En particulier, une alerte s'élargit à toutes les properties avec "criteria": null, et non plus en omettant criteria.
Annotations des outils MCPMCPCopier le lien de cette entrée

Les outils du serveur MCP déclarent désormais leur comportement selon la spécification MCP : un titre lisible et les indications readOnlyHint, destructiveHint, idempotentHint et openWorldHint, comme l'exige l'annuaire des connecteurs Claude.

Changed

  • Les outils de lecture (search_properties, resolve_location, list_alerts) s'exécutent sans demande de confirmation dans un assistant qui respecte ces indications, Claude compris ; création, modification et suppression d'alerte continuent de demander confirmation. Voir Ce que l'assistant peut faire.

Added

  • Chaque outil expose title et annotations dans la réponse tools/list. Voir le guide MCP.
Cohérence des prixAPICopier le lien de cette entrée

Chaque annonce reçoit désormais un verdict de cohérence de prix, calculé en comparant son prix au m² à la médiane du marché local. Le verdict est conservateur : en cas de doute, le bien reste visible.

Changed

  • Les properties dont toutes les annonces ont un prix incohérent sont masquées des résultats de POST /properties et des alertes par défaut — listings.priceCoherent vaut implicitement true, les biens au verdict indéterminé restent visibles. Voir Filtrage — masques par défaut.
  • Les champs de prix filtrables d'une property (property.pricing.displayed, property.pricing.pricePerArea, variations de prix) sont calculés sans ses annonces au prix incohérent.

Added

  • listings.priceCoherent — true reproduit le comportement par défaut, false renvoie uniquement les properties dont toutes les annonces sont incohérentes. Jugé au niveau de la property, contrairement aux autres filtres listings. Voir la référence.
Reprise automatique des webhooks suspendusWebhooksCopier le lien de cette entrée

Une destination webhook coupée par le circuit breaker n'a plus besoin d'une réactivation manuelle pour reprendre les livraisons.

Changed

  • Une destination SUSPENDED est sondée automatiquement (toutes les 5 minutes, puis à intervalle croissant jusqu'à 6 h) et repasse en ACTIVE dès que votre endpoint répond, avec rejeu progressif des notifications suspendues ; la console reste disponible pour forcer la reprise. Voir Notifications — circuit breaker.
  • Au plus 5 000 notifications sont conservées par destination suspendue ; au-delà, les événements restent visibles mais ne sont plus rejoués. Voir Notifications — circuit breaker.
Serveur MCPMCPCopier le lien de cette entrée

Added

  • Serveur MCP à https://api-v2.stream.estate/mcp (transport HTTP, authentification X-API-KEY). Permet à un assistant IA d'interroger l'API en langage naturel — voir le guide MCP.
  • Ventilation byChannel dans GET /account/api-usage pour distinguer les appels DIRECT des appels passés via MCP.
Webhooks signés HMACWebhooksCopier le lien de cette entrée

Added

  • Webhook signing via header X-Webhook-Signature: sha256=... et X-Webhook-Timestamp pour la protection replay. Détails complets dans le guide webhooks.
  • Renouvellement de la clé depuis la console (console.stream.estate/webhooks) sans interrompre les livraisons en vol — voir le guide webhooks.
  • Header User-Agent: StreamEstate-Webhook/1.0 sur toutes les requêtes sortantes.

Changed

  • Les destinations webhook créées avant cette release obtiennent leur clé en la renouvelant une première fois depuis la console.
Version 0.14.289Dernière mise à jour