schools
schools lists the nearby schools that the home's Zillow page shows, each with a rating, a distance in miles, the grades it teaches and a link.
| Field | Type |
|---|---|
data.schools | array of { name, rating, distance, level, type, grades, link } |
What it means
Each entry has name, rating, distance, level, type, grades and link. rating is a whole number on a scale of one to ten, as shown on the page. distance is in miles from the home. grades is a range such as kindergarten to fifth grade written in the page's short form.
link points to the school's profile page; in our recorded lookups that was GreatSchools. The ratings are that site's ratings as Zillow shows them, not ours.
level and type are written differently from page to page. A recorded rental page used upper-case codes with commas for level and PUBLIC for type, while a recorded sale page in another city used plain words or left both null. Normalise case before you group by them.
Recorded example
{
"schools": [
{
"name": "Skinner Elementary School",
"rating": 8,
"distance": 0.4,
"level": "PRE_K,ELEMENTARY,MIDDLE",
"type": "PUBLIC",
"grades": "PK-8",
"link": "https://www.greatschools.org/illinois/chicago/1350-Skinner-Elementary-School/"
},
{
"name": "Wells Community Academy High School",
"rating": 1,
"distance": 1.8,
"level": "HIGH",
"type": "PUBLIC",
"grades": "9-12",
"link": "https://www.greatschools.org/illinois/chicago/1425-Wells-Community-Academy-High-School/"
}
]
}{
"schools": [
{
"name": "Andrews Elementary School",
"rating": 4,
"distance": 0.7,
"level": null,
"type": null,
"grades": "PK-5",
"link": "https://www.greatschools.org/texas/austin/521-Andrews-Elementary-School/"
}
]
}Values are copied from recorded lookups of public Zillow pages, with the other fields of data left out; long lists are cut to their first entries and long text to its opening words. They show the shape and typical values, not today's data for these homes.
When it is null
- The array is empty when the page lists no schools. Every recorded lookup had at least two.
- level and type are often null on homes for sale.
- name, rating and grades were present on every recorded school, but code for null anyway.
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 | {schools}'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"]
for s in home["schools"]:
level = (s["level"] or "").lower() or "n/a"
print(s["name"], s["rating"], f"{s['distance']} mi", s["grades"], level)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();
for (const s of home.schools) {
const level = s.level?.toLowerCase() ?? "n/a";
console.log(s.name, s.rating, `${s.distance} mi`, s.grades, level);
}Common mistakes
- Reading the list as the home's assigned schools. Zillow lists nearby schools; attendance boundaries are set by the district.
- Grouping by level or type without normalising case, which splits the same category in two.
- Showing ratings without saying whose they are. Credit the rating source and link to the school's page.
Related
- Address fields
- latitude and longitude
- 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.
schools questions
Are these the schools the home is zoned for?+
Not necessarily. They are the nearby schools the page lists. Check the district for attendance boundaries.
What scale is the rating on?+
One to ten, as shown on the page.
What unit is distance in?+
Miles from the home.