<?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/en/docs/changelog</link>
    <atom:link href="https://docs.stream.estate/en/rss.xml" rel="self" type="application/rss+xml"/>
    <description>New features and changes of the Stream Estate API</description>
    <language>en</language>
    <lastBuildDate>Fri, 09 Oct 2026 16:48:23 GMT</lastBuildDate>
    <item>
      <title>Count the results of a search</title>
      <link>https://docs.stream.estate/en/docs/changelog#count-only-search</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#count-only-search</guid>
      <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>A property search can return the result count alone, without any property. Added - size: 0 on POST /properties — the response carries no property, only the number of matching properties in meta.totalItems (JSON:API format); previously, size started at 1. See Pagination and the reference.</description>
    </item>
    <item>
      <title>Publisher mandate, reference and contact in JSON:API</title>
      <link>https://docs.stream.estate/en/docs/changelog#property-publisher-jsonapi</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#property-publisher-jsonapi</guid>
      <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>In JSON:API, each property now gives the mandate, reference and contact of its publishers, as flat JSON does. Changed - included can hold a fourth type, PropertyPublisher: a client that accepts only Listing, Publisher and Source must accept or ignore it. See Resource types. Added - PropertyPublisher, referenced by relationships.propertyPublishers: a publisher's mandate, reference and contact on this property. See Response format. Fixed - A Publisher with no field set returns &quot;attributes&quot;: {} instead of [], as the format requires.</description>
    </item>
    <item>
      <title>Address resolution: version 2</title>
      <link>https://docs.stream.estate/en/docs/changelog#address-resolution-v2</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#address-resolution-v2</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>Address resolution improves: matches are more reliable, and we will keep refining them during the beta. Added - algorithmVersion — the version of the logic that produced the answer. An answer may change from one version to the next. Each new version is announced here. See the reference.</description>
    </item>
    <item>
      <title>Property address resolution (beta)</title>
      <link>https://docs.stream.estate/en/docs/changelog#address-resolution</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#address-resolution</guid>
      <pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>Get the postal address of a given property. Added - POST /properties/{id}/resolve-address — the property's address and its confidence level, from EXACT to NONE. In beta. See the reference.</description>
    </item>
    <item>
      <title>Temporary tolerance of the enabled rule field</title>
      <link>https://docs.stream.estate/en/docs/changelog#rule-enabled-tolerance</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#rule-enabled-tolerance</guid>
      <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
      <category>deprecated</category>
      <category>api</category>
      <description>A rule still carrying the former enabled field is no longer refused. You have until 2026-10-20 to remove it. Deprecated - enabled on a rule is tolerated until 2026-10-20: false drops the rule, true is ignored. After that, the field is refused with 400. To stop receiving an event, remove its rule. See Alert.</description>
    </item>
    <item>
      <title>Rule granularity and variation ranges</title>
      <link>https://docs.stream.estate/en/docs/changelog#listing-scope-and-variation-windows</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/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>A rule picks its granularity with scope. A PRICECHANGE rule accepts several price variation ranges. Price and attribute changes now trigger notifications. Breaking - ADDITIONALLISTING no longer exists, in rules or in webhooks. A rule sending it gets a 400. To be told about every new listing on a property you already follow, use NEWMATCH with scope: LISTING. See Alert and Webhooks. - variationPercent is now a list of ranges: [{ &quot;gte&quot;: …, &quot;lte&quot;: … }]. A bare object gets a 400. See the variation range. - One rule per eventType. A duplicate gets a 422. See Alert. Changed - PRICECHANGE and OTHERCHANGE now trigger notifications. scope and variationPercent are taken into account. See Alert.</description>
    </item>
    <item>
      <title>Search by listing URL</title>
      <link>https://docs.stream.estate/en/docs/changelog#listing-url-trailing-slash</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#listing-url-trailing-slash</guid>
      <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>Finding a property from a listing's URL no longer depends on the trailing slash. Fixed - listings.url on POST /properties — the URL is matched with or without a trailing slash; previously, the form that differed from the one the site publishes returned no result. Nothing to change on your side, and the url field in responses is unchanged. See the reference.</description>
    </item>
    <item>
      <title>Alert notification rules</title>
      <link>https://docs.stream.estate/en/docs/changelog#alert-notification-rules</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/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>notificationConfig rules adopt a new vocabulary; the old names are rejected, with no cohabitation window. Breaking - eventType: PRICECHANGED → PRICECHANGE, ANYATTRIBUTECHANGED → OTHERCHANGE, LISTINGEXPIRED → EXPIRED, LISTINGREACTIVATED → REACTIVATED, in rules and in the webhooks you receive. See Alert and Webhooks. - thresholdPercentage, thresholdMinPercentage, thresholdMaxPercentage, thresholdDirection and enabled are gone from rules: use the signed variationPercent range list ([{ &quot;lte&quot;: -5 }] for a drop of at least 5%). See the variation range. Added - scope on each rule — PROPERTY (default) or LISTING, the granularity of the notification. See Alert.</description>
    </item>
    <item>
      <title>Energy certificate standard</title>
      <link>https://docs.stream.estate/en/docs/changelog#energy-certificate-standard</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#energy-certificate-standard</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>A property's unit.diagnostic block gains three fields, among them the certificate's regulatory standard, and that standard becomes filterable. Added - unit.diagnostic.standard — FRDPE2006 or FRDPE2021, absent when the source did not state it; country-prefixed list, set to grow. See the reference. - unit.diagnostic.methodVersion and unit.diagnostic.reference — data-model revision and certificate number at the issuing registry. See the reference. - property.unit.diagnostic.standard filter on POST /properties, with in / nin / inOrMissing, usable in an alert's criteria. See Filtering — energy certificate standard.</description>
    </item>
    <item>
      <title>Phrase search in listing text</title>
      <link>https://docs.stream.estate/en/docs/changelog#phrase-text-search</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#phrase-text-search</guid>
      <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
      <category>breaking</category>
      <category>api</category>
      <description>Text filters become phrases: adding a word narrows the result instead of widening it, and a phrase can now be excluded. Breaking - property.body.title and property.body.description no longer accept a string: send { &quot;in&quot;: [...], &quot;nin&quot;: [...] }, every entry being a phrase — a bare string returns a 400. For a result identical to the former &quot;a b&quot;, send { &quot;in&quot;: [&quot;a&quot;, &quot;b&quot;] }; no cohabitation window, the API being in private beta. See Filtering — Text search. Added - property.body. .in — at least one of the phrases, words side by side and in order, case and accents ignored; up to 25 per list. See the reference. - property.body. .nin — none of the phrases. See Filtering — Text search.</description>
    </item>
    <item>
      <title>Partial alert updates</title>
      <link>https://docs.stream.estate/en/docs/changelog#partial-alert-updates</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#partial-alert-updates</guid>
      <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>PUT /alerts/{uuid} now changes only the fields the body names, like every other update on the API. Changed - A field omitted from the body of PUT /alerts/{uuid} keeps its stored value; it used to be reset to its create-time default. See Alerts — updating an alert. - To clear a field, send it as null. In particular, an alert widens to every property with &quot;criteria&quot;: null, no longer by omitting criteria.</description>
    </item>
    <item>
      <title>MCP tool annotations</title>
      <link>https://docs.stream.estate/en/docs/changelog#mcp-tool-annotations</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#mcp-tool-annotations</guid>
      <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
      <category>mcp</category>
      <description>The MCP server's tools now declare their behaviour per the MCP specification: a human-readable title and the readOnlyHint, destructiveHint, idempotentHint and openWorldHint hints, as the Claude connectors directory requires. Changed - Read-only tools (searchproperties, resolvelocation, listalerts) run without a confirmation prompt in assistants that honour these hints, Claude included; creating, updating and deleting an alert still ask for confirmation. See What the assistant can do. Added - Every tool exposes title and annotations in the tools/list response. See the MCP guide.</description>
    </item>
    <item>
      <title>Price coherence</title>
      <link>https://docs.stream.estate/en/docs/changelog#price-coherence</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#price-coherence</guid>
      <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
      <category>api</category>
      <description>Every listing now carries a price-coherence verdict, computed by comparing its price per m² to the local market median. The verdict is conservative: when in doubt, the property stays visible. Changed - Properties whose listings all carry an incoherent price are hidden from POST /properties results and alerts by default — listings.priceCoherent is implicitly true, and properties with an undetermined verdict stay visible. See Filtering — default masks. - The filterable price fields of a property (property.pricing.displayed, property.pricing.pricePerArea, price variations) are computed without its price-incoherent listings. Added - listings.priceCoherent — true reproduces the default behaviour, false returns only properties whose listings are all incoherent. Judged at the property level, unlike the other listings filters. See the reference.</description>
    </item>
    <item>
      <title>Automatic recovery of suspended webhooks</title>
      <link>https://docs.stream.estate/en/docs/changelog#suspended-webhooks-recovery</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#suspended-webhooks-recovery</guid>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>webhooks</category>
      <description>A webhook destination tripped by the circuit breaker no longer needs a manual reactivation to resume deliveries. Changed - A SUSPENDED destination is probed automatically (every 5 minutes, then at a growing interval up to 6 h) and flips back to ACTIVE as soon as your endpoint answers, with a progressive replay of the suspended notifications; the console remains available to force recovery. See Notifications — circuit breaker. - At most 5,000 notifications are kept per suspended destination; beyond that, events stay visible but are no longer replayed. See Notifications — circuit breaker.</description>
    </item>
    <item>
      <title>MCP server</title>
      <link>https://docs.stream.estate/en/docs/changelog#mcp-server</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#mcp-server</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <category>mcp</category>
      <description>Added - MCP server at https://api-v2.stream.estate/mcp (HTTP transport, X-API-KEY authentication). Lets an AI assistant query the API in natural language — see the MCP guide. - byChannel breakdown in GET /account/api-usage to separate DIRECT calls from those made through MCP.</description>
    </item>
    <item>
      <title>HMAC-signed webhooks</title>
      <link>https://docs.stream.estate/en/docs/changelog#hmac-signed-webhooks</link>
      <guid isPermaLink="true">https://docs.stream.estate/en/docs/changelog#hmac-signed-webhooks</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>webhooks</category>
      <description>Added - Webhook signing via X-Webhook-Signature: sha256=... and X-Webhook-Timestamp headers for replay protection. Full details in the webhooks guide. - Signing-key rotation from the console (console.stream.estate/webhooks) without dropping in-flight deliveries — see the webhooks guide. - User-Agent: StreamEstate-Webhook/1.0 on every outbound request. Changed - Webhook destinations created before this release obtain their key by rotating it once from the console.</description>
    </item>
  </channel>
</rss>
