latitude and longitude
latitude and longitude are the property's map position in decimal degrees, as Zillow places the pin on the home's page.
| Field | Type |
|---|---|
data.latitude | number or null |
data.longitude | number or null |
What it means
Both values are plain numbers in decimal degrees. Latitude is north of the equator for every US home, so it is positive. Longitude is west of Greenwich, so it is negative. Put them straight into a map library or a geography column.
The position is the pin Zillow uses for the home page, usually the rooftop or parcel centre. For a condo or apartment building, every unit in the building tends to share the building's point.
Use the coordinates to draw a home on a map, measure the distance to a place you care about, or join the property with your own geographic data. The API returns the position of the home you asked for; it doesn't return nearby homes.
Recorded example
{
"latitude": 30.327824,
"longitude": -97.683815
}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
- Zillow's page gives no position for the home. Every recorded lookup in our fixtures had both values, but your code should still allow null.
- If one is null, treat both as unknown rather than plotting a point at 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 | {latitude, longitude}'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"]
lat, lng = home["latitude"], home["longitude"]
if lat is not None and lng is not None:
print(f"https://www.google.com/maps?q={lat},{lng}")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 { latitude: lat, longitude: lng } = home;
if (lat != null && lng != null) {
const geojson = { type: "Point", coordinates: [lng, lat] }; // GeoJSON is longitude first
console.log(geojson);
}Common mistakes
- Swapping the order. GeoJSON and many map tools want longitude first; most UIs and the Google Maps link format want latitude first.
- Rounding too hard. Keep the full precision the API returns; cutting decimals moves the pin by whole streets.
- Plotting a null as zero, which puts the home in the ocean off West Africa.
Related
- Address fields
- schools
- zpid and detailUrl
- 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.
latitude and longitude questions
What coordinate system is used?+
Decimal degrees as shown on Zillow, the same system as GPS and web maps.
Can I find homes near a point?+
No. The API looks up one known home at a time. It doesn't search by location.
Are units in one building at the same point?+
Usually yes. Zillow tends to place every unit of a building at the building's position.