# Changelog of Zillow Scraper API — Listings, Zestimate, Leads & Emails (`pro100chok/zillow-scraper-all-in-one`) Actor

- **URL**: https://apify.com/pro100chok/zillow-scraper-all-in-one/changelog.md
- **Full Actor documentation**: https://apify.com/pro100chok/zillow-scraper-all-in-one.md

## Changelog

### 1.4 (2026-08-27) — climate risk, foreclosure detail and comps

New optional section: **Include climate risk, foreclosure & comps**. It runs the
listing page's own second call, so one extra request per home buys a block of
data no other Zillow actor on the store returns.

**Added — climate risk**

- `climateRisk` covers five perils — **flood, fire, heat, wind and air** — each with a
  1-10 score and its label, the **FEMA flood zone**, Zillow's **insurance recommendation**
  and whether a separate policy is required, the count of historic events, and the
  **probability series out to 30 years**.

**Added — foreclosure and auction detail**

- The full distressed-property table: `foreclosingBank`, `foreclosureAmount`,
  `foreclosureDate`, `foreclosureJudicialType`, the auction (`foreclosureAuctionCity`,
  `foreclosureAuctionLocation`, `foreclosureAuctionTime`, `foreclosureAuctionDescription`,
  `foreclosureAuctionFilingDate`), the defaulted loan (`foreclosureLoanAmount`,
  `foreclosureLoanDate`, `foreclosureLoanOriginator`, `foreclosureDefaultFilingDate`,
  `foreclosureDefaultDescription`), the balances (`foreclosurePastDueBalance`,
  `foreclosureUnpaidBalance`, `foreclosureBalanceReportingDate`) and the prior sale.
- **Trustee and county records** — `foreclosureTrusteeName`, `foreclosureTrusteeAddress`,
  `foreclosureTrusteePhone`, `foreclosureLegalDescription`, `foreclosureSubdivision`,
  `foreclosureApn` and `foreclosureRecordedDocs[]`.
- Stage flags: `isAnyForeclosure`, `isPreforeclosure`, `isBankOwned`, `wasForeclosed`,
  `wasNonRetailAuction`, `isForeclosedNonRetailSale`.

**Added — comps, rooms and neighborhood values**

- `nearbyHomes[]` — the comparable homes Zillow shows beside the listing, with price,
  beds/baths, living area, lot size, coordinates and URL.
- `rooms[]` — room-by-room type, level, dimensions, area and features.
- `marketValues` — the neighborhood **ZHVI**, its year-over-year change and Zillow's forecast.
- `datePosted`, `downPaymentAssistanceEligible`, and the **buyer's and seller's agent on each
  past sale** in `priceHistory[]`.

**Also**

- New dataset view **Foreclosures & risk**.

### 1.3 (2026-08-27) — property details come back full again

**Fixed — detail records had quietly collapsed to a fraction of their fields**

Zillow stopped shipping the property object inside the page HTML. What is left in
`__NEXT_DATA__` is only what the "showcase" module needs: ~74 keys and **9** `resoFacts`
entries, with **no schools, no tax history, no price history and no agent contact at all**.
Every field the Actor documented was still parsed correctly — Zillow simply was not sending
it any more, so records came back thin.

- **Property details are now read over Zillow's GraphQL endpoint**, replaying the same
  persisted operation the page itself runs. That answers with the complete object:
  **121 top-level fields and ~187 `resoFacts` keys** instead of 74 and 9.
- **Back in the dataset as a result:** `schools`, `taxHistory` (20+ years), `priceHistory`,
  `agentName` / `agentEmail` / `agentPhoneNumber` / `brokerName`, `county`, `countyFIPS`,
  `parcelId`, `monthlyHoaFee`, `propertyTaxRate`, `daysOnZillow`, `pageViewCount`,
  `favoriteCount`, `hiResImageLink`, `streetViewImageUrl` — and the full MLS fact set
  (appliances, flooring, roof, foundation, lot features, green certifications, lease terms,
  pet rules, HOA fees and the rest).
