livingArea and lotSize
livingArea is the home's interior living area and lotSize is the size of its lot, both in square feet.
| Field | Type |
|---|---|
data.livingArea | number or null (square feet) |
data.lotSize | number or null (square feet) |
What it means
livingArea is the finished living area Zillow lists for the home. For an apartment building link it is the area of the unit that price describes.
lotSize is always in square feet. When a page gives the lot in acres, PropertiesAPI converts it, so every record uses the same unit. A recorded rural lot came back at well over half a million square feet, which is fourteen acres and a bit.
Both fields are what the listing shows, usually from the agent or public records. They aren't measured by PropertiesAPI, and two sources for the same home can differ.
Use livingArea, not the description, when you compare homes. Remarks sometimes quote other areas: a recorded Chicago condo's remarks gave the size of its private terrace in square feet, which isn't part of livingArea.
Recorded example
{
"homeType": "SINGLE_FAMILY",
"livingArea": 1556,
"lotSize": 9561
}{
"homeType": "LOT",
"livingArea": null,
"lotSize": 627264
}{
"homeType": "CONDO",
"livingArea": 1253,
"lotSize": 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
- livingArea is null for land and for listings that don't state an area. A recorded New York condo had no living area on its page.
- lotSize is null for most condos and apartments, because the unit has no lot of its own.
- Zero on the source page counts as unknown, so both fields are null rather than 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 | {livingArea, lotSize}'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"]
ACRE = 43560
area, lot = home["livingArea"], home["lotSize"]
print("living area:", area, "sq ft | lot:", None if lot is None else round(lot / ACRE, 2), "acres")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 ACRE = 43560;
const { livingArea, lotSize } = home;
console.log({ livingArea, lotAcres: lotSize == null ? null : +(lotSize / ACRE).toFixed(2) });Common mistakes
- Assuming lotSize is in acres. It is square feet; divide by the square feet in an acre to show acres.
- Dividing price by a null livingArea. Use calculated.price_per_sqft, which is already null when the inputs are missing.
- Comparing a condo's lot with a house's lot. Condos usually have none.
Related
- Price per square foot
- beds and baths
- homeType and yearBuilt
- Every field of the property endpoint
- Guide: Build a Property Research Dashboard with Python
- 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.
livingArea and lotSize questions
What unit is lotSize in?+
Square feet. Lots given in acres are converted.
Is livingArea the same as the building footprint?+
No. It is the finished living area the listing states.
Why is livingArea null for a condo?+
The listing doesn't state an area. Some condo listings leave it out.