Zillow ZIP Code Search Scraper ๐Ÿ’ฐ From $1.4/1K ยท Bulk ZIP Lists avatar

Zillow ZIP Code Search Scraper ๐Ÿ’ฐ From $1.4/1K ยท Bulk ZIP Lists

Pricing

from $1.40 / 1,000 results

Go to Apify Store
Zillow ZIP Code Search Scraper ๐Ÿ’ฐ From $1.4/1K ยท Bulk ZIP Lists

Zillow ZIP Code Search Scraper ๐Ÿ’ฐ From $1.4/1K ยท Bulk ZIP Lists

Give it a list of ZIP codes and get Zillow listings in them, for sale, for rent or recently sold. Turn on More results and raise Max items to split a dense ZIP past Zillow's 500-per-search cap. Price, status, address and coordinates per row; agent and broker with details on.

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

๐Ÿ“ฎ Zillow ZIP Code Search Scraper

Give it a list of ZIP codes and get Zillow listings in them โ€” for sale, for rent, or recently sold. One row per property, with price, status, address and coordinates.

Built for the job people actually do with ZIP codes: sweep a whole territory, a county's worth of codes, or a farm area, in a single run.

โญ Why use this Zillow ZIP scraper?

  • Past the 500 cap โ€” Zillow returns at most 500 results per search. Turn on Scrape beyond 500 results limit and raise Max Items (default 100), and each ZIP is split into smaller map areas instead of silently stopping at 500.
  • A list, not one code at a time โ€” paste every ZIP you cover; each becomes its own search and they run together.
  • Sale, rent or sold โ€” one switch changes what the whole sweep returns.
  • Real filters โ€” price, beds, baths and home type go into Zillow's own search query rather than being thrown away after the fact. On the mobile endpoint, which the run can fall back to when the web search is blocked, price and status carry over and the finer filters do not.
  • Agent email enrichment (optional) โ€” add the listing agent's direct email and phone from a 1,200,000+ US agent database. Needs Include property details switched on as well, because the lookup runs during the per-property detail fetch.
  • Proxies included on paid plans โ€” on any paid Apify plan the run goes out through the actor's own residential proxy pool at no extra cost, and the proxy input is not read. Free-plan runs use Apify's default datacenter proxy, which Zillow refuses, so there you need to set Proxy configuration to Apify RESIDENTIAL or your own residential URLs.

๐Ÿ“‹ What data does it extract?

Field groupColumns
IdentityID (ZPID), URL, Address, City, State, Zip Code, Latitude, Longitude
ListingPrice, Status, Acres
PeopleAgent Name, Agent Number, Broker Name, Broker Number โ€” with Include property details on
Agent email (optional)contactEmail, contactPhone, agentEmailSource โ€” with Agent email enrichment and Include property details on
Beds / baths / sizeBeds, Baths, Sq Ft, Year Built โ€” with Include property details and Flattened output both on
Run metadataDate (the date the run executed, not a listing date)
Optional depthdetails โ€” full property record with description, price history, tax history, schools, photos

๐Ÿงพ Supported inputs

InputExample
ZIP code78704
Several ZIPsone per line: 78704, 90210, 33139
City or neighborhoodAustin, TX, Brooklyn, NY

๐Ÿ’ก Use cases

  • Agents & teams โ€” sweep every ZIP in your farm area on a schedule and watch new inventory appear.
  • Investors โ€” pull whole ZIPs of recently sold homes to build comps and spot price movement.
  • Lenders & title โ€” map activity across the ZIP codes you are licensed in.
  • Proptech & data teams โ€” ZIP is the unit most property datasets already key on, so these rows join straight onto what you have.
  • Market research โ€” compare inventory and price across neighbouring codes.

๐Ÿš€ How it works

Each ZIP is resolved to Zillow's own region, then queried through the search API with your filters applied server-side. With Scrape beyond 500 results limit on, any search reporting more than 500 matches is split into map quadrants, and each quadrant is split again until every part fits under the cap.

โš™๏ธ Input configuration

FieldTypeNotes
searchLocationarrayOne ZIP per line, e.g. 78704. City names work too
statusenumforSale, forRent, sold
moreResultsbooleanSplit dense ZIPs to get past the 500-result cap
priceMin / priceMaxintegerPrice range
bedsMin / bathsMinintegerMinimums
homeTypesarrayHouse, condo, townhouse, land, โ€ฆ
includePropertyDetailsbooleanAdds the full record and agent contacts per row (slower)
flatOutputbooleanNeeds includePropertyDetails on; on a plain search it changes nothing. With both on, the nested details blob is dropped and flat spreadsheet columns are appended, Beds, Baths, Sq Ft and Year Built among them
enrichEmailsbooleanAgent email lookup, billed per email found. Needs includePropertyDetails on
maxItemsintegerStop after this many listings

Every field, with its type and default, is also listed on the actorโ€™s own input schema page.

๐Ÿ“ฆ Output sample

{
"ID": "29473051",
"URL": "https://www.zillow.com/homedetails/2107-Arpdale-St-Austin-TX-78704/29473051_zpid/",
"Address": "2107 Arpdale St, Austin, TX 78704",
"City": "Austin",
"State": "TX",
"Zip Code": "78704",
"Price": 1075000,
"Status": "FOR_SALE",
"Latitude": 30.248713,
"Longitude": -97.779
}

