Claude
Skills
Sign in
Back

pp-redfin

Included with Lifetime
$97 forever

Stingray-backed Redfin CLI with the workflows the website can't do — saved-search diff, sold-price trends, $/sqft ranking, and offline SQL. Trigger phrases: `find homes for sale in <city>`, `watch redfin listings for <area>`, `rank houses by price per square foot`, `pull sold comps for <address>`, `compare these redfin listings`, `use redfin-pp-cli`, `run redfin`.

Backend & APIs

What this skill does

<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/other/redfin/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

# Redfin — Printing Press CLI

## Prerequisites: Install the CLI

This skill drives the `redfin-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install redfin --cli-only
   ```
2. Verify: `redfin-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.

If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/other/redfin/cmd/redfin-pp-cli@latest
```

If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.

## When to Use This CLI

Use this CLI when an agent or human needs structured Redfin data and needs the workflows the website itself doesn't expose: cross-region diffs over time, $/sqft rankings net of HOA, sold-comp recipes for a subject property, market-trends overlays across cities, and digest-style summaries. Reach for it for buyer comparison-shopping, investor screening across multiple zips, relocator city comparisons, and buyer's-agent comp pulls. Skip it for one-off browsing — the redfin.com website is fine for that.

## When Not to Use This CLI

Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.

## Unique Capabilities

These capabilities aren't available in any other tool for this API.

### Time-series intelligence
- **`watch`** — Re-run a saved gis search and surface what's NEW, REMOVED, PRICE-CHANGED, or STATUS-CHANGED since the last sync.

  _Pick this when an agent is tracking a buyer's shortlist over time and needs a reproducible 'what changed' digest._

  ```bash
  redfin-pp-cli watch austin-3br --since 7d --json
  ```
- **`drops`** — List active listings whose price dropped by N% in a window, OR whose days-on-market exceed a threshold.

  _Pick this when timing the market or surfacing lowball candidates before tour scheduling._

  ```bash
  redfin-pp-cli drops --region-id 30772 --region-type 6 --since 7d --min-pct 3 --dom-min 30 --json
  ```

### Local-store math
- **`rank`** — Rank synced listings by price-per-sqft, with optional HOA-fee subtraction over a 5-year horizon.

  _Pick this when value-per-dollar is the goal and HOA-heavy condos must compete fairly against single-family._

  ```bash
  redfin-pp-cli rank --by price-per-sqft --net-hoa --region-id 30772 --region-type 6 --json --limit 25
  ```

### Shortlist workflows
- **`compare`** — Pull 2-8 listings through the combined Stingray detail endpoint and emit aligned columnar output (price, $/sqft, beds, baths, lot, year, schools, AVM delta, last sale, taxes).

  _Pick this when narrowing a shortlist; the wide table makes school-rating and AVM-delta differences obvious._

  ```bash
  redfin-pp-cli compare <your-listing-url> <another-listing-url> --json
  ```
- **`comps`** — For a subject listing, derive a circular polygon from --radius, run a sold-status search, filter by --sqft-tol and --bed-match, return the ranked comp set.

  _Pick this when an agent needs to pull comparable sales for a buyer offer; collapses 20 minutes of polygon-clicking into one command._

  ```bash
  redfin-pp-cli comps <your-listing-url> --radius 0.5 --sqft-tol 15 --months 6 --bed-match --json
  ```

### Cross-market joins
- **`rank`** — Union synced listings across multiple region slugs and rank across the entire set, deduped by listing URL.

  _Pick this when an agent needs a single ranked feed across multiple metros without writing a fan-out loop._

  ```bash
  redfin-pp-cli rank --regions 30772,30773,30774 --by price-per-sqft --beds-min 3 --price-max 600000 --json --limit 25
  ```
- **`trends`** — Pull aggregate-trends for N regions and emit one tidy long table (region × month × metric) over a window.

  _Pick this when a relocator is comparing cities and needs the medians overlaid on the same axis._

  ```bash
  redfin-pp-cli trends --regions 30743,18028,30739 --metric median-sale --period 24 --json
  ```

### Bulk extraction
- **`export`** — Slice the price space into bands, page-walk gis-csv per band until each returns under 350 rows, dedupe on listing URL, emit one CSV/JSON.

  _Pick this when you need every comp for a year, not the first 350 sorted by relevance._

  ```bash
  redfin-pp-cli export --region-slug "city/30772/TX/Austin" --status sold --year 2024 --csv > austin-sold-2024.csv
  ```

### Aggregations
- **`summary`** — Single command: active count, pending count, sold-90d count, median list, median sold, median DOM, median $/sqft, % with price drops, plus a trends snapshot.

  _Pick this when an agent needs the one-shot snapshot of a market for a buyer brief._

  ```bash
  redfin-pp-cli summary 30772:6 --json
  ```
- **`appreciation`** — For all child neighborhoods under a parent metro, call aggregate-trends and rank by YoY median-sale % change.

  _Pick this when a relocator or investor needs the 'where in this metro is hottest' answer._

  ```bash
  redfin-pp-cli appreciation --parent "city/30772/TX/Austin" --period 12 --json --limit 10
  ```

## HTTP Transport

This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.

## Discovery Signals

This CLI was generated with browser-observed traffic context.
- Capture coverage: 0 API entries from 0 total network entries
- Protocols: stingray-json-api (95% confidence)
- Generation hints: Strip the {}&& CSRF prefix from every Stingray JSON response before decoding, Use Surf with Chrome TLS fingerprint at runtime (UsesBrowserHTTPTransport), Conservative rate limit: 1 req/s default with adaptive backoff on 429, Stingray is geo-restricted to US IPs; doctor command should warn non-US users, Region IDs are visible in redfin.com URL paths (e.g., /city/30772/TX/Austin); region type 6=city, 1=zip, 11=neighborhood
- Candidate command ideas: homes — Stingray gis search is the primary entry point; listing — Listing detail composes initialInfo + aboveTheFold + belowTheFold; market — aggregate-trends endpoint exposes neighborhood medians
- Caveats: csrf-prefix: Stingray JSON responses are prefixed with the literal bytes '{}&&' as CSRF prevention. Generated client must strip them before json.Unmarshal.; geo-restricted: Stingray endpoints are US-only. Non-US callers will get 403 regardless of TLS fingerprint.

## Command Reference

**homes** — Search Redfin homes for sale via the internal Stingray /api/gis JSON endpoint.

- `redfin-pp-cli homes` — Run a Stingray gis search and return parsed listing rows from the JSON map payload. Strip the {}&& CSRF prefix...

**listing** — Fetch full listing detail by combining initialInfo, aboveTheFold, and belowTheFold Stingray calls.

- `redfin-pp-cli listing` — First Stingray call for a listing — returns the canonical listingId and propertyId from the URL path.

**market** — Aggregate market trends for a region (median sale price, days on market, supply, list-to-sale ratio) over a window.

- `redfin-pp-cli market` — Fetch agg

Related in Backend & APIs