pageViewCount and favoriteCount
pageViewCount is how many times the home's Zillow page has been viewed and favoriteCount how many people saved it, as the listing shows them.
| Field | Type |
|---|---|
data.pageViewCount | integer or null |
data.favoriteCount | integer or null |
What it means
Both are cumulative counts for the listing. They grow while the home is listed, so a single value only means something together with how long the home has been listed and when the lookup ran.
The counts move between lookups. Two recorded lookups of the same Austin home a few minutes apart returned page views one apart and the same favorites. Store scrapedAt with every reading.
Zero is a real value: a home listed today can have zero saves. PropertiesAPI returns the source's numbers and doesn't estimate popularity from them.
In our recorded lookups the counts appeared on homes for sale of every type, new construction and land included, and they ranged widely: a lot listed the week before had a few hundred views, while an Austin home listed for months had thousands. That spread is why a rate per day says more than the raw count.
Recorded example
{
"homeStatus": "FOR_SALE",
"pageViewCount": 6188,
"favoriteCount": 898
}{
"homeStatus": "FOR_SALE",
"pageViewCount": 6189,
"favoriteCount": 898
}{
"homeStatus": "RECENTLY_SOLD",
"pageViewCount": null,
"favoriteCount": 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
- The page doesn't show the counts. Sold and off-market homes had neither in our recorded lookups, and apartment building rentals had none either.
- Null means not shown, not zero.
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 -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 | {pageViewCount, favoriteCount}'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"]
views, saves = home["pageViewCount"], home["favoriteCount"]
dom = home["calculated"]["days_on_market"]
if views is not None and dom:
print(f"{views / dom:.1f} views a day")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 { pageViewCount: views, favoriteCount: saves } = home;
const dom = home.calculated.days_on_market;
if (views != null && dom) console.log((views / dom).toFixed(1), "views a day", saves, "saves");Common mistakes
- Comparing counts of homes listed for different lengths of time. Divide by days on the market first, using calculated.days_on_market.
- Treating null as zero interest.
- Reading the counts as unique visitors. They are page views and saves as the page reports them.
Related
- daysOnZillow, datePosted and days on market
- scrapedAt and data freshness
- homeStatus and statusText
- Every field of the property endpoint
- Guide: Zillow API caching: what fresh property data means
- All response fields
Zillow is a trademark of Zillow, Inc. PropertiesAPI is an independent service and is not affiliated with, endorsed by or sponsored by Zillow.
pageViewCount and favoriteCount questions
Are page views unique visitors?+
No. They are the page's view count as shown on the listing.
Why are the counts null for a sold home?+
The page doesn't show them once the home is no longer listed.
How often do they update?+
Each lookup reads the current page. A repeat lookup within the cache window returns the cached reading.