ListStream Docs

Sending listings

Listings API (JSON)

One listing per request, keyed by the agency's ListStream ID and your own listing ID. Every call is accepted with 202 and processed straight after.

Create or replace

PUT the whole listing. Sending it again replaces it; fields you leave out are cleared.

http
PUT https://liststream.com.au/v1/listings/<ListStream ID>/<your listing ID>
Authorization: Bearer eyJ...
Content-Type: application/json

{
  "type": "residential",
  "status": "current",
  "modifiedAt": "2026-11-10T09:30:00+10:00",
  "address": { "streetNumber": "1", "street": "Sample Street", "suburb": "Eumundi", "state": "QLD", "postcode": "4562" },
  "headline": "Sample home",
  "price": { "text": "Offers over $700,000" },
  "bedrooms": 3, "bathrooms": 2,
  "agents": [ { "name": "Jordan Hale", "mobile": "0491 570 156" } ],
  "photos": [ { "url": "https://samplecrm.example/photos/1.jpg" } ]
}

202 Accepted
{ "deliveryId": "6f86c062-...", "status": "queued",
  "report": "https://liststream.com.au/v1/deliveries/6f86c062-..." }

Field rules

  • modifiedAt is when the listing last changed in your system. An update older than what ListStream holds is ignored (reported as unchanged).
  • Times are ISO 8601 with a time zone (Z or +10:00). Inspection and auction times are shown in the property's local time.
  • Hidden prices: with price.show: false (or rent.show: false) neither the figure nor the price text is published.
  • Photos: up to 36, as https URLs; the first 30 are copied and resized.
  • Features: one item each (commas inside one are kept), up to 100.
  • Agents: up to 5, the lead agent first.
  • bedrooms: 0 is shown only for the Studio category.
  • Unknown fields are refused with the field named, so a typo is never silently ignored.

Every field, with its type, is in the Listing schema.

Change the status

Mark a listing sold, leased, withdrawn or off market without sending it all again. Sold details are kept with the listing.

http
POST https://liststream.com.au/v1/listings/<ListStream ID>/<your listing ID>/status
Authorization: Bearer eyJ...
Content-Type: application/json

{ "status": "sold", "modifiedAt": "2026-11-10T10:00:00+10:00",
  "sold": { "price": 780000, "showPrice": true, "date": "2026-11-10" } }

Remove

http
DELETE https://liststream.com.au/v1/listings/<ListStream ID>/<your listing ID>
Authorization: Bearer eyJ...

# Optional body: { "modifiedAt": "2026-11-10T10:00:00+10:00" } (default: now)

Reports

The report URL in each answer (GET /v1/deliveries/{id}) shows the result for every listing: new, updated, unchanged, removed or skipped, with the reason when it was skipped. Invalid requests get 422 with field-by-field errors (Errors and limits).