# Changelog of Redfin Property Scraper — Sale + Sold · Market KPIs (`sian.agency/redfin-property-scraper`) Actor

- **URL**: https://apify.com/sian.agency/redfin-property-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/sian.agency/redfin-property-scraper.md

## Changelog

All notable changes to **Redfin Property Scraper — Sale + Sold · Market KPIs** will be documented in this file.

### \[2026-09-11]

#### 🖼️ Images

- 🖼️ **Every photo in one column.** The gallery is now a flat `imageUrls` list beside the existing nested field, so a CSV export gives you one usable column instead of one column per photo.

### \[2026-08-28]

#### ✅ Data-quality pass — clearer rows, better exports

- **Row status fields** — every listing and dossier row now carries `status`, `processedAt` and `scrapingDate`, so you can filter or audit a run straight from the dataset, without opening the report.
- **Thumbnails link out** — the `thumbnailUrl` field now renders as an openable link in the dataset view and in API/CSV exports, not just an inline image.
- **Structured dossier arrays** — `keyFacts`, `schools`, `priceHistory` and `amenityDetails` now ship with a documented field structure, so Zapier, Sheets and custom scripts can map them without guesswork.

#### 💎 User Benefits

- Spot-check a run's freshness from `processedAt`/`scrapingDate` alone, no report needed.
- Cleaner downstream integrations — dossier arrays are now self-describing in the dataset schema.

### \[1.0.20] — 2026-08-24

#### 📄 New run report — what you pulled, and what you paid for

- **Answer first** — the report opens with the number of listings you extracted, the median price, the median price per square foot and the median days on market for the run, then hands you the dataset in one click (JSON, CSV or Excel).
- **Market brief you can paste** — a copy button drops the run's price, price-per-sqft and days-on-market spread straight into a comps sheet or an underwriting note, with the coverage the figures were computed on.
- **Every query accounted for** — regions that came back empty are listed with the reason and the fix, next to a ready-made retry input you paste back into the actor. Redfin comps research usually takes several passes, and now the second pass is one click.
- **Itemized charges** — each event, its count and what it cost, with the price your next plan tier would have paid. Failed and empty queries are never charged, and the report says so.
- **Top listings at a glance** — the highest-priced homes of the run with address, city, price, price per sqft, beds, baths, size and days on market (last sold price and date on sold searches).
- **API and MCP snippets included** — the exact call that reproduces this run, plus the MCP client config that lets an AI agent run it in plain language.

#### 💎 User Benefits

- Read the market in seconds instead of opening the dataset to find out whether the run worked.
- Know the cost of a run before the invoice, per event and per row.
- Rerun only the regions that came back short, without rebuilding the input by hand.

#### 🎯 Use Cases

- Investors sanity-checking price per square foot across a ZIP before opening a spreadsheet.
- Buyer agents pulling comps for a listing appointment and pasting the market brief into the deck.
- Data teams reproducing a run from the report's own API snippet, on a schedule.

### \[1.0.14] — 2026-07-30

#### ✨ Added — Two new search modes + market-info enrichment

- **📍 By Location** — free-text city/area search (`locationName`, plus PAID bulk `locations[]`). No region-ID lookup needed for straightforward city pulls. If a location returns 0 results the name did not resolve — run `autocomplete` on it and search the region ID it returns.
- **🔷 By Polygon (PAID)** — draw any market boundary as a closed `lon lat, lon lat, …` ring and pull every listing inside it: irregular submarkets, school zones, "between the highways" pulls.
- **🔥 Market-info enrichment (PAID)** — new `includeMarketInfo` toggle adds per-listing `hotMarket` (share of area homes going under contract fast) and `mortgageInfo` (current rate info, property-tax and insurance rates, county) — the inputs an investor's payment model needs. Charged as its own per-listing enrichment event, separate from the Redfin Estimate + Walk Score bundle.

### \[1.0.13] — 2026-07-25

#### 💰 Changed — Property dossiers now bill under their own event

Dossier rows from **propertyDetails** mode charge the dedicated `PropertyDossierExtracted` event ($0.024 FREE / **$0.008 BRONZE** / $0.004 DIAMOND) instead of reusing `ListingEnriched`. A dossier is a deep per-property profile — agent contact, price history, schools, flood risk, amenities, Redfin Estimate — so it is priced as its own deliverable. Search-mode rows are unchanged: `ListingExtracted` for each listing, `ListingEnriched` for Redfin Estimate / Walk Score enrichment.

### \[1.0.10] — 2026-07-02

#### ✨ Added — Property Dossier mode

New **propertyDetails** search mode: pass Redfin home URLs (`propertyUrls`) and/or full street addresses (`propertyAddresses`) and get one deep dossier row per property — listing agent name + phone, marketing remarks, key facts, full amenity breakdown, price history with dates and prices, schools with GreatSchools + parent ratings, flood risk (flood factor, FEMA zones, insurance range), view/favorite popularity stats, plus the Redfin Estimate and Walk / Bike / Transit Scores bundled at no extra charge. Billed at the enriched-listing rate ($0.003 per dossier). FREE tier processes 1 property per run.

### \[0.1.1] — 2026-06-14

#### 🐛 Fixed — Listing Status now actually filters

The **Listing Status** filter is now correctly honored end-to-end. Previously, selecting **Sold** (or **Coming Soon**) could still return active for-sale homes — the status now applies on every search. **Sold** results carry the last-sold date and sold price, so comps and recently-closed research are accurate again.

#### ✨ Added — For-Rent listings

New **For Rent** listing status pulls rental listings across the US, alongside For Sale, Sold, and Coming Soon. Rent range fields surface on rental records when reported.

### \[0.1.0] — 2026-05-05

#### 🎉 Initial Release

**Three search modes** wrapping Redfin (US-wide):

- `autocomplete` — region-ID lookup helper (cities, neighborhoods, zips, school districts)
- `byRegionId` — primary scrape mode (single region or bulk array of IDs, PAID)
- `byCoordinates` — radial search by lat/lng + radius (PAID)

**Three listing statuses** — `forSale`, `sold`, `comingSoon`.

**Per-listing fields** — every row carries:

- Identity — `propertyId`, `listingId`, and the full address (street, unit, city, state, zip, neighborhood)
- Pricing — price, computed `pricePerSqft`, HOA dues
- Specs — beds, baths (full + half + total), sqft, lot size, year built, property type
- Market — days on market, listing-added date, last-sold date, MLS ID
- Agent + geo — listing agent name, Redfin agent ID, latitude, longitude, timezone
- Media — photo URLs, virtual-tour flag, 3D scan URL

**Optional PAID enrichment** (single `includeEnrichment` toggle):

- Redfin Estimate (AVM)
- Walk Score / Bike Score / Transit Score

**Market KPIs** computed every run — median price, price/sqft distribution, days-on-market distribution, breakdowns by city / zip / property type. Rendered in a polished HTML report saved to the run's key-value store.

**Tier limits**:

- FREE — 1 query, 25 listings per run, no enrichment
- PAID — unlimited listings, bulk regionIds, coordinates mode, enrichment

**Pricing** (3 events):

- `apify-actor-start` — $0.005 (charged once per run)
- `ListingExtracted` — $0.005 (per listing pushed)
- `ListingEnriched` — $0.003 (only on successful enrichment)

#### Coverage at launch

- **US only** — Redfin's own coverage, so every state Redfin lists is in scope.
- **Search by region, not by pasted search URL** — run Autocomplete on a city, neighborhood or ZIP to get its region ID, then search that region.

***

Independent tool — not affiliated with Redfin Corporation.
