Zillow Price Drop & New Listing Monitor avatar

Zillow Price Drop & New Listing Monitor

Pricing

$4.00 / 1,000 change events

Go to Apify Store
Zillow Price Drop & New Listing Monitor

Zillow Price Drop & New Listing Monitor

Watch Zillow ZIP codes for what changed since your last run: new listings, price cuts, price increases, removed listings and back-on-market. Built for a daily or weekly schedule plus a webhook, so you get alerts, not full dumps.

Pricing

$4.00 / 1,000 change events

Rating

0.0

(0)

Developer

Luke Hunter

Luke Hunter

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

For real-estate investors, agents, analysts and homebuyers tracking selected ZIP codes. One run returns change events, not a full dump: new listings, price cuts, price increases, listings removed from search results, and listings back on the market. Run it daily or weekly to turn those changes into alerts. Pay-per-result: $0.004 per change event — 250 events = $1. The free per-ZIP summary row never counts toward that. Try it free with Apify's monthly platform credit.

This is a real estate price monitor, not a raw scraper: point it at the same ZIP codes every run and it remembers what it saw last time, so you only pay for what actually changed.

Quick start (2 minutes)

  1. Open the Input tab (no Zillow account or API key needed).
  2. Use this prefill (swap in your own ZIP codes):
{
"zipCodes": ["90210", "10001"],
"maxEvents": 200
}
  1. Click Start. The first run for a ZIP is always a baseline: it saves what's currently listed and delivers no change events yet, because there is nothing to compare against. Run it again — on a schedule, or by clicking Start a second time — to start getting new_listing, price_cut, price_increase, removed and back_on_market events.

Run it as a Zillow price drop alert (schedule + webhook)

