# Changelog of Zillow Scraper API - Listings, Zestimate, Agents & Cash Flow (`trakk/zillow-scraper`) Actor

- **URL**: https://apify.com/trakk/zillow-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/trakk/zillow-scraper.md

## September 10, 2026

- Restore search using Zillow search JSON, official region identifiers and live region boundaries.
- Compress full property requests without changing the query or response fields.
- Bound sorted acquisition by payable results and measured transfer, retaining completed rows on an acquisition stop.
- Add transport diagnostics and distinguish unavailable sources from genuinely empty searches.

## Changelog

### Next release

- Added a per-run full-detail safety budget shared by Detail, Search + details, Deals, sorting and filter enrichment. The effective candidate cap never exceeds `maxResults` and is reported in `OUTPUT`.

- Rank search cards before consuming the full-detail budget, while keeping final deal-filter decisions on full property data.

- Consolidated the ordinary property workflow into one compact comprehensive response, escalating only the listing shapes missing an advertised section, and bounded temporary retries.

- Reject obviously impossible ZPID lengths before any source request, while retaining valid 5–10 digit Zillow IDs.

- Allow up to 10% bounded refill headroom only for large unfiltered Search + details batches, preserving the 50-result contract when isolated properties fail without reopening unlimited candidate scans.

- Apply the same compact-first, missing-section-only enrichment contract to Detail and Deals; retain optional source values already published on the originating search card.

- Detailed workflows now fetch the full source sections, including histories, schools, nearby homes, open-house schedules, agent licensing, and expanded property facts.

- Supplementary source failures are routed to Errors without saving a paid incomplete detail record; explicitly unavailable source values remain unavailable.

- Added a scoped complete-render fallback for listing metadata and rental-estimate ranges missing from the ordinary property response.

- Prefer the verified property API over HTML for canonical ZPID URLs, retaining the HTML path as a fallback; preserve the initial property fields while reducing unnecessary page downloads.

- Added source-backed flat listing, contact, MLS, property-fact, and photo aliases while retaining native fields.

- Added Property details, Agents & brokers, Photos, Price history, Tax history, and Schools views.

- Merge cache sections only for the requested ZPID, preserving existing populated values.

- Expose missing detail sections explicitly; an initial page response is no longer implicitly treated as complete detail coverage.

- Simplified the main Input from dozens of visible flat fields to a guided workflow with compact advanced-filter and deal-settings groups.

- Preserved the original flat JSON keys for existing API integrations and saved tasks.

- Removed the unavailable monitoring workflow from the public documentation and Store metadata.

- Added honest per-search coverage fields and a compact coverage report in `OUTPUT`.

- Added successful, request-free `invalid_input` diagnostics with a correction example.

- Clarified listing-agent contact availability and rewrote the README around four tested workflows.

## Search selection fix

- Apply saved-result limits after ordinary/deal filters and successful writes; refill rejected or failed candidates within page, detail, and charge limits.
- Sort all examined candidates before selecting the saved-result prefix; keep full sorted records on disk until their order is known.
- Separate discovered, examined, eligible, selected, and saved counters, with per-query stop reasons.
- Warn when unsupported `maxPages` is supplied and show the effective `maxPagesPerSearch` without changing depth.
