Zillow Scraper: Search & Details, Zestimate, Price History avatar

Zillow Scraper: Search & Details, Zestimate, Price History

Pricing

from $1.20 / 1,000 properties

Go to Apify Store
Zillow Scraper: Search & Details, Zestimate, Price History

Zillow Scraper: Search & Details, Zestimate, Price History

Zillow search and property details for locations, ZIP codes or URLs, $2.10 per 1,000 ($3.20 with details). For sale, rent or sold by city, ZIP or URL; maxcopell Zillow input works. Zestimate, days on market, price and tax history, schools. Splits big areas past the 820-home cap; no agent data.

Pricing

from $1.20 / 1,000 properties

Rating

0.0

(0)

Developer

Arcadium Data

Arcadium Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

Give it a city, ZIP code, county, Zillow search URL, property URL or zpid and it returns Zillow homes for sale, for rent or recently sold, one JSON row per property: price, Zestimate, rent Zestimate, beds, baths, square feet, lot, home type, days on market, price cut, brokerage, photos and coordinates. With details: description, year built, facts, price history, tax history and schools. $2.10 per 1,000 properties, $3.20 per 1,000 with details; paid plans pay less. You pay only for rows you get.

Use case: pull every listing in a city or ZIP with price, Zestimate and history in one run, for investors, agents' market reports and rent research, with no agent personal data.

Why this actor

  • Drop-in input. Input written for maxcopell/zillow-scraper (searchUrls, resultsLimit), maxcopell/zillow-zip-search (zipCodes, priceMin, priceMax, daysOnZillow, forRent, sold) or maxcopell/zillow-detail-scraper (startUrls, propertyStatus) works as it is.
  • Whole areas, not just 820 homes: big searches are split into map sections and de-duplicated.
  • Any input you have: free-text places, search URLs with your filters, property URLs or zpids.
  • No personal data: agents' names, phones, emails and licence numbers are never returned; the brokerage name is kept.
  • Inputs that cannot be read give a free error row with a code.

Built by Arcadium Data: public data, dated and agent-ready, never personal data.

Use with AI agents

