AS
Apify Store
/blackfalcondata/zillow-scraper
Zillow Scraper [Just 💰$0.8] — US Real Estate & Rentals
💰 $0.80 per 1,000 listings. Scrape US real estate from zillow.com — for-sale, for-rent & recently-sold homes · Zestimate & Rent Zestimate valuations · year built · HOA fees · agent contacts · photos · GPS · radius search · incremental NEW/UPDATED/EXPIRED tracking.
liveasyncunknown~30s typical
REAL_ESTATELEAD_GENERATIONAUTOMATION
$0.0020
per result + $0.01 call
plus $0.001 platform fee per run
Usage-based actor: event charges passed through at cost plus 25%
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /blackfalcondata/zillow-scraper for me.
Input
| Field | Type | Description |
|---|---|---|
| searchMode | string (for_sale | for_rent | sold) | Which listings to scrape. default "for_sale" |
| searchLocations | array | One or more locations: "City, ST" (e.g. "Austin, TX"), a ZIP code (e.g. "78704"), or a neighborhood. Each is searched independently. Leave empty if you only use Start URLs. |
| propertyTypes | array | Restrict to one or more property types. Leave empty for all types. default [] |
| searchStatuses | array | Include additional statuses alongside active for-sale listings. |
| keyword | string | Optional text that must appear in the listing (e.g. "pool", "waterfront"). |
| startUrls | array | Paste zillow.com search-result URLs (e.g. https://www.zillow.com/austin-tx/) or individual property URLs (e.g. https://www.zillow.com/homedetails/2600-Willow-St-Austin-TX-78702/29406653_zpid/). Search URLs read their location from the URL; the 🔁 Search Mode and filters below still apply. |
| maxResults | integer | Maximum listings to return (0 = full coverage). Full coverage works even for very large markets. default 100 |
| listingCategories | array | Restrict for-sale results to specific listing types (agent-listed, for-sale-by-owner, foreclosure, auction, new construction). Leave empty for all. For-sale searches only. Note: the derived listingCategory output field is best-effort — agent/foreclosure/new-construction are reliably labeled, but selecting FSBO or auction narrows the results returned without always individually labeling that category on the record. |
| priceMin | integer | Minimum listing price. |
| priceMax | integer | Maximum listing price. |
| bedsMin | integer | Minimum number of bedrooms. |
| bedsMax | integer | Maximum number of bedrooms. |
| bathsMin | integer | Minimum number of bathrooms. |
| sqftMin | integer | Minimum interior square footage. |
| sqftMax | integer | Maximum interior square footage. |
| centerLat | string | Optional radius filter — center latitude (decimal, e.g. 30.2672). Combine with Center Longitude + Radius to keep only listings within the radius. |
| centerLng | string | Radius filter — center longitude (decimal, e.g. -97.7431). |
| radiusKm | integer | Keep only listings within this many kilometres of the center point. |
| includeDetails | boolean | Fetch each listing's detail page: full description, year built, HOA fee, and additional structured specs beyond the search-card summary. On by default. Turn off for faster, cheaper search-only records. default true |
| enrichEmails | boolean | Best-effort agent/advertiser email discovery (billed per listing with a match). default false |
| descriptionMaxLength | integer | Truncate description to this many characters. 0 = no truncation. default 0 |
| descriptionFormat | string (text | html | markdown) | Keep one description representation and drop the others to shrink payload. default "text" |
| excludeEmptyFields | boolean | Drop null / empty-string / empty-array fields from each record. default false |
| compact | boolean | Output only core comparison fields (for AI-agent / MCP workflows). default false |
| incrementalMode | boolean | Track new/changed/expired listings across runs. Requires a State Key. default false |
| stateKey | string | Stable identifier for this tracking universe (e.g. "austin-tx-for-sale"). |
| emitUnchanged | boolean | When incremental, also emit listings that have not changed. default false |
| emitExpired | boolean | When incremental, also emit listings no longer found (now off-market). These off-market markers are always included so change tracking stays complete — they are not subject to Max Results. default false |
| skipReposts | boolean | When incremental, skip listings that are reposts of previously seen (now expired) listings. default false |
| priceDropsOnly | boolean | When incremental tracking is on, emit only listings whose price dropped since the last run — turn a scheduled run into a price-cut monitor. Requires Incremental Mode + a prior run to compare against. default false |
| telegramToken | string | Telegram bot token (from @BotFather). Required for Telegram notifications. |
| telegramChatId | string | Telegram chat or channel ID where alerts are sent. |
| discordWebhookUrl | string | Discord incoming webhook URL. |
| slackWebhookUrl | string | Slack incoming webhook URL. |
| whatsappPhoneNumberId | string | WhatsApp Business phone number ID from Meta Business Manager. |
| whatsappAccessToken | string | Meta Cloud API access token with whatsapp_business_messaging scope. |
| whatsappTo | string | Recipient phone number in E.164 format (e.g. +14155551234). |
| webhookUrl | string | Universal escape hatch for n8n / Make / Zapier / custom HTTP backends. Receives a JSON POST per run. |
| webhookHeaders | object | Additional HTTP headers sent with the generic webhook POST. |
| notificationLimit | integer | Maximum number of listings included in each notification message (1–20). default 5 |
Call it
curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
-H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
-d '{"provider":"apify","endpoint":"/blackfalcondata/zillow-scraper","input":{"searchMode":"for_sale","propertyTypes":[],"maxResults":100,"includeDetails":true,"enrichEmails":false,"descriptionMaxLength":0,"descriptionFormat":"text","excludeEmptyFields":false,"compact":false,"incrementalMode":false,"emitUnchanged":false,"emitExpired":false,"skipReposts":false,"priceDropsOnly":false,"notificationLimit":5,"notifyOnlyChanges":false},"wait":false}'poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."cli
npx cracked-ai run -p apify -e /blackfalcondata/zillow-scraper -i '{"searchMode":"for_sale","propertyTypes":[],"maxResults":100,"includeDetails":true,"enrichEmails":false,"descriptionMaxLength":0,"descriptionFormat":"text","excludeEmptyFields":false,"compact":false,"incrementalMode":false,"emitUnchanged":false,"emitExpired":false,"skipReposts":false,"priceDropsOnly":false,"notificationLimit":5,"notifyOnlyChanges":false}' -w 120mcp
run_tool({ provider: "apify", endpoint: "/blackfalcondata/zillow-scraper", input: {"searchMode":"for_sale","propertyTypes":[],"maxResults":100,"includeDetails":true,"enrichEmails":false,"descriptionMaxLength":0,"descriptionFormat":"text","excludeEmptyFields":false,"compact":false,"incrementalMode":false,"emitUnchanged":false,"emitExpired":false,"skipReposts":false,"priceDropsOnly":false,"notificationLimit":5,"notifyOnlyChanges":false}, wait: false })Try it
Runs against your signed-in workspace balance. Sign in if you have not.