- If Zillow ever retires that operation, the Actor falls back to the page payload instead of
  failing, so a run degrades rather than breaks.

**Added — data our competitors sell separately**

- **Walk Score, Transit Score and Bike Score** — opt in with *Include Walk / Transit / Bike
  Score*. One extra request per home, off by default.
- **`homeInsights`** — Zillow's AI-generated highlight phrases for the home
  ("Gas cooktop kitchen", "Mature shade tree").
- **`homeValueHistory`** — up to 10 years of monthly Zestimate® values as `{date, value}`.
- **`mortgageRates`** — the 30-year fixed, 15-year fixed and 5/1 ARM rates quoted on the listing.
- **`sellingSoonPercentile`**, **`assignedSchools`** (with district, enrollment and
  students-per-teacher), **`listedBy`**, **`interactiveFloorPlanUrl`**, **`tourViewCount`**,
  **`contingentListingType`**, **`isIncomeRestricted`**, **`lotPremium`**, **`listPriceLow`**,
  **`providerListingId`**, promotion fields, and `nearbyCities` / `nearbyNeighborhoods` /
  `nearbyZipcodes`.

**Added — open houses, price cuts and rental terms on search cards**

- `hasOpenHouse`, `openHouseStartDate`, `openHouseEndDate`, `openHouseDescription` — the open
  house is on the card now, no detail fetch needed.
- `priceChange`, `priceChangeDate`, `priceReduction`, `listingSoldPrice`, `dateSold`.
- `availabilityDate`, `unit`, `isRentalWithBasePrice`, `priceIncludesMonthlyFees` for rentals.
- `builderName`, `brokerPhone`, `listingCategory`, `listingSection`, `cardHighlight`,
  `marketingTagline`, `factsAndFeatures`, `lotAreaText`, `livingAreaUnit`.

**Added — agent profiles went from 15 to 34 fields**

- **`bio`** — the agent's "get to know me" text, HTML stripped.
- **`teamName` and `teamMembers`** — every member of the team with their own rating and
  profile URL, plus `isTeamLead`.
