ZillowPulse — Stale Listing & Price Drop Detector avatar

ZillowPulse — Stale Listing & Price Drop Detector

Pricing

$29.00/month + usage

Go to Apify Store
ZillowPulse — Stale Listing & Price Drop Detector

ZillowPulse — Stale Listing & Price Drop Detector

Find motivated sellers before your competition does. ZillowPulse scans Zillow by ZIP code and surfaces every FOR_SALE listing that has been sitting on the market for 30+ days — including full price history, tax records, school ratings, and direct agent contact details.

Pricing

$29.00/month + usage

Rating

0.0

(0)

Developer

YKA

YKA

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 hours ago

Last modified

Share

Find motivated sellers before your competition does. ZillowPulse scans Zillow by ZIP code and surfaces every FOR_SALE listing that has been sitting on the market for 30+ days — including full price history, tax records, school ratings, and direct agent contact details.

Built for real estate agents and investors who want to identify negotiation leverage: listings where the seller is under pressure, the price has already dropped, and days on market signal motivation to deal.


Why This Actor Exists

The most actionable leads in real estate are not new listings — they are stale listings. A property that has been on the market for 30, 60, or 90 days with a price reduction tells a clear story: the seller needs to move. ZillowPulse automates the discovery of exactly these properties at scale.

Key signals this Actor surfaces:

  • Listings active for 30+ days (fully configurable)
  • Full price history showing every reduction, relisting, and sale event
  • Price drop percentage calculable from priceHistory — flag any listing where the original list price has dropped 15%+
  • Agent name, phone, and brokerage — ready for outreach
  • Tax history going back 20+ years — understand true ownership cost
  • School ratings — critical context for family buyer conversations

What You Get Per Listing

Each scraped record contains:

FieldDescription
street_addressFull street address
city / state / zipLocation
price_listedCurrent asking price
days_on_zillowDays on market per Zillow
days_on_market_calculatedDays calculated from datePostedString
date_postedOriginal listing date (YYYY-MM-DD)
bedrooms / bathroomsBed/bath count
living_area_sqftInterior square footage
lot_size_sqftLot size
year_builtYear of construction
price_per_sqftPrice per square foot
zestimateZillow automated valuation
rent_zestimateEstimated rental value
hoa_feeHOA fee if applicable
agent_nameListing agent full name
agent_phoneListing agent phone number
brokerage_nameListing brokerage
priceHistoryFull array of every price event — list, reduce, sell
taxHistory20–25 years of annual tax and assessed value records
schools3 nearest schools with ratings, grades, and distance
photosArray of listing photo URLs
descriptionFull property description text
zillow_urlDirect link to the Zillow listing
home_typeSINGLE_FAMILY, CONDO, TOWNHOUSE, etc.
home_statusFOR_SALE, PENDING, etc.
latitude / longitudeCoordinates
countyCounty name
parkingParking details
heating / coolingHVAC details
scraped_atISO timestamp of when data was collected

How to Identify Price Drops in the Output

The priceHistory array contains every price event. To find listings with a 15%+ price drop, filter where:

originalPrice = first event in priceHistory where event = "Listed for sale"
currentPrice = price_listed
dropPct = (originalPrice - currentPrice) / originalPrice * 100
flag if dropPct >= 15

Example priceHistory entry:

{
"date": "2026-01-15",
"event": "Price change",
"price": 850000,
"priceChangeRate": -0.15,
"pricePerSquareFoot": 425
}

The priceChangeRate field is negative for reductions — -0.15 means a 15% drop. You can filter directly on this field without any calculation.


Input Parameters

ParameterTypeRequiredDefaultDescription
zipCodesarray✅ YesOne or more US ZIP codes to search
minDaysOnMarketintegerNo20Minimum days listed. Use 30 for motivated sellers
maxListingsPerZipintegerNo0 (unlimited)Cap results per ZIP. 0 = no limit
minPriceintegerNononeMinimum asking price filter
maxPriceintegerNononeMaximum asking price filter
homeTypesarrayNoall typesFilter by type: SINGLE_FAMILY, CONDO, TOWNHOUSE, MULTI_FAMILY, LAND, MANUFACTURED
webhookUrlstringNononePOST each result to this URL as it is scraped
{
"zipCodes": ["75229", "75230", "75231"],
"minDaysOnMarket": 30,
"maxListingsPerZip": 50,
"homeTypes": ["SINGLE_FAMILY"]
}

Input for Price Drop Hunting (All Types, No Cap)

{
"zipCodes": ["92131"],
"minDaysOnMarket": 30,
"maxListingsPerZip": 0
}

How It Works

Stage 1 — Search: ZillowPulse queries Zillow's search API for each ZIP code, paginating from oldest to newest. Only listings meeting your minDaysOnMarket threshold are collected. This avoids scraping thousands of detail pages unnecessarily.

Stage 2 — Detail Scrape: Each qualifying listing URL is fetched individually. The full property page is parsed to extract all data fields, then a secondary GraphQL query pulls price history, tax history, and school data that is not available in the HTML.

All requests are rate-limited and spaced to operate reliably without blocks.


Expected Performance

ListingsEstimated Runtime
10~1 minute
50~5 minutes
100~10 minutes
200~20 minutes

Rate: approximately 15 listings per minute.


Use Cases

Real estate agents — Build a daily pipeline of stale listings in your farm area. Call the listing agent with a buyer who is ready to move.

Investors — Identify distressed listings where price reductions signal seller motivation. Cross-reference tax history to understand true cost basis.

Wholesalers — Find properties sitting on the market with multiple price drops. These sellers are the most likely to accept below-market offers.

Market analysts — Track days-on-market trends and price reduction frequency by ZIP code over time.


Output Example

{
"zpid": "16823642",
"street_address": "10060 Scripps Vista Way Unit 33",
"city": "San Diego",
"state": "CA",
"zip": "92131",
"price_listed": 795000,
"days_on_zillow": 38,
"days_on_market_calculated": 38,
"date_posted": "2026-02-15",
"bedrooms": 3,
"bathrooms": 2,
"living_area_sqft": 1450,
"year_built": 1998,
"zestimate": 781000,
"agent_name": "Sarah Johnson",
"agent_phone": "619-555-0142",
"brokerage_name": "Compass",
"priceHistory": [
{
"date": "2026-02-15",
"event": "Listed for sale",
"price": 950000,
"priceChangeRate": 0
},
{
"date": "2026-03-01",
"event": "Price change",
"price": 875000,
"priceChangeRate": -0.079
},
{
"date": "2026-03-15",
"event": "Price change",
"price": 795000,
"priceChangeRate": -0.091
}
],
"schools": [
{ "name": "Miramar Ranch Elementary", "rating": 9, "distance": 0.4 },
{ "name": "Scripps Ranch Middle School", "rating": 8, "distance": 1.2 },
{ "name": "Scripps Ranch High School", "rating": 9, "distance": 1.8 }
],
"zillow_url": "https://www.zillow.com/homedetails/10060-Scripps-Vista-Way-UNIT-33-San-Diego-CA-92131/16823642_zpid/",
"scraped_at": "2026-03-24T04:07:42.000Z"
}

This Actor is intended for personal research and professional real estate use. Users are responsible for complying with Zillow's Terms of Service and all applicable laws. Data collected should not be used for mass unsolicited contact or resale without appropriate licensing.


Support

For issues, feature requests, or custom configurations, contact the actor maintainer through the Apify platform.