Zillow Scraper — (w/ Property Search, Zip codes & Agent Leads)
Pricing
from $4.00 / 1,000 property scrapeds
Zillow Scraper — (w/ Property Search, Zip codes & Agent Leads)
Scrape Zillow listings with 40+ fields: address, price, Zestimate, price history, agent contact info, school ratings, walk score & more. Search by city, ZIP code, direct URL, or ZPID. Outputs CRM-ready JSON. Perfect for real estate investors, lead gen, and market research.
Pricing
from $4.00 / 1,000 property scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
20 hours ago
Last modified
Categories
Share
🏠 Zillow All-in-One Scraper — Properties, Prices & Agent Leads
What does Zillow All-in-One Scraper do?
This actor extracts 50+ fields per listing from Zillow in a single run — combining search results AND full listing details without needing two separate actors. Search by keyword, feed direct URLs, look up ZPIDs, or sweep entire ZIP codes. Get price history, Zestimate, agent contact info, walkability scores, nearby schools, tax records, and more — all in clean, CRM-ready JSON.
Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.
Why use Zillow All-in-One Scraper?
- One actor, full data. Other solutions split search and detail scraping into separate actors, requiring you to stitch results. This actor does both in one pass.
- 50+ fields per listing. Price history, tax history, agent phone/email, Zestimate, rent estimate, walk score, transit score, nearby schools — fields that other scrapers don't include.
- 4 input modes. Search by keyword/location, direct Zillow URLs, ZPID arrays, or ZIP code lists. Use whichever fits your workflow.
- Cheaper than the alternative. Running Zillow Search Scraper + Zillow Detail Scraper separately costs ~$0.005/listing. This actor costs $0.004/listing with more data.
- Built for B2B. Agent lead generation, real estate investment analysis, CRM enrichment, market comps — this actor is structured for business workflows.
What data does Zillow All-in-One Scraper extract?
| Field | Type | Description |
|---|---|---|
| zpid | string | Zillow property ID (unique key) |
| url | string | Full Zillow listing URL |
| address | object | Street, city, state, ZIP, neighborhood |
| latitude / longitude | number | GPS coordinates |
| price | number | Listing price in USD |
| price_per_sqft | number | Price divided by living area |
| zestimate | number | Zillow's automated valuation |
| rent_zestimate | number | Estimated monthly rental value |
| listing_status | string | FOR_SALE, FOR_RENT, RECENTLY_SOLD |
| property_type | string | SINGLE_FAMILY, CONDO, TOWNHOUSE, etc. |
| days_on_market | number | Days listed on Zillow |
| bedrooms / bathrooms | number | Room counts |
| living_area_sqft | number | Finished living area |
| lot_size_sqft | number | Total lot size |
| year_built | number | Construction year |
| garage_spaces | number | Garage capacity |
| has_pool | boolean | Pool present |
| description | string | Full listing description |
| features | string[] | Appliances, interior/exterior features |
| photos | string[] | High-resolution photo URLs |
| virtual_tour_url | string | 3D tour link if available |
| open_house_dates | string[] | Upcoming open house times |
| hoa_fee | number | Monthly HOA fee |
| annual_tax | number | Estimated annual property tax |
| price_history | array | Date, price, event for all price changes |
| tax_history | array | Year and tax amount per year |
| agent_name | string | Listing agent full name |
| agent_phone | string | Agent phone number |
| agent_email | string | Agent email address |
| agent_license | string | Agent license number |
| broker_name | string | Listing brokerage name |
| mls_id | string | MLS identifier |
| walk_score | number | Walkability score (0–100) |
| transit_score | number | Transit access score (0–100) |
| bike_score | number | Bikeability score (0–100) |
| nearby_schools | array | School name, type, rating, distance |
| scraped_at | string | ISO 8601 timestamp |
| source_url | string | Exact URL scraped |
How to use Zillow All-in-One Scraper
Mode 1: Search by keyword (most common)
Enter a location, neighborhood, or keyword search in the Search Query field:
Austin, TX3BR condos in downtown DenverHomes near UCLA Los Angeles
Pair with listing type (For Sale / For Rent / Recently Sold) and optional filters like price range, minimum beds/baths.
Mode 2: Direct Zillow URLs
Paste Zillow listing URLs directly into Direct Zillow URLs:
https://www.zillow.com/homedetails/123-Main-St-Austin-TX-78701/87802938_zpid/https://www.zillow.com/homedetails/456-Oak-Ave-Denver-CO-80203/12345678_zpid/
Best for when you already have a list of properties and want full data enrichment.
Mode 3: ZPID lookup
Provide Zillow property IDs (ZPIDs) in the Zillow Property IDs field:
878029381234567899887766
Great for CRM enrichment — when you already have ZPIDs in your database.
Mode 4: ZIP code sweep
Enter ZIP codes in the ZIP Codes field:
787017870278703
The actor sweeps every active listing in each ZIP. Ideal for bulk market analysis.
API usage example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('USERNAME/zillow-all-in-one-scraper').call({searchQuery: 'Austin, TX',listingType: 'FOR_SALE',minBeds: 3,maxPrice: 600000,maxResults: 100,proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'] },});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} properties`);console.log(items[0]);// { zpid: '87802938', price: 450000, agent_name: 'Jane Smith', agent_phone: '(512) 555-0123', ... }
Example output
{"zpid": "87802938","url": "https://www.zillow.com/homedetails/123-Main-St-Austin-TX-78701/87802938_zpid/","address": {"street": "123 Main St","city": "Austin","state": "TX","zip": "78701","neighborhood": "Downtown Austin","subdivision": null},"latitude": 30.2672,"longitude": -97.7431,"price": 450000,"price_per_sqft": 281,"zestimate": 448000,"rent_zestimate": 2350,"listing_status": "FOR_SALE","property_type": "SINGLE_FAMILY","days_on_market": 12,"bedrooms": 3,"bathrooms": 2.5,"living_area_sqft": 1600,"lot_size_sqft": 6500,"year_built": 2005,"garage_spaces": 2,"has_pool": false,"hoa_fee": null,"annual_tax": 8200,"zestimate": 448000,"price_history": [{ "date": "2026-03-28", "price": 465000, "event": "Listed" },{ "date": "2026-04-01", "price": 450000, "event": "Price Cut" }],"agent_name": "Jane Smith","agent_phone": "(512) 555-0123","agent_email": "jane.smith@realty.com","broker_name": "Austin Premier Realty","mls_id": "1234567","walk_score": 72,"transit_score": 45,"bike_score": 58,"nearby_schools": [{ "name": "Austin Elementary", "type": "Elementary", "rating": 8, "distance": 0.4 }],"scraped_at": "2026-04-09T14:32:00.000Z","source_url": "https://www.zillow.com/homedetails/..."}
Pricing
This actor uses pay-per-event pricing: $0.004 per property listing extracted.
| Results | Cost |
|---|---|
| 10 properties | $0.04 |
| 100 properties | $0.40 |
| 500 properties | $2.00 |
| 1,000 properties | $4.00 |
| 5,000 properties | $20.00 |
Why this is a good deal: Running Zillow's own search scraper ($0.002) + detail scraper ($0.003) separately costs $0.005/property — plus the effort of stitching two datasets together. This actor delivers more fields for $0.004 in a single run.
Apify provides $5 in free credits every month on the Free plan — enough for ~1,250 properties.
Proxy requirements
Zillow actively blocks datacenter IP addresses. Residential proxies are required and are pre-configured by default using Apify's Residential proxy group. Do not change this to datacenter proxies — you will receive 403 errors.
Residential proxy usage is included in your Apify proxy billing, separate from actor event charges.
Use cases
Real estate investment: Sweep entire zip codes for undervalued properties. Compare price vs. Zestimate to find motivated sellers. Analyze price history for trend signals.
Agent lead generation: Extract agent name, phone, and email from competitor listings. Build targeted outreach lists for real estate marketing campaigns.
Market research: Track median prices, days on market, and listing volumes across neighborhoods over time. Schedule weekly runs for ongoing market pulse data.
CRM enrichment: Feed ZPIDs from your database into the actor to refresh stale property records with current prices, status, and agent contact info.
Skip tracing complement: Combine with property owner data workflows — use price history and tax history fields to identify distressed properties.
Works great with
- Skip Trace Property Owner Scraper — find property owners from the listing data extracted here
- Bulk Website Contact Extractor — enrich agent broker websites with additional contact details
FAQ
Q: Does this scraper require a Zillow account? A: No. All data is extracted from Zillow's publicly accessible listing pages. No login required.
Q: How many results can I get per search? A: Zillow limits search results to approximately 500 per geographic tile. For larger areas, use ZIP code mode to sweep multiple smaller areas, or use the maxResults limit to control volume.
Q: Why do some listings have null fields?
A: Not every listing has all fields. New listings may lack price history. Land listings won't have bedroom/bathroom data. Rental listings may not show agent email. All fields are always present in the output (never omitted), but some will be null.
Q: Can I scrape rental listings?
A: Yes. Set listingType to FOR_RENT in your input configuration.
Q: How often is Zillow's data updated? A: Listing data on Zillow is updated frequently (multiple times daily for active listings). Schedule regular actor runs to keep your data fresh.
Q: What happens if I hit Zillow's bot detection? A: The actor uses residential proxies and session rotation to minimize detection. If a request fails, it retries automatically up to 3 times with a fresh session and proxy. Success rates above 93% are typical.
Legal disclaimer
This actor is intended for lawful data collection from publicly available sources. Users are responsible for compliance with applicable laws, Zillow's Terms of Service, and data protection regulations (GDPR, CCPA, etc.). Zillow property data is publicly available on the internet. Always ensure your use case complies with local laws governing data collection and use.