daysOnZillow, datePosted and days on market

daysOnZillow is Zillow's day count for the home's page, datePosted is the date the listing was posted, and calculated.days_on_market is that same day count kept only while the home is actually listed.

FieldType
data.daysOnZillowinteger or null
data.datePostedstring (YYYY-MM-DD) or null
data.calculated.days_on_marketinteger or null

Fields under data.calculated are calculated by PropertiesAPI from the other fields in the same response. They are not Zillow estimates.

What it means

For a listed home, daysOnZillow counts days from datePosted to the moment of the lookup. A home listed on the day of the lookup reads zero, and zero is a real value, not a missing one.

The count follows Zillow, not the latest relisting. In a recorded lookup of a home that was taken off and listed again, daysOnZillow still counted from the original datePosted, while priceHistory showed the later Listed for sale event. If you need time since the latest relisting, compute it from priceHistory.

For homes that aren't listed, Zillow keeps counting from the last event on the page, often the last sale. In our recorded off-market lookups the count matched the days since dateSold. That is not time on the market, so calculated.days_on_market is null for sold and off-market homes and equals daysOnZillow only for FOR_SALE, PENDING, COMING_SOON, FORECLOSURE and FOR_RENT.

Recorded example

Recorded lookup of a home for sale
{
  "homeStatus": "FOR_SALE",
  "datePosted": "2026-02-21",
  "daysOnZillow": 240,
  "calculated": {
    "days_on_market": 240
  }
}
Recorded lookup of a home that isn't listed
{
  "homeStatus": "OTHER",
  "datePosted": null,
  "dateSold": "2023-07-06",
  "daysOnZillow": 1201,
  "calculated": {
    "days_on_market": null
  }
}

Values are copied from recorded lookups of public Zillow pages, with the other fields of data left out. They show the shape and typical values, not today's data for these homes.

When it is null

  • daysOnZillow is null when the page shows no day count, which was the case for apartment building rentals.
  • datePosted is null for homes that aren't listed and for sold homes.
  • calculated.days_on_market is null whenever the home isn't listed, even if daysOnZillow has a value.

Read it in code

Send a Zillow link, a zpid or an address to GET /v1/zillow/property with your key in the x-api-key header, then read the field from data:

curl and jq
curl -sG "https://api.propertiesapi.com/v1/zillow/property" \
  -H "x-api-key: $PROPERTIESAPI_KEY" \
  --data-urlencode "url=https://www.zillow.com/homedetails/1704-Shelbourne-Dr-Austin-TX-78752/29412761_zpid/" \
  | jq '.data | {daysOnZillow, datePosted, calculated: (.calculated | {days_on_market})}'
Python
import os
import requests

r = requests.get(
    "https://api.propertiesapi.com/v1/zillow/property",
    params={"url": "https://www.zillow.com/homedetails/1704-Shelbourne-Dr-Austin-TX-78752/29412761_zpid/"},
    headers={"x-api-key": os.environ["PROPERTIESAPI_KEY"]},
    timeout=120,
)
r.raise_for_status()
home = r.json()["data"]
dom = home["calculated"]["days_on_market"]  # None unless the home is listed
print("posted:", home["datePosted"], "| days on Zillow:", home["daysOnZillow"], "| days on market:", dom)
JavaScript (Node)
const url = "https://www.zillow.com/homedetails/1704-Shelbourne-Dr-Austin-TX-78752/29412761_zpid/";
const res = await fetch(
  `https://api.propertiesapi.com/v1/zillow/property?url=${encodeURIComponent(url)}`,
  { headers: { "x-api-key": process.env.PROPERTIESAPI_KEY } },
);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { data: home } = await res.json();
const dom = home.calculated.days_on_market; // null unless the home is listed
console.log({ posted: home.datePosted, daysOnZillow: home.daysOnZillow, daysOnMarket: dom });

Common mistakes

  • Reporting daysOnZillow of an off-market home as days on market. Use calculated.days_on_market, which is null then.
  • Treating zero as missing. A listing posted today has zero days on Zillow.
  • Comparing day counts from lookups made on different dates without adjusting. The count grows every day; keep scrapedAt with it.

Zillow is a trademark of Zillow, Inc. PropertiesAPI is an independent service and is not affiliated with, endorsed by or sponsored by Zillow.

daysOnZillow, datePosted and days on market questions

Is daysOnZillow the same as days on market?+

Only while the home is listed. For sold and off-market homes Zillow keeps counting from the last event, so use calculated.days_on_market.

Does a relisting reset the count?+

Not necessarily. In a recorded relisted home the count ran from the original datePosted. Check priceHistory for the latest Listed for sale event.

Which date format is used?+

datePosted is a calendar date in YYYY-MM-DD form.