Redfin Scraper API
A Redfin scraper API that takes a US ZIP code and returns its for-sale listings: full address split into fields, price, beds, baths, living area, lot size, property type, status, MLS id, coordinates, photo and the listing URL. One fetch returns everything the region’s API gives up — up to 350 homes where the visible page shows 41 — with none of the advertisement cards mixed in.
$0.0008 per delivered listing · $2 free every month · Failed runs never billed
$ curl $QD/redfin_search/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"location": "78701", "max_results": 100}'
{ "status": "done", "count": 100,
"results": [
{
"mls_id": "…",
"address": "…",
"street": "…",
"city": "…" } ],
"cost": 0.08 }
# 100 listings × $0.0008 · nothing delivered, nothing charged
Try it
Redfin listings, running now
Change the input and run it against the live collector — nothing to install, no sign-up.
Run it from your own code, on your own inputs
Same collector, same rows — $2 of free API credit every month, no card.
What a Redfin scraper API does
Redfin server-renders the replies to the API calls its page would otherwise make from the browser, and the listings sit in that embedded cache under the region’s GIS entry. That is the whole reason this collector is cheap: a single fetch carries every home the region will return, so there is no pagination to walk. The DOM would need nine page fetches for the same rows and would hand back advertisement cards among them and carousel images misaligned against listings; the JSON contains neither.
The cache is guarded the classic way — every value is prefixed with {}&& so it is invalid JavaScript to a script include — and has to be stripped before parsing rather than parsed around. Fields arrive wrapped as { value, level }, where level is an access flag for Redfin’s own tiering; the collector reads value on every field and delivers coordinates, MLS id and lot size exactly as the API states them.
Limits, in plain numbers
Everything that bounds one run of this collector. No hidden throttles.
Max per run
350 listings
Price
$0.0008 / listing
Per 1,000
$0.80
Failed runs
Free zero rows, zero charge
Free every month
$2 no card
Rate limit
60 req/min on the free tier
What one listing looks like
Every delivered listing carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.
| Field | Type | What it holds |
|---|---|---|
rank | integer | 1-based position in Redfin's order. |
mls_id | string · nullable | MLS listing id. |
address | string · nullable | Full address on one line. |
street | string · nullable | Street line, including unit when present. |
city | string · nullable | City. |
state | string · nullable | State code. |
zipcode | string · nullable | ZIP code. |
price | number · nullable | Asking price. Null on Coming Soon listings, which have none yet. |
beds | number · nullable | Bedrooms. |
baths | number · nullable | Bathrooms, half baths included (e.g. 4.5). |
area_sqft | number · nullable | Living area in sqft. Null on land. |
lot_size | number · nullable | Lot size. Null on condos. |
property_type | string · nullable | House, Condo/Co-op, Townhouse, Multi-Family or Land. |
status | string · nullable | MLS status (Active, Coming Soon, New…). |
latitude | number · nullable | GPS latitude. |
longitude | number · nullable | GPS longitude. |
listed_by_redfin | boolean | Brokered by Redfin itself. Descriptive, not a sponsored placement. |
image | string · nullable | Primary photo URL, built from the listing's ids the way Redfin builds it. |
url | string · nullable | Listing page URL. |
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
location | string | yes | US ZIP code, e.g. "78701". A full address containing a ZIP works too — the ZIP is what Redfin keys on. |
country | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
max_results | integer | no | How many listings to deliver at most (1–350). You pay only for delivered listings. |
Pricing
Redfin Scraper API pricing
$0.0008 per delivered listing. A run that delivers nothing costs nothing: blocked pages, challenges and retries are on us, and the $2 monthly allowance covers about 2,500 listings before you spend anything.
Pay as you go
- $2 free credit / month
- 60 requests / min
- List unit prices
Starter
- $15 free credit / month
- 300 requests / min
- 10% off unit prices
Growth
- $50 free credit / month
- 600 requests / min
- 20% off unit prices
Scale
- $250 free credit / month
- 1,200 requests / min
- 30% off unit prices
Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.
Integration
One POST, typed rows
Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/.
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/redfin_search/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"location":"78701","max_results":100}'
What people build with the Redfin scraper API
Three shapes of work this endpoint was designed around.
ZIP-level market snapshots
Every active listing in a ZIP with price, beds, baths and sqft in one run — price per square foot by ZIP without a crawler.
Cross-portal matching
MLS id and split address on each row, so Redfin listings join cleanly to the Zillow collectors on the same homes.
Inventory monitoring
Re-run a ZIP weekly and diff by mls_id: new listings, price cuts and homes gone pending, from price and status.
Redfin Scraper API versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| Fetches per ZIP | Nine pages of cards | One — the embedded API reply carries the whole region |
| Ads | Advertisement cards in the grid | None: the JSON has no ads |
| Photos | Carousel images misaligned with listings | The listing’s own photo URL |
| Identity | Address text | MLS id, split address, coordinates |
What people search for
Live autocomplete demand around Redfin listings, pulled with our own Keyword ideas collector.
Sources and standards
The platform documentation and standards this collector is built against — check any claim on this page against the primary source:
Does Redfin have a public API?
No public one. The page embeds the replies to its own internal API, and that is what this collector reads — no key, no login, no browser.
Why a ZIP and not a city?
Because that is the region shape whose embedded reply carries the complete list in one response. A ZIP returns up to 350 homes in a single fetch; that is the cap on max_results.
Does it include rentals or sold homes?
It reads the for-sale search for the ZIP. status is stated per row, so pending and contingent homes are labelled rather than dropped.
How does it relate to the Zillow collectors?
Same homes, different portal: match on mls_id or the split address and compare price and status side by side.
Is there a free Redfin scraper API?
Every account gets $2 of credit every month with no card, which is about 2,500 delivered listings on this endpoint at $0.0008 each. It renews monthly, and a run that delivers nothing is never billed — so a failed or blocked attempt does not eat the allowance.
How much does one run cost?
Multiply the rows you actually receive by $0.0008. A run capped at 350 listings — the maximum for this collector — costs $0.28 if every row comes back, and less when the source has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.
Run the Redfin scraper API now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.