- **`aiSummary`** — Zillow's AI summary of the agent, drawn from verified sales and reviews.
- **`professionalInfo`**, **`websites`**, **`brokerAddress`**, **`brokerageLicenses`**,
  **`mlsIds`**, **`profileTypes`**, **`isPremiumAgent`**, **`latitude`** / **`longitude`**,
  and `salesAndListingsHeader` (which carries the agent's total sales count).
- Past sales and active listings now include their photo, home type and open-house flag.

**Improved — Zestimate® mode**

- **`zestimateLow` and `zestimateHigh` in dollars**, not just the percentages.
- **`zestimate30DayChange`** — the 30-day move, computed for you, next to
  `zestimate30DaysAgo` and `rentZestimate30DaysAgo`.
- Added `county`, `homeType`, `bedrooms`, `bathrooms`, `livingArea`, `yearBuilt`,
  `taxAnnualAmount`, `pricePerSquareFoot`, `monthlyHoaFee`, `homeValueHistory`, and
  `dateSold` as a readable date instead of a millisecond timestamp.

### 1.2 (2026-08-24) — address input actually returns the home

**Fixed**

- **Searching by a full street address no longer returns an empty dataset.** Zillow answers an
  exact address with the home's own detail page, which carries no search state at all — so both
  Search and Zestimate mode logged "no match" and the run finished green with zero results,
  even though address input is advertised. Both paths now recognise that page and return the
  home: Search yields the full property record, Zestimate reads the valuation straight off it
  with no second request.

### 1.1 (2026-08-24) — every field the listing carries

**Fixed — the extended fact set was quietly coming back empty**

Zillow slimmed down what its page payload ships: the flat `resoFacts` keys the Actor was
picking from a hand-written 53-key list are simply not there any more for most listings, so
`reso_heating`, `reso_cooling`, `reso_parking` and friends silently returned nothing. Two
changes fix that for good:

- **Every non-null `resoFacts` key is mirrored**, instead of a curated allowlist that goes
  stale every time Zillow reshuffles its payload.
- **`atAGlanceFacts` is now read.** That is where Zillow actually keeps type, year built,
  heating, cooling, parking, lot size, days on Zillow and price per square foot for most
  homes. It is returned raw as `atAGlanceFacts[]` and lifted into named `reso_*` fields.

**Added — search cards went from ~30 to 50+ fields, detail records to 110+**

- **Listing-category flags** on both search and detail records: `isForSaleByAgent`,
  `isForSaleByOwner`, `isPending`, `isNewHome`, `isForeclosure`, `isComingSoon`,
  `isBankOwned`, `isForAuction`, `isPreforeclosureAuction`, `isShowcaseListing`,
  `isPremierBuilder`, `isFeatured`, `isNonOwnerOccupied`, `isUnmappable`,
  `isUndisclosedAddress`, `isPaidBuilderNewConstruction`.
- **All the photos, not just the cover.** Search cards now return the full carousel in
  `photos[]` with `photoCount` — previously only `imgSrc`.
- **Bathroom breakdown** — `bathroomsFull`, `bathroomsHalf`, `bathroomsThreeQuarter`,
  `bathroomsOneQuarter`, `bathroomsPartial`.
- **3D tours and media** — `virtualTourUrl`, `virtualTourUrls[]`, `staticMapUrl`.
- **Open houses** — `openHouses[]` with start and end times.
- **MLS attribution and compliance** — `listingAgents`, `listingOffices`, `mlsDisclaimer`,
  `providerLogo`, `listingAgreement`, `listingAttributionContact`, `buyerAgentName`,
  `buyerBrokerageName`, `coAgentNumber`, `attributionLastChecked`, `attributionLastUpdated`,
  `trueStatus`.
- **Short-term value trend** — `zestimateMinus30` and `rentZestimateMinus30`, the Zestimate
  and Rent Zestimate 30 days ago, so a single run tells you the direction.
- **Builder and new-construction data** — `newConstructionType`, `moveInReady`,
  `moveInCompletionDate`, `marketingName`, `brokerageName`, `isPremierBuilder`.
- **Ids and status codes** — `propertyId`, `cityId`, `stateId`, `countyId`, `boroughId`,
  `rawHomeStatus`, `marketingStatus`, `homeStatusForHDP`, `priceForHDP`, `timeOnZillow`,
  `contentType`, `flexFieldText`, `infoStrings`, `propertyTypeDimension`,
  `listingDataSource`, `listingMetadata`, `livingAreaValue`, `lotSize`, `country`.

**Docs**

- The dataset schema now documents all 217 fields the Actor can emit, so the Output tab and
  the CSV/Excel exports match what a run really produces.

### 1.0 (2026-07-07)

- Scrape Zillow in four modes: `search` (for-sale, for-rent, and sold listings), `propertyDetail`, `zestimate`, and `agent`. Mode is auto-detected from Start URLs.
- Search by city, ZIP, county, full Zillow search URL, or free-text address; filter by listing type, price, beds, baths, living area, lot size, year built, HOA fee, and home type.
- Automatic bypass of Zillow's ~820-result-per-query cap by recursively subdividing the map into quadrants.
- Rich property details: address, price, Zestimate and Rent Zestimate (with high/low range), price and tax history, bedrooms, bathrooms, living area, lot size, year built, coordinates, description, photos, nearby schools, and curated RESO facts (`reso_*`).
- Listing agent and broker attribution: name, email, phone, license, MLS ID and name.
- Agent profiles: name, business, email, phones, ratings, licenses, service areas, active for-sale/for-rent listings, past sales, and optional reviews.
- Fast Zestimate lookup by property URL, ZPID, or address.
- Optional `flatOutput` for CSV/Excel-friendly single-level records.
- Dataset views: **Listings**, **Property details**, and **Agents**.
- Pay-per-event pricing: per listing, per property detail, per zestimate, per agent.
- Rotating residential proxies with Chrome TLS/HTTP2 impersonation and automatic retry on anti-bot blocks.