This Actor is built to sit on a schedule and hand off to a webhook, not to be run once:

  1. Set your ZIP codes and click Schedule on the run page (or create one under Schedules in the Apify Console) — daily for a fast-moving market, weekly for most residential ZIPs.
  2. Open the schedule's Run configuration, then add a Webhook under Integrations for the ACTOR.RUN.SUCCEEDED event, pointing at:
    • Slack: an Apify-to-Slack integration (Apify's own Slack integration, or a Zapier/Make webhook step) that posts the run's dataset items to a channel.
    • Google Sheets: the Apify-to-Google-Sheets integration, appending each run's price_cut rows to a sheet you watch.
    • Your own endpoint: the webhook payload includes the run's dataset URL, so a small script can pull .../items?view=overview and act on eventType.
  3. Every scheduled run after the first delivers only what changed — new listings and price cuts are usually what buyers filter for; minPriceChangePct and eventTypes narrow it further so a webhook only fires on the events you care about.

Example: what a real week looks like

  • Week 1 (baseline): zip_summary row only — listingsNow: 47, isBaseline: true. Nothing charged.
  • Week 2: three new_listing events, one price_cut (a $15,000 reduction), two removed events, plus the free zip_summary row for that ZIP.
  • Week 3: one of last week's removed listings reappears as back_on_market at a lower price.

Input

{
"zipCodes": ["90210", "10001"],
"eventTypes": ["new_listing", "price_cut", "price_increase", "removed", "back_on_market"],
"minPriceChangePct": 0,
"maxPagesPerZip": 20,
"stateStoreName": "zillow-price-drop-monitor-state",
"emitBaselineAsNew": false,
"maxEvents": 200
}
FieldTypeDefaultDescription
zipCodesstring[]required1–50 US ZIP codes. Zillow for-sale ZIP URLs are also accepted.
eventTypesstring[]all fiveWhich change event types to deliver and charge for.
minPriceChangePctnumber0Ignore price changes smaller than this absolute percentage of the previous price.
maxPagesPerZipinteger201–20. Safety cap on search-result pages fetched per ZIP per run.
stateStoreNamestringzillow-price-drop-monitor-stateName of the store this Actor remembers each ZIP's last snapshot under. Change it only if you're running several independent watch lists.
emitBaselineAsNewbooleanfalseDeliver the first run's listings as new_listing events instead of only saving a baseline.
maxEventsinteger2001–5000. Hard cap on change events delivered (and charged) per run.

For most users, the only setting that matters is ZIP codes — everything else has a sensible default.

Change event fields

FieldDescription
eventTypenew_listing, price_cut, price_increase, removed, back_on_market, or the free zip_summary.
zip, zpidThe ZIP code and Zillow's own stable property id.
address, urlAddress and Zillow listing URL.
previousPrice, currentPrice, priceChange, priceChangePctPrice before/after this run and the computed delta.
bedrooms, bathrooms, livingArea, homeType, daysOnZillowProperty details, current if seen this run, otherwise last known.
observedAt, previousObservedAtWhen this run and the previous observation happened.

The free zip_summary row adds listingsNow, listingsBefore, newCount, removedCount, priceCutCount, medianPriceNow, medianPriceBefore, isBaseline and coverageComplete.

Example change events

{
"eventType": "price_cut",
"zip": "90210",
"zpid": "20533678",
"address": "3084 Franklin Canyon Dr, Beverly Hills, CA 90210",
"previousPrice": 3995000,
"currentPrice": 3895000,
"priceChange": -100000,
"priceChangePct": -2.5,
"daysOnZillow": 125,
"observedAt": "2026-10-04T06:00:00.000Z",
"previousObservedAt": "2026-09-27T06:00:00.000Z"
}
{
"eventType": "zip_summary",
"zip": "90210",
"listingsNow": 44,
"listingsBefore": 47,
"newCount": 3,
"removedCount": 6,
"priceCutCount": 1,
"medianPriceNow": 2450000,
"medianPriceBefore": 2495000,
"isBaseline": false,
"coverageComplete": true,
"observedAt": "2026-10-04T06:00:00.000Z"
}

Pricing and cost control

This Actor uses pay per delivered change event pricing.

Current configured rate: $0.004 per change event delivered. Check the Apify Pricing tab for the latest published rate. The free zip_summary row (one per ZIP, per run) is never charged.

Change events deliveredCost at $0.004/event
100$0.40
250$1.00
1,000$4.00

There is no charge for a baseline run that finds no changes, and no charge for merely starting a run. maxEvents gives you a clear upper bound on the number of billable events per run.

Important limitations

  • The first run for any ZIP is a baseline. It saves what's currently listed and delivers no change events by default (turn on emitBaselineAsNew if you want the initial listings delivered as new_listing events — those are charged normally).
  • removed is not the same as sold. A listing leaving Zillow's search results can mean it sold, was taken off the market, expired, or was relisted under a new listing id — this Actor reports that it left the ZIP's search results, not why.
  • A ZIP with more pages than maxPagesPerZip cannot have removed detected reliably that run. When a run doesn't fetch every page Zillow has for a ZIP, removed is suppressed and removedCount/coverageComplete say so, rather than guessing that an unfetched listing is gone.
  • State lives in the named key-value store you configure (stateStoreName). Deleting that store, or changing its name, resets your baseline for every ZIP.
  • Zillow inventory and prices change continuously; every row is a point-in-time comparison between two runs, identified by observedAt/previousObservedAt.
  • Individual agent names, phone numbers, and email addresses are not collected.
  • The Actor does not use CAPTCHA bypass, proxy rotation, credential capture, or impersonation.
  • This is an independent tool and is not affiliated with, endorsed by, or connected to Zillow Group, Inc. Zillow is a trademark of its owner. You are responsible for using the data in accordance with applicable terms and laws.

FAQ

Is this a Zillow price change alert I can put on a schedule?

Yes — that's what it's built for. Schedule it daily or weekly and pair the schedule with an Apify webhook (see "Run it as a Zillow price drop alert" above) to push price_cut/new_listing events into Slack, Google Sheets, or your own endpoint.

Why did my first run deliver nothing billable?

The first run for a ZIP is always a baseline (see Limitations). Run it again — the second run compares against the saved baseline and delivers real change events.

Does "removed" mean the home sold?

No. See Limitations: removed only means the listing left the ZIP's search results this run; it could have sold, been withdrawn, expired, or been relisted.

Do I need a Zillow API key or account?

No separate Zillow API key or Zillow login is required.

How do I control the cost?

Set maxEvents (a hard cap on billable events per run) and eventTypes/minPriceChangePct to narrow which changes are worth delivering to you.

Other data tools from the same developer, built to the same standard: official or public sources, hard cost caps, and honest documentation of limits.