Zillow FSBO & Coming Soon Listings Scraper
Pricing
Pay per usage
Zillow FSBO & Coming Soon Listings Scraper
Scrape Zillow For Sale By Owner (FSBO) and Coming Soon listings for any US location. Extract seller contact info, property prices, Zestimates, tax history, price history, photos, and more. Built for real estate investors, wholesalers, and agents who target motivated FSBO sellers and off-market deals
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 hours ago
Last modified
Categories
Share
Scrape Zillow For Sale By Owner (FSBO) and Coming Soon listings for any US location. Purpose-built for real estate investors, wholesalers, and agents who target motivated FSBO sellers and pre-market deals.
FSBO sellers have no agent representation — they are the most accessible sellers on the market. Coming Soon listings give you early access to properties before they hit the MLS. This scraper gives you both in a single run.
Why FSBO & Coming Soon?
- FSBO sellers save 5-6% on agent commissions — they are motivated, price-flexible, and open to direct offers
- Coming Soon listings appear before the property is officially on market — giving investors a 1-2 week head start
- Wholesalers use FSBO data to find motivated sellers for assignment contracts
- Agents prospect FSBO sellers to offer listing services (biggest lead source in real estate)
- Investors find below-market deals from unrepresented sellers
Features
- FSBO + Coming Soon filters — scrape one or both listing types in a single run
- Seller contact extraction — name, phone, email when available
- Investment analysis fields — Zestimate gap, price per sqft, tax assessed value, price and tax history
- 4-tier extraction strategy —
__NEXT_DATA__JSON, Apollo GraphQL cache, Zillow API search, CSS selectors - Anti-bot handling — CAPTCHA detection, rate limiting, 10+ rotating user agents, residential proxy support
- Automatic pagination — follows Zillow's paginated results across all available pages
- Deduplication — skips duplicate listings by ZPID and normalized address
- Detail page scraping — automatically visits each listing for full description, photos, tax history, and price history
Output Fields
Each scraped listing includes:
| Field | Type | Description |
|---|---|---|
zpid | string | Zillow Property ID |
address | string | Full address |
streetAddress | string | Street address only |
city | string | City name |
state | string | State code |
zipcode | string | ZIP code |
price | number | Listing price |
priceFormatted | string | Formatted price (e.g., "$325,000") |
zestimate | number | Zillow's estimated market value |
zestimateFormatted | string | Formatted Zestimate |
zestimateGap | string | Difference between ask and Zestimate |
pricePerSqft | number | Price per square foot |
bedrooms | number | Number of bedrooms |
bathrooms | number | Number of bathrooms |
sqft | number | Living area square footage |
lotSize | string | Lot size |
yearBuilt | number | Year the property was built |
propertyType | string | Single Family, Condo, Townhouse, etc. |
listingStatus | string | FSBO, Coming Soon, etc. |
sellerType | string | "FSBO" or "Coming Soon" |
daysOnZillow | number | Days on Zillow |
contactName | string | Seller or agent name |
contactPhone | string | Contact phone number |
contactEmail | string | Contact email (when available) |
description | string | Full listing description |
photos | array | High-resolution photo URLs |
taxHistory | array | Tax assessment history (year, value, taxPaid) |
priceHistory | array | Price change history (date, price, event) |
taxAssessedValue | number | Current tax assessed value |
monthlyHoaFee | number | Monthly HOA fee |
latitude | number | Latitude coordinate |
longitude | number | Longitude coordinate |
listingUrl | string | Zillow listing page URL |
scrapedAt | string | ISO timestamp when scraped |
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
location | string | "los-angeles-ca" | City, zip, or neighborhood (Zillow slug format) |
listingType | enum | "both" | "fsbo", "coming_soon", or "both" |
minPrice | integer | 0 | Minimum price filter |
maxPrice | integer | 0 | Maximum price filter |
minBeds | integer | 0 | Minimum bedrooms |
minBaths | integer | 0 | Minimum bathrooms |
maxResults | integer | 500 | Max listings to scrape (0 = unlimited) |
proxyConfiguration | object | - | Apify proxy config (residential recommended) |
Example Input
{"location": "phoenix-az","listingType": "both","minPrice": 100000,"maxPrice": 500000,"minBeds": 3,"minBaths": 2,"maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example Output
{"zpid": "87654321","address": "4521 E Cactus Rd, Phoenix, AZ 85032","streetAddress": "4521 E Cactus Rd","city": "Phoenix","state": "AZ","zipcode": "85032","price": 349000,"priceFormatted": "$349,000","zestimate": 375000,"zestimateFormatted": "$375,000","zestimateGap": "+$26,000 (7.4% above ask)","pricePerSqft": 195,"bedrooms": 4,"bathrooms": 2,"sqft": 1790,"lotSize": "7,200 sqft","yearBuilt": 1985,"propertyType": "Single Family","listingStatus": "For Sale by Owner","sellerType": "FSBO","daysOnZillow": 14,"contactName": "John Smith","contactPhone": "(602) 555-1234","contactEmail": null,"description": "Charming 4-bedroom home in the heart of Phoenix. Updated kitchen with granite countertops, new AC unit (2024), large backyard with pool. No agent commission — priced to sell!","photos": ["https://photos.zillowstatic.com/fp/photo1.jpg","https://photos.zillowstatic.com/fp/photo2.jpg","https://photos.zillowstatic.com/fp/photo3.jpg"],"taxHistory": [{ "year": 2025, "taxPaid": 2890, "value": 310000 },{ "year": 2024, "taxPaid": 2750, "value": 295000 },{ "year": 2023, "taxPaid": 2540, "value": 275000 }],"priceHistory": [{ "date": "2026-02-15", "price": 349000, "event": "Listed (FSBO)" },{ "date": "2018-06-10", "price": 225000, "event": "Sold" }],"taxAssessedValue": 310000,"monthlyHoaFee": null,"latitude": 33.5722,"longitude": -111.9771,"listingUrl": "https://www.zillow.com/homedetails/4521-E-Cactus-Rd/87654321_zpid/","scrapedAt": "2026-03-02T10:00:00.000Z","source": "zillow-fsbo","searchLocation": "phoenix-az"}
Use Cases
Real Estate Investors
- Find below-market FSBO deals where sellers price 5-15% below market
- Compare ask price vs Zestimate to spot undervalued properties
- Use tax history to identify long-term owners likely to negotiate
- Get Coming Soon listings before competing buyers see them
Wholesalers
- Build FSBO seller contact lists for direct mail and cold calling campaigns
- Filter by days on market to find increasingly motivated sellers
- Target properties with large Zestimate-to-ask gaps for assignment contracts
- Identify distressed or long-listed properties ripe for wholesale offers
Real Estate Agents
- Prospect FSBO sellers to offer listing representation services
- Track Coming Soon inventory for buyer clients
- Analyze FSBO pricing patterns in your market
- Build market reports showing FSBO vs agent-listed price differences
Market Researchers
- Track FSBO inventory levels across markets over time
- Compare FSBO pricing vs MLS-listed properties
- Analyze days-on-market for FSBO vs agent-listed homes
- Monitor Coming Soon listing trends as a leading market indicator
Location Format
Use Zillow's URL-friendly slug format for locations:
| Type | Format | Example |
|---|---|---|
| City + State | city-state | los-angeles-ca, phoenix-az |
| Multi-word city | city-name-state | san-francisco-ca, new-york-ny |
| ZIP code | zipcode | 90210, 85032 |
| Neighborhood | neighborhood-city-state | scottsdale-az |
| County | county-state | maricopa-county-az |
Tip: search on zillow.com and copy the location slug from the URL.
Proxy Configuration
Zillow aggressively blocks datacenter IP addresses. Residential proxies are strongly recommended for reliable scraping.
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Without proxies, expect high block rates and incomplete results.
How It Works
- URL Construction — Builds Zillow search URLs with FSBO and/or Coming Soon filters using the
searchQueryStateparameter - Search Page Scraping — Uses CheerioCrawler with realistic browser headers and conservative rate limiting
- 4-Tier Extraction — Tries extraction strategies in priority order:
__NEXT_DATA__JSON (Next.js server-side data — most complete)hdpApolloPreloadedData(Apollo GraphQL cache)- Zillow API search endpoint (JSON response)
- CSS selectors (fallback for when JSON blobs are unavailable)
- Detail Page Enrichment — Visits each listing's detail page for full description, photos, tax history, price history, and seller contact info
- Investment Metrics — Calculates Zestimate gap, price per sqft, and flags undervalued properties
- Deduplication — Skips duplicate listings by ZPID and normalized address
- Pagination — Automatically follows paginated results across all available pages
Differences from General Zillow Scraper
| Feature | This Actor (FSBO) | General Zillow Scraper |
|---|---|---|
| Focus | FSBO + Coming Soon only | All for-sale listings |
| Seller contact | Name, phone, email extraction | Agent/broker only |
| Investment metrics | Zestimate gap, price/sqft, tax analysis | Basic price only |
| Tax history | Included | Not included |
| Price history | Included | Not included |
| Seller type | FSBO vs Coming Soon classification | Generic status |
| Detail scraping | Always (for contact + history) | Optional |
| Target audience | Investors, wholesalers, agents | General real estate |
Rate Limits & Anti-Bot
- Max 12 requests per minute (conservative for Zillow)
- Max 2 concurrent requests
- Random delays between requests (200-1000ms)
- 10+ rotating user agents
- Automatic CAPTCHA and block detection
- Graceful degradation (saves partial results on block)
Cost
Pay-per-event pricing: $0.005 per listing scraped.
Example costs:
- 100 listings = $0.50
- 500 listings = $2.50
- 1,000 listings = $5.00
Plus Apify platform compute costs (~$0.25-0.50 per 1000 pages for residential proxies).
Changelog
v1.0.0 (2026-03-02)
- Initial release
- FSBO and Coming Soon listing filters
- Seller contact extraction (name, phone, email)
- Investment analysis fields (Zestimate gap, price/sqft, tax assessed value)
- Tax history and price history extraction
- 4-tier extraction strategy
- Automatic pagination and deduplication
- Detail page enrichment for all listings
Integration — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("sovereigntaylor/zillow-fsbo-scraper").call(run_input={"searchTerm": "zillow fsbo","maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item.get('title', item.get('name', 'N/A'))}")
Integration — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/zillow-fsbo-scraper').call({searchTerm: 'zillow fsbo',maxResults: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.title || item.name || 'N/A'));