Zillow Property Details Scraper API: ZPID, URL & Address
Pricing
from $1.70 / 1,000 properties
Zillow Property Details Scraper API: ZPID, URL & Address
Zillow detail scraper and Zillow property details API: Zestimate and range, rent Zestimate, tax value, price, last sale, facts, agent, broker and photos for any Zillow link, zpid or street address, in bulk. Zillow lookup by address or Zillow URL; no login; Zillow MCP. $2 per 1,000 homes.
Pricing
from $1.70 / 1,000 properties
Rating
0.0
(0)
Developer
Saulius AutomatesIT
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Share
Zillow property details API and scraper: give it Zillow home links, zpids or plain street addresses and get one full row per home with Zestimate and its low and high range, rent Zestimate, tax assessed value and tax rate, list or sold price, last sold price, beds, baths, living area, lot, year built, home type, days on Zillow, page views and saves, description, facts, listing agent and phone, broker, MLS id, coordinates and photos.
No Zillow account, no cookies, no browser. $2 per 1,000 homes, misses free.
What you can use it for
- Bulk valuations: a spreadsheet of addresses in, Zestimate, range, rent Zestimate and tax value out.
- Enrich a search: point it at the dataset of any Zillow search run (
zpidorurlcolumns) and get the full details for every home. - Rental yield and flip analysis: Zestimate next to rent Zestimate, last sale and tax value for each property.
- CRM and lead enrichment: listing agent, phone, broker and MLS id for homes on the market.
- AI agents: call it as an MCP tool to look up any US home by address.
How to use it
- Paste Zillow home links, street addresses or zpids (any mix), or the dataset ID of an earlier search run.
- Run it and download JSON, CSV or Excel, or read the rows through the API.
Inputs written for other Zillow detail scrapers work as they are: startUrls (links as {"url": ...} objects) and addresses are the same field names, and property, Urls, propertyUrls, multiple_input_box and input (objects with url, zpid or address) are read too.
Input example
{"startUrls": [{ "url": "https://www.zillow.com/homedetails/2114-Bigelow-Ave-N-Seattle-WA-98109/48749425_zpid/" }],"addresses": ["18 Zelma Dr, Greenville, SC 29617"],"zpids": ["29490744"],"maxPhotos": 10}
Output
Property row
{"type": "property","zpid": "48749425","url": "https://www.zillow.com/homedetails/2114-Bigelow-Ave-N-Seattle-WA-98109/48749425_zpid/","status": "OTHER","price": 2155400,"zestimate": 2155400, "zestimateLow": 1939860, "zestimateHigh": 2370940,"rentZestimate": 6769,"streetAddress": "2114 Bigelow Ave N", "city": "Seattle", "state": "WA", "zipcode": "98109","county": "King County","bedrooms": 4, "bathrooms": 3, "livingArea": 3470, "lotSize": 4680, "yearBuilt": 1924,"homeType": "SINGLE_FAMILY","taxAssessedValue": 2044000, "propertyTaxRate": 0.82, "lastSoldPrice": 995000,"daysOnZillow": 6522, "pageViews": null, "favorites": null,"description": null,"agentName": null, "brokerName": null, "mlsId": null,"neighborhood": "Queen Anne", "pricePerSquareFoot": 621,"facts": { "homeType": "SingleFamily", "lotSize": "4,680 sqft", "yearBuilt": 1924, "parkingFeatures": ["Off-street", "Garage"] },"photos": ["https://photos.zillowstatic.com/fp/..."],"source": "address", "input": "2114 Bigelow Ave N, Seattle, WA 98109","matchedAddress": "2114 Bigelow Ave N Seattle, WA 98109", "addressMatch": "exact"}
For-sale homes add the listing description, agent name and phone, broker, MLS name and id, page views and saves, HOA fee and price per square foot. priceHistory and taxHistory are filled when Zillow puts them in the page (some showcase listings); otherwise they are null.
Good to know
- Addresses are matched with Zillow's own search box; the row carries the address Zillow matched (
matchedAddress) andaddressMatch:exactwhen the house number and unit are the same as yours,approximatewhen Zillow only knew a nearby home or another unit. Addresses copied from Google Maps, a CRM or county records work as they are: a trailing ", USA" or ", United States" and ZIP+4 codes (98109-1234) are cleaned before the lookup, and unit numbers can be written#3L,Apt 3LorUnit 3L. An address Zillow does not know comes back as a freeNOT_FOUNDrow. - Search links pasted in
Zillow home linksare expanded: each home found (up toMax homes per search link) gets its full row. - Apartment building links (
/apartments/austin-tx/the-goodwin-apartments/CkQ7wm/,/b/...) give one row per unit (type: "unit"): unit number, rent, fees, beds, baths, square feet, availability date, lease terms and pet policy, plus the building's name, link, amenities and offers. Each unit is charged as one home;maxUnitsPerBuildingcaps very large buildings. - Flat rows for CSV: add
"flattenOutput": trueto the JSON input and nested fields become dot paths (facts.Heating,priceHistory.0.price,schools.0.rating,photos.0), so a CSV or Google Sheets export has one column per value. - Climate risk (
climateRisk): flood, fire, wind, heat and air quality scores (1 to 10) with the FEMA flood zone, flood and fire insurance advice, 30 year probabilities, hot days and bad air days, from the First Street data on the Zillow page. It comes with the history request at no extra charge, and isnullwhere Zillow shows none. - Zestimate history: add
"includeZestimateHistory": trueto the JSON input and each row getszestimateHistory, the home's monthly Zestimate for the last ten years ([{ "date": "2016-10-31", "value": 1727349 }, ...], about 121 points), the same series as the chart on the Zillow page. No extra charge; homes Zillow has no chart for get[]. - Walk Score: add
"includeWalkScore": trueand each row getswalkScore,transitScoreandbikeScore(0 to 100) with Walk Score's words (Very Walkable,Car-Dependent). No extra charge. - Zestimates are Zillow's estimates; some homes have none and the field is then
null. - The run summary (
OUTPUTin the key-value store) counts rows delivered, misses and failures.
Pricing
| Item | Price |
|---|---|
| Property (full details) | $0.002 ($2 per 1,000) |
| Run start | $0.00005 |
Bronze, Silver and Gold Apify plans pay 5%, 10% and 15% less. Inputs that give nothing (unknown address, deleted home, building with no units, unsupported page) come back as free error rows. If Zillow refuses a home page from a search link, that home is saved from the search card and charged as a listing ($1.50 per 1,000).
Use it from code or an AI agent
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("sauliusautomatesit/zillow-property-details-api").call(run_input={"addresses": ["2114 Bigelow Ave N, Seattle, WA 98109", "18 Zelma Dr, Greenville, SC 29617"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("zestimate"), item.get("rentZestimate"), item.get("streetAddress"))
As an MCP tool for Claude, Cursor or any MCP client: https://mcp.apify.com/?tools=sauliusautomatesit/zillow-property-details-api.
Related Actors
- Zillow Scraper API: search Zillow by city, ZIP, neighborhood or search link with filters, plus property details.
- Zillow ZIP Code Search API: every home for sale, for rent or sold in a list of ZIP codes.
Notes
The Actor reads only public data that Zillow shows to any logged-out visitor, and it does not collect agents' e-mail addresses. Use the data in line with Zillow's terms and the privacy and fair housing laws that apply to you.