Zillow Scraper — (w/ Property Search, Zip codes & Agent Leads) avatar

Zillow Scraper — (w/ Property Search, Zip codes & Agent Leads)

Pricing

from $4.00 / 1,000 property scrapeds

Go to Apify Store
Zillow Scraper — (w/ Property Search, Zip codes & Agent Leads)

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

20 hours ago

Last modified

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?

FieldTypeDescription
zpidstringZillow property ID (unique key)
urlstringFull Zillow listing URL
addressobjectStreet, city, state, ZIP, neighborhood
latitude / longitudenumberGPS coordinates
pricenumberListing price in USD
price_per_sqftnumberPrice divided by living area
zestimatenumberZillow's automated valuation
rent_zestimatenumberEstimated monthly rental value
listing_statusstringFOR_SALE, FOR_RENT, RECENTLY_SOLD
property_typestringSINGLE_FAMILY, CONDO, TOWNHOUSE, etc.
days_on_marketnumberDays listed on Zillow
bedrooms / bathroomsnumberRoom counts
living_area_sqftnumberFinished living area
lot_size_sqftnumberTotal lot size
year_builtnumberConstruction year
garage_spacesnumberGarage capacity
has_poolbooleanPool present
descriptionstringFull listing description
featuresstring[]Appliances, interior/exterior features
photosstring[]High-resolution photo URLs
virtual_tour_urlstring3D tour link if available
open_house_datesstring[]Upcoming open house times
hoa_feenumberMonthly HOA fee
annual_taxnumberEstimated annual property tax
price_historyarrayDate, price, event for all price changes
tax_historyarrayYear and tax amount per year
agent_namestringListing agent full name
agent_phonestringAgent phone number
agent_emailstringAgent email address
agent_licensestringAgent license number
broker_namestringListing brokerage name
mls_idstringMLS identifier
walk_scorenumberWalkability score (0–100)
transit_scorenumberTransit access score (0–100)
bike_scorenumberBikeability score (0–100)
nearby_schoolsarraySchool name, type, rating, distance
scraped_atstringISO 8601 timestamp
source_urlstringExact 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, TX
3BR condos in downtown Denver
Homes 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:

87802938
12345678
99887766

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:

78701
78702
78703

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.

ResultsCost
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

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.

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.