<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stream Estate API — Changelog</title>
    <link>https://docs.stream.estate/docs/changelog</link>
    <atom:link href="https://docs.stream.estate/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Nouveautés et changements de l'API Stream Estate</description>
    <language>fr</language>
    <lastBuildDate>Fri, 09 Oct 2026 16:48:23 GMT</lastBuildDate>
    <item>
      <title>Compter les résultats d'une recherche</title>
      <link>https://docs.stream.estate/docs/changelog#count-only-search</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#count-only-search</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>Une recherche de biens peut renvoyer uniquement le nombre de résultats, sans aucun bien. Added - size: 0 sur POST /properties — la réponse ne contient aucun bien, seulement le nombre de biens correspondants dans meta.totalItems (format JSON:API) ; auparavant, size commençait à 1. Voir Pagination et la référence.</description>
    </item>
    <item>
      <title>Mandat, référence et contact de l'annonceur en JSON:API</title>
      <link>https://docs.stream.estate/docs/changelog#property-publisher-jsonapi</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#property-publisher-jsonapi</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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 &quot;attributes&quot;: {} au lieu de [], comme le prévoit le format.</description>
    </item>
    <item>
      <title>Résolution d'adresse : version 2</title>
      <link>https://docs.stream.estate/docs/changelog#address-resolution-v2</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#address-resolution-v2</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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.</description>
    </item>
    <item>
      <title>Résolution de l'adresse d'un bien (bêta)</title>
      <link>https://docs.stream.estate/docs/changelog#address-resolution</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#address-resolution</guid>
      <pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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.</description>
    </item>
    <item>
      <title>Tolérance temporaire du champ enabled des règles</title>
      <link>https://docs.stream.estate/docs/changelog#rule-enabled-tolerance</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#rule-enabled-tolerance</guid>
      <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
      <category>deprecated</category>
      <category>api</category>
      <description>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.</description>
    </item>
    <item>
      <title>Granularité des règles et intervalles de variation</title>
      <link>https://docs.stream.estate/docs/changelog#listing-scope-and-variation-windows</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#listing-scope-and-variation-windows</guid>
      <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
      <category>breaking</category>
      <category>api</category>
      <category>webhooks</category>
      <description>Une règle choisit sa granularité avec scope. Une règle PRICECHANGE accepte plusieurs intervalles de variation de prix. Les changements de prix et d'attributs déclenchent désormais des notifications. Breaking - ADDITIONALLISTING 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 NEWMATCH avec scope: LISTING. Voir Alert et Webhooks. - variationPercent est maintenant une liste d'intervalles : [{ &quot;gte&quot;: …, &quot;lte&quot;: … }]. 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 - PRICECHANGE et OTHERCHANGE déclenchent désormais des notifications. scope et variationPercent sont pris en compte. Voir Alert.</description>
    </item>
    <item>
      <title>Recherche par URL d'annonce</title>
      <link>https://docs.stream.estate/docs/changelog#listing-url-trailing-slash</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#listing-url-trailing-slash</guid>
      <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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.</description>
    </item>
    <item>
      <title>Règles de notification des alertes</title>
      <link>https://docs.stream.estate/docs/changelog#alert-notification-rules</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#alert-notification-rules</guid>
      <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
      <category>breaking</category>
      <category>api</category>
      <category>webhooks</category>
      <description>Les règles de notificationConfig adoptent un nouveau vocabulaire ; les anciens noms sont rejetés, sans période de cohabitation. Breaking - eventType : PRICECHANGED → PRICECHANGE, ANYATTRIBUTECHANGED → OTHERCHANGE, LISTINGEXPIRED → EXPIRED, LISTINGREACTIVATED → 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 ([{ &quot;lte&quot;: -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.</description>
    </item>
    <item>
      <title>Norme du diagnostic énergétique</title>
      <link>https://docs.stream.estate/docs/changelog#energy-certificate-standard</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#energy-certificate-standard</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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 — FRDPE2006 ou FRDPE2021, 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.</description>
    </item>
    <item>
      <title>Recherche par phrase dans les textes d'annonce</title>
      <link>https://docs.stream.estate/docs/changelog#phrase-text-search</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#phrase-text-search</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <category>breaking</category>
      <category>api</category>
      <description>Les filtres texte deviennent des phrases : ajouter un mot restreint le résultat au lieu de l'élargir, et une phrase peut désormais être exclue. Breaking - property.body.title et property.body.description n'acceptent plus une chaîne : envoyez { &quot;in&quot;: [...], &quot;nin&quot;: [...] }, chaque entrée étant une phrase — une chaîne nue renvoie un 400. Pour un résultat identique à l'ancien &quot;a b&quot;, envoyez { &quot;in&quot;: [&quot;a&quot;, &quot;b&quot;] } ; aucune période de cohabitation, l'API étant en beta privée. Voir Filtrage — Recherche texte. Added - property.body. .in — au moins une des phrases, mots côte à côte et dans l'ordre, casse et accents ignorés ; jusqu'à 25 par liste. Voir la référence. - property.body. .nin — aucune des phrases. Voir Filtrage — Recherche texte.</description>
    </item>
    <item>
      <title>Mise à jour partielle des alertes</title>
      <link>https://docs.stream.estate/docs/changelog#partial-alert-updates</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#partial-alert-updates</guid>
      <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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 &quot;criteria&quot;: null, et non plus en omettant criteria.</description>
    </item>
    <item>
      <title>Annotations des outils MCP</title>
      <link>https://docs.stream.estate/docs/changelog#mcp-tool-annotations</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#mcp-tool-annotations</guid>
      <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
      <category>mcp</category>
      <description>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 (searchproperties, resolvelocation, listalerts) 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.</description>
    </item>
    <item>
      <title>Cohérence des prix</title>
      <link>https://docs.stream.estate/docs/changelog#price-coherence</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#price-coherence</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>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.</description>
    </item>
    <item>
      <title>Reprise automatique des webhooks suspendus</title>
      <link>https://docs.stream.estate/docs/changelog#suspended-webhooks-recovery</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#suspended-webhooks-recovery</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>webhooks</category>
      <description>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.</description>
    </item>
    <item>
      <title>Serveur MCP</title>
      <link>https://docs.stream.estate/docs/changelog#mcp-server</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#mcp-server</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <category>mcp</category>
      <description>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.</description>
    </item>
    <item>
      <title>Webhooks signés HMAC</title>
      <link>https://docs.stream.estate/docs/changelog#hmac-signed-webhooks</link>
      <guid isPermaLink="true">https://docs.stream.estate/docs/changelog#hmac-signed-webhooks</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>webhooks</category>
      <description>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.</description>
    </item>
  </channel>
</rss>
