Zillow APIzillow.com ↗
Access Zillow property listings, rental search, recently sold homes, Zestimates, agent profiles, and current mortgage rates via a single REST API.
What is the Zillow API?
The Zillow API exposes 9 endpoints covering for-sale listings, rentals, recently sold properties, Zestimates, agent profiles, and live mortgage rates. A single call to search_homes_for_sale returns up to 41 listings per page with fields including price, zestimate, beds, baths, area, and geographic coordinates, while get_property_details and get_zestimate let you drill into any individual property by its Zillow property ID (zpid).
curl -X GET 'https://api.parse.bot/scraper/3545a162-9da0-4ae1-b11a-025f91f6e0d6/search_homes_for_sale?location=Los+Angeles%2C+CA' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for homes listed for sale in a specific location. Returns paginated results with up to 41 listings per page, including property details like price, beds, baths, area, zestimate, and location coordinates. Uses Zillow's internal search API which resolves the location string to a geographic region. Optional pet_friendly, has_yard, has_pool, and keywords filters all narrow results through Zillow's listing keyword search, which matches words in the listing description and features (Zillow has no dedicated pet, yard, or pool checkbox for sale listings); when several are supplied they are combined into one keyword search, so a listing must match all supplied terms. A keyword-narrowed search can legitimately return an empty listings array with totalResultCount 0. Each call costs three upstream requests (location lookup, region bounds, search).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| has_pool | boolean | When true, only listings whose text mentions a pool are returned (adds 'pool' to Zillow's listing keyword search). Narrows results, e.g. from ~9,800 to ~3,500 in Los Angeles. |
| has_yard | boolean | When true, only listings whose text mentions a yard/outdoor area are returned (adds 'yard' to Zillow's listing keyword search). |
| keywords | string | Free-text listing keywords matched by Zillow's keyword filter, e.g. 'pool' or an MLS number. Combined with any pet_friendly / has_yard / has_pool terms. Omitted or blank means no keyword filtering. |
| locationrequired | string | City and state, ZIP code, or neighborhood (e.g., 'Seattle, WA', '90210', 'Capitol Hill, Seattle, WA') |
| pet_friendly | boolean | When true, only listings whose text mentions being pet friendly are returned (adds 'pet friendly' to Zillow's listing keyword search). Sharply narrows results, e.g. from thousands to under a hundred in a large city. |
{
"type": "object",
"fields": {
"listings": "array of listing objects with property details (zpid, address, price, beds, baths, area, zestimate, detailUrl, hdpData)",
"mapResults": "array of map listing objects with coordinates and summary data",
"totalPages": "integer, total number of pages available",
"currentPage": "integer, current page number",
"regionState": "object with regionInfo and regionBounds coordinates",
"resultsPerPage": "integer, number of results per page (typically 41)",
"totalResultCount": "integer, total number of matching properties"
},
"sample": {
"data": {
"listings": [
{
"area": 1930,
"beds": 3,
"zpid": "49142999",
"baths": 2,
"price": "$1,000,000",
"address": "6506 17th Avenue NE, Seattle, WA 98115",
"hdpData": {
"homeInfo": {
"zpid": 49142999,
"homeType": "SINGLE_FAMILY",
"zestimate": 972500,
"rentZestimate": 4267
}
},
"detailUrl": "https://www.zillow.com/homedetails/6506-17th-Ave-NE-Seattle-WA-98115/49142999_zpid/",
"statusType": "FOR_SALE",
"unformattedPrice": 1000000
}
],
"mapResults": [],
"totalPages": 20,
"currentPage": 1,
"regionState": {
"regionInfo": [
{
"regionId": 16037,
"regionName": "Seattle",
"regionType": 6
}
],
"regionBounds": {
"east": -122.224433,
"west": -122.465159,
"north": 47.734145,
"south": 47.491912
}
},
"resultsPerPage": 41,
"totalResultCount": 2781
},
"status": "success"
}
}About the Zillow API
Property Search and Listing Data
Three endpoints handle property search: search_homes_for_sale, search_homes_for_rent, and search_recently_sold. All three accept a location parameter (city/state, ZIP code, or neighborhood string) and return paginated results with up to 41 listings per page alongside totalResultCount, totalPages, and a regionState object containing bounding-box coordinates for the resolved area. For-sale results support additional filters — has_pool, has_yard, pet_friendly, and free-text keywords — that narrow listings by amenity mentions. Rental results include building-level fields like buildingName, price ranges, unit counts, and availability counts. Recently sold results add soldPrice and dateSold to the standard property fields.
Property Details and Valuation
get_property_details accepts a numeric zpid string and returns a full property record including address, homeType, latitude/longitude, county, bedrooms, bathrooms, and a resoFacts object with granular property facts. get_zestimate returns the Zillow automated valuation (zestimate) and estimated monthly rent (rentZestimate) for the same zpid, along with zestimateLowPercent and zestimateHighPercent to express the confidence range. get_open_houses retrieves scheduled open house windows (startTime, endTime) in the property's local timeZone, the current homeStatus, listing agent contact details, and any attendanceInstructions text from the listing.
Agents and Mortgage Rates
search_agents finds real estate agents by city/state, returning profile cards with cardTitle, isTopAgent flag, reviewInformation, and a cardActionLink to the agent's Zillow page. get_agent_profile takes an agent's URL username and returns their full profile: salesStats, pastSales, serviceAreas, reviews, licenses, forSaleListings, and contact details. get_mortgage_rates requires no inputs and returns the current rate sheet from Zillow Home Loans — an array of products each with name, loanType, loanTerm, interestRate, apr, and feesAndPoints, covering conventional fixed (10/15/20/30-year), FHA, VA, jumbo, and adjustable-rate products.
The Zillow API is a managed, monitored endpoint for zillow.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when zillow.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official zillow.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a property alert system that polls
search_homes_for_saleby ZIP code and flags new listings below a target price. - Aggregate Zestimate trends across a neighborhood by calling
get_zestimatefor eachzpidreturned fromsearch_recently_sold. - Populate a mortgage calculator with live rates by fetching all loan products from
get_mortgage_rates. - Compare listing agent activity by pulling
pastSalesandsalesStatsfromget_agent_profilefor multiple agents in a market. - Display open house schedules in a calendar app using
openHousesstart/end times and thetimeZonefield fromget_open_houses. - Filter rental availability in a target city using
search_homes_for_rentand surface listings with the highest unit availability counts. - Enrich a CRM with property context by resolving a street address to a
zpidvia search and then callingget_property_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Zillow have an official developer API?+
What does `get_zestimate` return beyond the estimated value?+
get_zestimate returns both a zestimate (estimated sale value) and a rentZestimate (estimated monthly rent) for a given zpid. It also includes zestimateLowPercent and zestimateHighPercent to indicate the confidence band around the estimate, plus the property's address and homeType.How does keyword filtering work in `search_homes_for_sale`?+
keywords parameter accepts free-text strings matched against listing descriptions — for example, an MLS number or a term like 'mountain view'. The has_pool, has_yard, and pet_friendly boolean flags are convenience shortcuts that append 'pool', 'yard', or 'pet friendly' to that keyword filter. All active filters are combined, so setting has_pool=true and keywords=corner lot returns listings that mention both.Does the API cover historical Zestimate charts or price history for a property?+
get_zestimate, and sold price plus sale date via search_recently_sold, but time-series price history and Zestimate charts for individual properties are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting that data.Are there any pagination limitations to be aware of?+
search_homes_for_sale, search_homes_for_rent, search_recently_sold) return up to 41 listings per page. The totalPages and totalResultCount fields in each response let you plan full pagination, but very broad queries (an entire large metro, for example) may return hundreds of pages and should be narrowed with a more specific location string or keyword filters where available.