Zillow APIzillow.com ↗
Access Zillow listings, Zestimates, rental properties, recently sold homes, agent profiles, and current mortgage rates via a single REST API.
What is the Zillow API?
This API exposes 8 endpoints covering Zillow's core real estate data: for-sale listings, rentals, recently sold properties, property details, Zestimates, agent search, agent profiles, and current mortgage rates. The search_homes_for_sale endpoint returns up to 41 listings per page with fields including zpid, zestimate, hdpData, and map coordinates. Each endpoint accepts straightforward inputs like a location string or Zillow property ID.
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 Listings
Three search endpoints cover the main listing types on Zillow. search_homes_for_sale, search_homes_for_rent, and search_recently_sold all accept a location parameter (city/state, ZIP code, or neighborhood string) and an optional page integer for pagination. Each returns a listings array, a mapResults array with coordinates, totalResultCount, totalPages, and a regionState object containing regionInfo and regionBounds. Rental listings include building-level fields like buildingName, price ranges, and availability counts. Recently sold listings include soldPrice and dateSold.
Property Details and Zestimates
get_property_details takes a zpid (Zillow property ID) and returns a full property record: price, structured address, bedrooms, bathrooms, homeType, yearBuilt, livingArea, zestimate, and a resoFacts object with additional structured facts. get_zestimate is a lighter endpoint that returns only the zestimate (estimated market value in dollars) and rentZestimate (estimated monthly rent) alongside the address and homeType.
Agents and Mortgage Rates
search_agents accepts a location string and returns paginated agent profile cards with fields including cardTitle, cardActionLink, isTopAgent, profileData, and reviewInformation, plus a resultsFound count and titleLocation. get_agent_profile takes a username slug and returns a detailed profile with salesStats (count all-time, count last year, price range), serviceAreas, pastSales, licenses, reviews, and forSaleListings. get_mortgage_rates requires no inputs and returns a rates array of current loan products — conventional fixed (10/15/20/30-year), FHA, VA, jumbo, and ARM — each with interestRate, apr, loanType, loanTerm, and feesAndPoints.
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 home value tracker that polls
get_zestimatefor a portfolio of zpids and logszestimatechanges over time. - Aggregate rental inventory in a target market using
search_homes_for_rentwith ZIP code inputs and surface price ranges and availability counts. - Populate a recently sold comps table for appraisal tools using
search_recently_soldfieldssoldPrice,dateSold, andzestimate. - Generate agent lead lists by querying
search_agentsfor a metro and filtering onisTopAgentandreviewInformation. - Display current mortgage rate comparison tables from
get_mortgage_rates, broken down byloanTypeandloanTerm. - Link property listings to full agent bios by combining
get_property_detailslisting metadata withget_agent_profilesales stats. - Map for-sale inventory in a neighborhood by consuming
mapResultscoordinates fromsearch_homes_for_sale.
| 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_property_details` return beyond price and address?+
get_property_details returns homeType, bedrooms, bathrooms, yearBuilt, livingArea, zestimate, and a resoFacts object with structured property facts. The address field is broken into streetAddress, city, state, and zipcode. It does not return listing history or price-change history; those are not exposed by this endpoint.How many listings does each search endpoint return per page?+
search_homes_for_sale, search_homes_for_rent, search_recently_sold) returns up to 41 listings per page. The response includes totalPages and totalResultCount so you can iterate through all available pages using the page parameter.Does the API expose historical Zestimate data or price history for a property?+
zestimate and rentZestimate via get_zestimate, and the current listing price via get_property_details. Historical valuation timeseries and price-change records are not included. You can fork this API on Parse and revise it to add an endpoint targeting Zillow's property history data.Can I filter for-sale listings by price range, home type, or number of bedrooms?+
location and page as inputs; filtering by price range, homeType, or bedroom count is not a supported parameter. The returned listing objects do include price, beds, baths, and homeType fields, so client-side filtering is possible. You can fork this API on Parse and revise the endpoint to add server-side filter parameters.