Skip to main content
GET
Read the listing cycles of a parcel
The response lists every listing cycle observed on one parcel, newest first. Each cycle says when the house went active, how it ended, and the days on market. It also carries the price path with its cuts and rises.

Use it when

Use it for the listing history strip on a subject property. Use it for the question a seller asks first: was this house on the market before, and at what price.

How a cycle is cut

The replay reads the weekly deliveries from the lake’s first week, meta.coverage[].parcel.history.first_week, onward. A cycle opens the first week the replay sees the parcel on the market. It closes when the parcel sells or comes off the market. The next time the parcel goes active, a new cycle opens with cycle_no one higher. So a house that went on the market, came off and went on again is two cycles, not one long one. This rule gives listing_cycles_1y and the relisted quicklist their meaning. outcome says how the cycle ended:

Read the response

  • original_price is the first list price seen in the cycle. last_price is the final one and min_price the lowest. n_price_cuts and n_price_rises count the moves between them.
  • price_path[] is every listing event of the cycle in order, each with its week, price, status and event kind. Use it for a chart. Use the counts above for a sentence.
  • days_on_market runs from listed_on to sold_on, or to the last event week while the cycle is open. The replay measures it in weeks of observation, so it is accurate to the week, not to the day.
  • status_path[] is the distinct statuses in the order the replay saw them. It is the shape of the cycle without the prices.
  • first_week and last_week are what the replay saw. listed_on is the date the feed itself carried. It can be earlier than first_week on a house that was already on the market when the replay began.

Gotchas

  • This host does not serve agent_name and agent_license: the cycles carry neither key.
  • Only the ZIP codes the history lake covers have cycles. Elsewhere the API answers 422 history_unavailable and names the ZIPs in meta.coverage[].parcel.history.zips. Counties, cities and ZIP codes lists them.
  • A parcel inside the ZIP set that never went on the market answers with an empty cycles[]. This means “never seen on the market since the lake’s first week”.
  • The API answers 404 not_found when the parcel is in no market with parcel tables. It answers 422 parcels_unavailable when the market has none.

Authorizations

Authorization
string
header
required

API key from the developer console (starts with zpka_). Create one at https://developers.investorlift.com/get-a-key.

Path Parameters

property_id
string
required

Parcel id, prop_<32 hex>, from /v1/properties/resolve or any deal's property.id. The prefix is part of the id (400 invalid_id otherwise).

Required string length: 1 - 64

Response

The listing cycles of one parcel.

The listing cycles of one parcel.

data
object
required

GET /v1/properties/{id}/listing-history: every listing cycle observed on the parcel.

meta
object
required

Response metadata: when the API produced it, which markets it covers, and how fresh they are.