
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape Redfin for-sale, sold and rental listings from search URLs, locations and property pages: price, beds, baths, sq ft, Redfin Estimate, price and tax history, schools, listing agent and brokerage, photos and coordinates.
Scrape Redfin listings for sale, recently sold and for rent, from any Redfin search URL, a city, ZIP code or neighborhood name, or individual property pages. Every row comes with price, beds, baths, square feet, Redfin Estimate, price and tax history, schools, the listing agent and brokerage, photos and coordinates. No login, no browser, and results arrive in seconds.
Austin, TX or 78704, or paste property URLs.| Field | What it does |
|---|---|
startUrls | Redfin search URLs (city, ZIP, neighborhood, county, state, school; any /filter/..., including map viewports), rental searches and property URLs |
searchKeywords | Locations as typed in Redfin's search box: Seattle, WA, 78704, an address |
maxItems | Maximum listings for the whole run (0 = no limit) |
searchMode | sale, sold or rent for the locations |
soldTimeframe | Sold within the last week up to 5 years |
minPrice / maxPrice, minBeds / maxBeds, minBaths, minSqft / maxSqft | Size and price filters |
propertyTypes, listingStatus, maxDaysOnMarket, minYearBuilt / maxYearBuilt, maxHoa | More filters |
mapBounds | Restrict to a box: north,south,east,west |
sortBy | Recommended, newest, price, size, price per sq ft or sold date |
includeDetails, includeSchools, includeClimateRisk, maxPhotos | How much detail per listing |
includeAgentContacts | Add the listing agent's email, phone and profile facts from their public Redfin agent page (default off) |
{
"startUrls": ["https://www.redfin.com/city/30818/TX/Austin/filter/property-type=house,min-price=300k"],
"searchKeywords": ["Seattle, WA"],
"searchMode": "sold",
"soldTimeframe": "6mo",
"minBeds": 3,
"maxItems": 100,
"includeAgentContacts": true
}
Filters are added on top of any filters already in a search URL. A search URL keeps its own mode: a URL with include=sold-3mo returns sold homes, a /rentals or /apartments-for-rent URL returns rentals.
One row per listing. Main fields:
| Field | Description |
|---|---|
url, propertyId, listingId, mlsId | Listing link and identifiers |
listingType, status | sale / sold / rent, and Active, Pending, Sold, Coming Soon... |
price, redfinEstimate, pricePerSqft, soldDate, lastSoldPrice | Prices and dates |
beds, baths, sqft, lotSizeSqft, yearBuilt, stories, propertyType, hoaMonthly, daysOnMarket | Home facts |
address, streetAddress, city, state, zip, county, neighborhood, latitude, longitude | Location |
description, keyFacts, badges, openHouseStart | Listing text and highlights |
listingAgentName, listingAgentPhone, listingBrokerName, listingBrokerPhone | Listing contacts as published on the listing |
listingAgentEmail, listingAgentProfileUrl, listingAgentTitle, listingAgentLicense, listingAgentDeals, listingAgentRating, listingAgentReviewCount | With Include listing agent contacts on: email, profile link, job title, license number, homes closed and customer rating (out of 5) from the agent's public Redfin profile, and the profile's phone number in listingAgentPhone when the listing shows none. Empty when the listing agent has no Redfin profile |
photos, mainPhoto, photoCount | Full-size photo URLs |
priceHistory, taxHistory, annualTax, publicRecords, amenities | History and records (details on) |
schools, schoolDistricts, walkScore, bikeScore, transitScore, climateRisk | Schools, Walk Score and optional climate risk |
rentMin, rentMax, availableUnits, units, petPolicies, depositMin, unitAmenities, communityAmenities, phone | Rentals |
Example (shortened, fictional values):
{
"propertyId": 12345678,
"listingId": 223456789,
"url": "https://www.redfin.com/TX/Austin/123-Example-St-78704/home/12345678",
"listingType": "sale",
"status": "Active",
"mlsId": "1234567",
"price": 649000,
"redfinEstimate": 655210,
"pricePerSqft": 323,
"beds": 3,
"baths": 2.0,
"sqft": 2008,
"lotSizeSqft": 7405,
"yearBuilt": 1954,
"propertyType": "House",
"hoaMonthly": null,
"daysOnMarket": 4,
"address": "123 Example St, Austin, TX 78704",
"latitude": 30.2457,
"longitude": -97.7484,
"listingAgentName": "Jane Example",
"listingAgentPhone": "512-555-0100",
"listingBrokerName": "Example Realty",
"listingBrokerPhone": "512-555-0199",
"listingAgentEmail": "jane.example@redfin.com",
"listingAgentProfileUrl": "https://www.redfin.com/real-estate-agents/jane-example",
"listingAgentTitle": "Redfin Principal Agent",
"listingAgentLicense": "0000000",
"listingAgentDeals": 212,
"listingAgentRating": 4.9,
"listingAgentReviewCount": 57,
"photoCount": 24,
"mainPhoto": "https://ssl.cdn-redfin.com/photo/92/bigphoto/567/1234567_0.jpg",
"priceHistory": [{ "date": "2026-10-10", "event": "Listed", "price": 649000, "source": "Unlock MLS", "mlsId": "1234567" }],
"taxHistory": [{ "year": 2025, "taxesDue": 11062.53, "landValue": 603025, "improvementValue": 464525, "assessedValue": 1067550 }],
"schools": [{ "name": "Example Elementary School", "rating": 8, "grades": "K-5", "type": "Public", "distanceMiles": 0.3 }],
"scrapedAt": "2026-10-15T05:15:05Z"
}
You pay $1.40 per 1,000 listings ($0.0014 per listing), plus the small platform usage of the run (compute and datacenter proxy traffic, typically a few cents per thousand listings). Example: 1,000 detailed listings cost $1.40 in results plus about $0.03 of usage, so roughly $1.43 in total. There is no start fee, and the run stops cleanly when it reaches your maximum cost per run.
Agent contacts (optional): with Include listing agent contacts on, each listing that gets an agent email costs $0.001 more (the agent-contact event, $1 per 1,000). Listings whose agent has no Redfin profile, or whose profile shows no email, cost nothing extra, and each agent's profile is loaded only once per run. Charges never go beyond your maximum cost per run.
Example: 1,000 listings with agent contacts on, where 300 get an agent email: $1.40 + 300 × $0.001 = $1.40 + $0.30 = $1.70 plus platform usage.
Is it legal to scrape Redfin? The actor only reads public listing pages that anyone can open without an account. Check Redfin's terms and the laws that apply to you, and handle any personal data (such as agent names and phone numbers) responsibly.
Do I need a Redfin account or my own proxy? No. No login is used, and the default datacenter proxy works. If an exit is refused, the run moves to residential exits on its own.
How many results can I get? As many as the search has. Searches are paged past Redfin's 350-home map limit. Set Maximum results to 0 to take everything.
Why is a field empty? Redfin only shows what the MLS or public records provide. For example, some states do not disclose sold prices, HOA fees are not listed for every home, and the Redfin Estimate is missing for some property types.
Can I get agent emails? Yes, for agents with a public Redfin agent profile (mostly Redfin's own agents). Switch on Include listing agent contacts and the actor reads the email, title, license, homes closed and rating from that profile. Agents from other brokerages usually have no Redfin profile, so their listings keep only the name and phone published on the listing.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start them through the API and read the dataset as JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalRedfin URLs
Redfin search URLs (city, ZIP code, neighborhood, county, state or school pages, with any /filter/... part, including map viewports), rental searches (/rentals, /apartments-for-rent) and property pages (/home/..., /apartment/...).
searchKeywordsarrayOptionalLocations to search
City, ZIP code, neighborhood, county or address, as you would type it into Redfin's search box (e.g. Seattle, WA, 78704). Uses the search mode and filters below.
maxItemsintegerOptionaldefault 20Maximum results
Maximum listings for the whole run. 0 means no limit (everything the searches return).
Filters apply to location searches and are added on top of any filters already in a search URL.
searchModeenumOptionaldefault "sale"Search mode
What to search for in the locations above. Search URLs keep their own mode (a URL with include=sold-3mo returns sold homes).
soldTimeframeenumOptionaldefault "3mo"Sold within
For sold searches: how far back to look.
minPriceintegerOptionalMin price ($)
Lowest price (or monthly rent for rentals).
maxPriceintegerOptionalMax price ($)
Highest price (or monthly rent for rentals).
minBedsintegerOptionalMin beds
maxBedsintegerOptionalMax beds
minBathsnumberOptionalMin baths
minSqftintegerOptionalMin square feet
maxSqftintegerOptionalMax square feet
propertyTypesarrayOptionalProperty types
Leave empty for all types.
listingStatusarrayOptionalListing status (for sale)
Leave empty for Redfin's default (active and coming soon).
maxDaysOnMarketintegerOptionalMax days on market
Only listings that have been on Redfin for at most this many days.
minYearBuiltintegerOptionalMin year built
maxYearBuiltintegerOptionalMax year built
maxHoaintegerOptionalMax HOA ($/month)
mapBoundsstringOptionalMap area
Optional box north,south,east,west in decimal degrees (e.g. 47.70,47.55,-122.25,-122.45). Restricts every search to that area.
sortByenumOptionalSort by
Order in which results are collected (matters when Maximum results is lower than the number of matches).
Extra data per listing. Each option adds requests; turn them off for faster, lighter runs.
includeDetailsbooleanOptionaldefault trueInclude property details
Price history, tax history, public records, amenities, Redfin Estimate, Walk Score and the listing agent and brokerage phone numbers as published on the listing. Rentals get floor plans, units, amenities, fees and pet policies.
includeSchoolsbooleanOptionaldefault trueInclude schools
Schools serving the home with GreatSchools ratings, grades, distance and district.
includeClimateRiskbooleanOptionaldefault falseInclude climate risk
Flood, fire, heat, wind and air risk factors (1-10).
maxPhotosintegerOptionaldefault 0Max photos per listing
0 keeps every photo URL.
includeAgentContactsbooleanOptionaldefault falseInclude listing agent contacts
For listings whose listing agent has a public Redfin agent profile, open that profile (once per agent per run) and add listingAgentEmail, listingAgentProfileUrl, listingAgentTitle, listingAgentLicense, listingAgentDeals (homes closed), listingAgentRating and listingAgentReviewCount. Only listings by agents with a Redfin profile (mostly Redfin's own agents) get them. Each listing that gets an agent email costs one extra agent-contact event; listings without one cost nothing extra.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for Redfin. If an exit is refused the run switches to residential exits on its own.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| mainPhoto | any | Photo |
| url | any | Listing |
| listingType | any | Type |
| status | any | Status |
| price | any | Price ($) |
| redfinEstimate | any | Redfin Estimate |
| beds | any | Beds |
| baths | any | Baths |
| sqft | any | Sq ft |
| propertyType | any | Property type |
| address | any | Address |
| daysOnMarket | any | Days on market |
| soldDate | any | Sold date |
| listingAgentName | any | Listing agent |
| listingAgentPhone | any | Agent phone |
| listingBrokerName | any | Brokerage |
| yearBuilt | any | Year built |
| lotSizeSqft | any | Lot (sq ft) |
| hoaMonthly | any | HOA/mo |
| propertyId | any | Property ID |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Agent contact | The listing agent's email from their public Redfin agent profile (only with 'Include listing agent contacts' on, and only when an email is found). | $0.001 |
| Result | One Redfin listing saved to the dataset | $0.0014 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/redfin-scraper').call({
"startUrls": [
"https://www.redfin.com/city/30818/TX/Austin/filter/property-type=house,min-price=300k"
],
"searchKeywords": [
"Seattle, WA"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/redfin-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/redfin-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Sold homes with details and nearby schools.
Homes from a filtered Redfin URL.
Rental listings with details.
Active listings with the agent's email and phone.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.