Skip to content

Stream Listing Updates

Opens a Server-Sent Events (SSE) stream for a single listing. The stream delivers cached data immediately, then attempts a live fetch for the freshest data available.

Tier requirement: Pro, Business, or Internal.

EventDescription
cachedImmediate response from D1 cache (arrives within milliseconds)
liveFresh data fetched live from the source (arrives in 2-5 seconds)
errorLive fetch or parse could not complete; the payload includes an error code such as fetch_failed
doneStream complete, connection will close
Terminal window
curl -N -H "Authorization: Bearer BOROUGH-..." \
-H "Accept: text/event-stream" \
https://borough.qwady.app/v1/listing/4961849
event: cached
data: {"id":"4961849","price":3200,"status":"ACTIVE",...}
event: live
data: {"id":"4961849","price":3150,"status":"ACTIVE",...}
event: done
data: {}
  • The cached event is always sent first (from D1 database)
  • The live event is sent if the live fetch succeeds (typically 2-5 seconds)
  • If the live fetch fails or times out, an error event is sent instead of live
  • The stream always ends with a done event
  • Total stream duration is typically under 10 seconds

This endpoint is designed for one-time fresh data retrieval. For ongoing monitoring, use persistent watchers instead.

Note: Business and Internal tier users get live data automatically on the regular GET /v1/property/{id} endpoint (returned with "source": "live"), so the SSE stream is primarily useful for Pro tier users who want live data.