livingArea and lotSize

livingArea is the home's interior living area and lotSize is the size of its lot, both in square feet.

FieldType
data.livingAreanumber or null (square feet)
data.lotSizenumber 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

Recorded lookup of a home for sale
{
  "homeType": "SINGLE_FAMILY",
  "livingArea": 1556,
  "lotSize": 9561
}
Recorded lookup of a home for sale
{
  "homeType": "LOT",
  "livingArea": null,
  "lotSize": 627264
}
Recorded lookup of a home for sale
{
  "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 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 | {livingArea, lotSize}'
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"]
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")
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 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.

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.