Returns Zillow homes for sale, for rent or recently sold (price, Zestimate, beds, baths, area, photos, brokerage; optionally facts, price history, tax history, schools) for cities, ZIP codes, search URLs or property URLs. Agents can call it through the Apify MCP server (https://mcp.apify.com, open source as apify/actors-mcp-server) as arcadium/zillow-properties: the input schema is read from the actor, the result is a dataset of JSON rows.

Input example (minimal):

{ "locations": ["Austin, TX"], "listingType": "for_sale", "maxResultsPerSearch": 50 }

What comes back: one property row per home (charged) and a free error row for an input that could not be read. Filter on the rowType field. The error row carries rowType: "error", a code (invalid_input, not_found, blocked, unavailable), a message and the input. Retry on blocked and unavailable later; do not retry the other codes with the same input.

Cost of the call above on the Free plan: 50 properties at $2.10 per 1,000 plus the $0.001 start fee is about $0.11.

Input examples

Homes for sale in a city, cheapest first:

{ "locations": ["Austin, TX"], "listingType": "for_sale", "sortBy": "price_low", "maxResultsPerSearch": 500 }

Rentals from 2,000 USD/month with 3+ bedrooms in two ZIP codes:

{ "locations": ["78704", "78745"], "listingType": "for_rent", "minPrice": 2000, "minBeds": 3 }

Recently sold houses with full details (price history, taxes, schools):

{ "locations": ["Travis County, TX"], "listingType": "sold", "homeTypes": ["house"], "includeDetails": true, "maxResultsPerSearch": 200 }

A search URL copied from zillow.com (its filters and map area are kept):

{ "searchUrls": ["https://www.zillow.com/austin-tx/"] }

Specific properties:

{ "propertyUrls": ["https://www.zillow.com/homedetails/3207-Wickham-Ln-Austin-TX-78725/70345655_zpid/", "29478743"] }

These input field names are also accepted: startUrls (request-list objects), zpids, zipCodes, searchUrls, propertyStatus (FOR_SALE, FOR_RENT, RECENTLY_SOLD) and maxItems.

FieldWhat it does
locationsPlaces as typed on Zillow: city + state, ZIP, county, neighborhood, state.
searchUrlsZillow search URLs; the URL's filters are kept and the filters below are applied on top.
propertyUrlsProperty URLs or zpids; one detail row each.
listingTypefor_sale (default on Zillow), for_rent, sold.
sortByrelevance, newest, price_low, price_high, beds, baths, size, lot_size.
minPrice / maxPriceUSD; monthly rent for rentals.
minBeds / minBathsMinimum bedrooms / bathrooms.
homeTypesAny of house, townhouse, condo, apartment, multi_family, manufactured, lot_land.
daysOnZillowOnly homes listed within 1, 7, 14, 30, 90 days or 6m, 12m, 24m, 36m (for sold: since the sale).
maxResultsPerSearchProperties per location or search URL (default 200, up to 100,000).
includeDetailsRead each result's detail page too (charged as property-details).
maxItemsCap on charged rows for the whole run.

Output

Output example (search row, abridged):

{
"rowType": "property",
"platform": "zillow",
"propertyId": "70345655",
"url": "https://www.zillow.com/homedetails/3207-Wickham-Ln-Austin-TX-78725/70345655_zpid/",
"status": "FOR_SALE",
"price": 324900,
"currency": "USD",
"address": "3207 Wickham Ln, Austin, TX 78725",
"city": "Austin", "state": "TX", "zipcode": "78725",
"latitude": 30.232096, "longitude": -97.5937,
"beds": 4, "baths": 3, "livingArea": 2575,
"lotArea": 4800.312, "lotAreaUnit": "sqft",
"homeType": "SINGLE_FAMILY",
"daysOnMarket": 140,
"zestimate": null, "rentZestimate": null,
"taxAssessedValue": 365588,
"priceChange": -15000, "priceChangeDate": "2026-10-14",
"brokerName": "T J Lewis Real Estate",
"photos": ["https://photos.zillowstatic.com/fp/...-p_e.jpg"],
"detailed": false,
"searchInput": "Austin, TX",
"searchRank": 1,
"scrapedAt": "2026-10-22T10:00:00.000Z"
}

Detail rows (detailed: true) add yearBuilt, description, lastSoldPrice, monthlyHoaFee, propertyTaxRate, mlsId, listingDataSource, county, parcelId, facts (object), priceHistory (date, event, price, pricePerSquareFoot, priceChangeRate, source), taxHistory (date, taxPaid, value), schools (name, rating, distance, grades), pageViewCount, favoriteCount.

Error row:

{ "rowType": "error", "platform": "zillow", "input": "Nowhere", "code": "not_found", "message": "Zillow knows no place by this name; try \"City, ST\" or a ZIP code", "scrapedAt": "..." }

Error codes: invalid_input (not a Zillow URL or zpid), not_found (unknown place or removed property), blocked / unavailable (temporary; run again).

Dataset views: overview (address, price, Zestimate, beds, baths, size, brokerage), details (year built, lot, HOA, taxes, sale, history, schools), errors. The STATS record in the key-value store has requests, data volume, retries and cost per result.

Pricing

Pay per result, with lower prices on higher Apify plans:

Planproperty (search row) per 1,000property-details per 1,000
Free$2.10$3.20
Bronze$1.80$2.70
Silver$1.50$2.20
Gold$1.20$1.50
Platinum$1.20$1.50
Diamond$1.20$1.50

Plus $0.001 per run start. A detail row is charged instead of the search row, never both. A home found by two searches in one run is charged once. Error rows are free.

Tips for AI agents and integrations

  • Filter on rowType first; propertyId (zpid) is the stable key across runs.
  • For price-drop monitoring, run the same locations daily with sortBy: "newest" and compare price / priceChange per propertyId.
  • For a whole metro, set maxResultsPerSearch high (e.g. 20000); the map is split automatically. Per-ZIP locations give the same coverage with clearer searchInput labels.
  • Sold prices: search rows of sold homes have price: null on many listings; use includeDetails: true and read lastSoldPrice and priceHistory.

Limitations

  • Zillow lists at most 820 homes per query; larger areas are split into map sections automatically.
  • Sold homes often have price: null in search rows; use includeDetails for lastSoldPrice.

Public data only, read without login. Zillow blocks datacenter IPs, so the actor uses US residential proxies; this is included in the price.