That is an excerpt. Every row also carries the rest of the standard column set โ€” about 30 columns, the same headers on every run โ€” and on a ZIP sweep most of them are empty. Description, zoning and the agent and broker columns fill once Include property details is switched on.

๐Ÿ”‘ Key output fields

  • Zip Code โ€” the ZIP the row actually sits in, so a multi-ZIP run can be grouped without re-parsing addresses.
  • Status โ€” FOR_SALE, FOR_RENT, RECENTLY_SOLD, matching the sweep you asked for. With Include property details and Flattened output both on it is re-read from the property's own page, so a listing that moved in between can come back as Zillow's live state instead (PENDING, SOLD).
  • Price โ€” asking price, or sold price on a closed sale. Blank where Zillow publishes no figure.
  • ID โ€” the ZPID on for-sale and sold rows, matching the zpid inside the row's own URL. A for-rent sweep also returns Zillow's building and cluster pins: those rows carry a latitude--longitude pseudo-id in ID and a /b/ or /apartments/ URL with no zpid in it.
  • details โ€” present with Include property details on and Flattened output off; that same switch is what fills the agent and broker columns.
  • contactEmail โ€” the email the enrichment toggle looks up, with contactPhone and agentEmailSource beside it. Rows that reached their detail record carry the three columns once the toggle is on, empty where no match was found; a listing whose detail fetch failed outright comes back as the bare search row without them. With Flattened output on there is also an Agent Email column, taken from Zillow's own listing attribution and usually empty; enrichment fills contactEmail, not that one.

The standard columns are Title Case (Address, Zip Code, Agent Name) so they read cleanly as spreadsheet headers. The enrichment additions keep Zillow-style camelCase โ€” contactEmail, contactPhone, agentEmailSource โ€” as does the nested details key.

โ“ FAQ

I asked for a whole ZIP and got exactly 500 rows. Turn on Scrape beyond 500 results limit. Without it, Zillow's own cap stops the search at 500 and the rest is never served.

Why are Agent Name and Broker Name empty? Those come from each listing's detail record. Switch on Include property details and they fill, at the cost of one extra fetch per property.

Why did a run stop early? Usually Max Items, which defaults to 100 โ€” raise it and the sweep keeps going. The other cause is the "Maximum cost per run" limit; when that is what cut the run short, the run says so in its status message. A run does not resume where the last one stopped, so raise the limit rather than re-running.

Do sold listings include the sale price? Usually. Not in non-disclosure states, where a sale price is not public record โ€” Texas is the one we have measured, and there Zillow publishes no figure, so Price comes back blank.

Can I mix ZIPs and city names? Yes. Each line is resolved independently, so 78704 and Brooklyn, NY can sit in the same run.

Do I need proxies or an API key? No API key, and no login is used. On a paid Apify plan the actor's own residential proxies are included at no extra cost and the proxy input is not read. On the free plan the run uses Apify's default datacenter proxy, which Zillow refuses, so set Proxy configuration to Apify RESIDENTIAL or your own residential URLs.

๐Ÿ›Ÿ Support

Open an issue on the actor's Issues tab with the run ID and the ZIP that looked wrong โ€” that is enough to trace it.

๐Ÿงฉ Additional services

Need a custom pipeline (specific columns, delivery to your DB/S3/webhook, merged multi-source feeds)? Open an issue describing what you need or contact the author through the actor page.

๐Ÿ”Ž Explore more scrapers

Eleven Zillow actors, all maintained by the same author. The six listing scrapers under Listings and properties emit the same standard columns as this one, so rows from any of them line up in one sheet; some add a column or two of their own on top.

Listings and properties

People and contacts

Beyond Zillow: all actors by memo23, 100+ maintained scrapers for real estate, jobs, directories and reviews. Other sites, other authors: the Apify Store.

๐Ÿค– For AI Agents & LLM Apps

This actor is MCP-ready: call it from AI agents (Claude, GPT, LangChain, LlamaIndex, or the Apify MCP server) to answer questions like "how many homes are for sale under $500k in 78704 right now?". ZIP codes are a unit an agent can derive from a user's question without building a Zillow URL, and the structured JSON with stable field names makes rows directly usable as tool results.

To wire it up: the ready-made Node.js and Python client snippets call this actor in a few lines (full client reference: JavaScript, Python), and the MCP tab exposes it as a tool to an MCP client. In your own Apify Console, where you are signed in, the actor's integrations push each run straight to Google Sheets, Slack, a webhook or your own storage (how integrations work).

โš ๏ธ Disclaimer

This actor is not affiliated with, endorsed by, or connected to Zillow Group. It extracts only publicly visible listing information for lawful purposes such as market research and personal planning; no login is used and no private data is accessed. You are responsible for how you use the data โ€” respect Zillowโ€™s terms and applicable laws. Apifyโ€™s own write-up on the legality of web scraping is a good starting point, and personal data in the output (agent names, phone numbers, emails) falls under rules such as EU Regulation 2016/679.


zillow zip code scraper ยท scrape zillow by zip ยท zillow postal code search ยท bulk zillow zip search ยท zillow listings by zip code ยท zillow zip API ยท real estate zip code data ยท export zillow zip search to excel