Zillow API
Zillow API for homes for sale
Pass a US place such as Chicago, IL, or a zillow.com search URL with your filters, and get one search page of homes for sale as JSON: price, address, beds, baths, square feet, year built, status, coordinates, photo and link.
- Data from Zillow
7,500 credits, one-time. No subscription. Failed calls are free. The free trial covers the travel endpoints.
Endpoints and prices checked against the API on .
More real estate dataInvestors, agents and proptech teams watch Zillow to see what is for sale, at what price, and how stock moves from week to week. Zillow does not offer an open API for reading its listings; its data access is for approved partners. This API reads Zillow’s public search page and returns its listings with the numbers already parsed, so a price is a number you can sort on, not a string.
A place name is turned into Zillow’s own search for that place. For anything more specific (a price band, a home type, a map area or a sort order) set the filters on zillow.com and pass the resulting search URL: you get the same listings Zillow shows for it. Each listing keeps Zillow’s property id, so you can follow the same home from day to day. Redfin, with up to 350 homes in one call and the MLS number, is on the same key.
What you get
- id, url
- Zillow’s property id (zpid) and the listing’s zillow.com link
- price, price_text, currency
- the asking price as a number, as Zillow displays it, and USD
- address, city, state, postal_code
- the full address and its parts
- beds, baths, sqft
- bedrooms, bathrooms and living area in square feet
- year_built, property_type
- year built where Zillow shows it, and the home type (single family, condo, townhouse…)
- status
- the listing status as Zillow labels it, e.g. For Sale by Agent
- latitude, longitude, photo
- coordinates for mapping and the main photo
One call, structured JSON
POST /v1/zillow/search, 2 credits per successful call.
curl -X POST "https://api.scrapercompany.com/v1/zillow/search" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'{
"search_parameters": {
"engine": "zillow_search",
"location": "Chicago, IL",
"limit": 40
},
"url": "https://www.zillow.com/homes/Chicago-IL_rb/",
"total": 1,
"listings": [
{
"id": "3667694",
"url": "https://www.zillow.com/homedetails/3923-N-Mozart-St-Chicago-IL-60618/3667694_zpid/",
"price": 625000,
"price_text": "$625,000",
"currency": "USD",
"address": "3923 N Mozart St, Chicago, IL 60618",
"city": "Chicago",
"state": "IL",
"postal_code": "60618",
"beds": 3,
"baths": 2,
"sqft": 2200,
"year_built": 1995,
"property_type": "SINGLE_FAMILY",
"status": "For Sale by Agent",
"latitude": 41.952847,
"longitude": -87.69912,
"days_on_market": -1,
"photo": "https://photos.zillowstatic.com/fp/example.jpg"
}
]
}Endpoints and price per call
Credits per successful call, and what one call costs on the Starter, Growth, Scale, Business plans. Failed requests cost nothing.
| Endpoint | What it returns | Credits | Starter / Growth / Scale / Business |
|---|---|---|---|
| Homes for sale POST /v1/zillow/search | One Zillow search page (about 40 homes) for a place name or a search URL | 2 credits | $0.0024 · $0.0020 · $0.0016 · $0.0013 |
Frequently asked questions
Read next
Does Zillow have a public API?
Not for reading listings at large: Zillow’s data access is for approved partners. ScraperCompany is independent of Zillow. This API reads Zillow’s public search page and needs no Zillow account.
How do I search with filters?
Set the filters on zillow.com (price, beds, home type, a drawn map area, sort order) and pass the page’s URL as url. Only zillow.com search URLs are accepted. Without a URL, location takes a place name such as Austin, TX.
How many homes does one call return?
One Zillow search page, about 40 homes. Redfin returns up to 350 homes for a city, ZIP or neighborhood in one call, on the same key and at the same price.
Are rentals or sold homes included?
The endpoint returns what the search URL shows; the default place search is homes for sale. Single-listing detail (price history, tax records) is not offered yet.
Do failed requests cost credits?
No. A failed or blocked call (any 4xx or 5xx response) costs 0 credits, and so does a search page that comes back empty. You pay only for successful results.
How do I get an API key?
Create an account on the sign-up page and verify your email. You get a free trial of 50 calls or 14 days, whichever ends first, no card needed on the travel endpoints (hotels, rentals, flights, reviews); for everything else, and after the trial, buy a credit pack (from $15) or pick a plan. You create and rotate keys yourself in the dashboard.
More APIs on the same key
All APIsSend a URL, get the page back as HTML, markdown or text. When a site answers with a block, a rate limit or a bot check, the request is retried automatically, and you pay only for a page that comes back with content.
Look a hotel up by name, then read what Booking.com shows a guest: a nightly price calendar, each room type with its rate plans, and the reviews with the property’s replies. Structured JSON, priced per call.
Look a hotel up by name, then read what Expedia shows a guest for one stay: every room type and rate plan with its total, nightly price and cancellation terms, and the guest reviews with the property’s replies.
Find a hotel’s Hotels.com id by name, then read what a guest on the Hotels.com site for their country sees: the headline price for a stay, every room type and rate plan, and the guest reviews.
Start with 50 free calls
Create an account and verify your email: your own API keys and a free trial of 50 calls or 14 days, whichever ends first, no card needed. Then buy a credit pack from $15 or pick a plan from $49 a month.
7,500 credits, one-time. No subscription. Or try it free: 50 calls, no card.