Realtor Lead Scraper
Pricing
from $10.00 / 1,000 results
Realtor Lead Scraper
Pull verified real estate leads - name, email, phone, license #, brokerage - from Realtor.com, Compass, Sotheby's, Redfin, Apartments.com, Craigslist, REALTOR.ca and Rightmove in one run. Deduped output ready for CRM import. Built for agent prospecting and lead-gen automation.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Logical Vivacity
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Real Estate Lead Scraper — Multi-Site Realtor & Property Manager Contact Extractor
Pull verified contact information for real estate agents, brokers, FSBO sellers, and property managers across 10 major real estate sites in one run. Built on Apify and Crawlee, ships deduped lead records with name, email, phone, license number, brokerage, and source URL — ready for direct CRM import or outreach automation.
If you're prospecting agents, building a real-estate CRM, enriching listings, training a model on real estate market data, or automating cold outreach, this actor replaces 10+ separate scrapers with one unified pipeline and a single output schema.
Supported sources
| Source | Region | Lead type | Fields extracted |
|---|---|---|---|
| Realtor.com | US | Listing agent | Name, email, phone, license #, NRDS ID, brokerage, listing |
| Realtor.com agent directory | US | Agent profile | Name, mobile phone, license #, brokerage, office, website |
| Redfin | US | Listing agent | Name, phone, brokerage, broker phone, MLS# |
| Compass.com listings | US | Listing agent | Name, email, phone, license #, brokerage, listing |
| Compass.com agent roster | US | Agent profile | Name, email, phone, license #, profile URL |
| Sotheby's International Realty | Global | Luxury agent | Name, mobile + office phone, email, brokerage |
| Apartments.com | US | Property manager / landlord | Property name, phone, address |
| Craigslist real estate | US | FSBO seller / landlord | Title, phone (when posted), price, address |
| REALTOR.ca | Canada | Listing REALTOR® | Name, phone, brokerage, broker phone |
| Rightmove | UK | Estate agency | Branch name, address, profile, listing price |
Each adapter is independent — pick any subset and the actor fans out in parallel, then dedupes the results by NRDS ID → license # → email → name+phone, so the same agent surfacing on Compass + Realtor.com merges into one enriched record.
Quick start
- Pick sources under Sites to scrape
- Add target cities under Target locations (e.g.
[{"city":"Austin","state":"TX"}]) - Click Start — leads land in the dataset, viewable as a table or downloadable as JSON / CSV / Excel
The default proxy is Apify Residential because Realtor.com, Redfin, Apartments.com and Zillow WAF non-proxied requests aggressively. You won't get useful volume from these without it.
Input
| Field | Type | Default | Description |
|---|---|---|---|
sites | string[] | ["compass","compassagents"] | Which adapters to run. See full enum in INPUT_SCHEMA.json. |
locations | object[] | [{"city":"Austin","state":"TX"}] | Cities to query. State as 2-letter code (US/CA), GB for UK. |
listingType | "sale" | "rent" | "sale" | Selects sale-side or rent-side adapters where the source supports both. |
freshnessDays | integer | 7 | Listing-side adapters skip listings older than this. Lower = more responsive agents. |
maxLeadsPerLocation | integer | 200 | Cap per adapter per location. Total = sites × locations × this, less dedupe. |
proxyConfiguration | proxy | Apify Residential | Required for Realtor.com/Redfin/Apartments.com volume. |
Output
Every lead row conforms to dataset_schema.json:
{"source": "compassagents","sourceListingId": "https://www.compass.com/agents/david-aceves","detailUrl": "https://www.compass.com/agents/david-aceves","leadType": "agent","agentName": "David Aceves","agentEmail": "david.aceves@compass.com","agentPhone": "512-360-8788","agentLicense": null,"agentNrdsId": null,"agentWebsite": "https://www.compass.com/agents/david-aceves","brokerName": "Compass","brokerPhone": null,"brokerAddress": null,"listing": {},"scrapedAt": "2026-05-06T19:01:37.309Z"}
The dataset ships with three preconfigured table views in the Apify UI:
- Leads (default, all rows)
- Agents (filtered to licensed-agent rows)
- Rental landlords (Apartments.com / Craigslist landlord rows)
Use cases
- Real estate CRM seeding — pull every active listing agent in your service area on a daily cron, dedupe against existing contacts, push new ones into HubSpot/Salesforce
- Cold outreach for agent-targeting tools (CRMs, lead-gen software, mortgage products, transaction platforms) — Realtor.com agents + Compass agents alone yields 30k+ verified emails per metro
- Market research — combine listing-side adapters with
freshnessDays=1to track which agents are most active week-over-week in a market - Lead enrichment — hit any of the agent-directory adapters with a known agent name and merge the license #, NRDS ID, and direct contact back onto your existing record
- Recruiting for brokerages — Sotheby's, Compass and Realtor.com agent rosters contain tenure, sales volume and brokerage affiliation, useful for poaching campaigns
Architecture
The actor uses a pluggable adapter pattern — each source is a self-contained module under src/adapters/. Adding a new source means writing one file conforming to the Adapter interface, registering it in src/adapters/index.ts, and adding it to the enum in INPUT_SCHEMA.json. Three adapter shapes are supported:
- API-first (e.g. Redfin) — direct calls to the site's internal JSON API after a one-time cookie warmup
- Browser + structured data extraction (e.g. Realtor.com, Rightmove, Compass) — Playwright + parse
__NEXT_DATA__,PAGE_MODEL, or schema.org JSON-LD - Plain HTML (e.g. Craigslist) —
gotScraping+ regex/cheerio for sites without anti-bot
Stealth is enabled by default via playwright-extra + puppeteer-extra-plugin-stealth. Output dedupe cascades by identity strength: NRDS → license # → email → name+phone → URL.
FAQ
Q: Will this work for Zillow? Zillow uses PerimeterX with aggressive challenge ratcheting. The agent search page sometimes loads but profile-detail pages get blocked instantly even with stealth + residential proxy. We mark Zillow as "in development" and recommend Realtor.com agent directory + Compass as substitutes — between them you get higher coverage with cleaner data.
Q: Why are some Apartments.com phones the same area code (737)? Those are CoStar tracking numbers that forward to the actual property manager. They're real working contacts but routed through CoStar's call platform.
Q: Do FSBO leads from Craigslist include the seller's name? Craigslist hides poster identity by default. We extract whatever phone or email the seller put in the body of the post — for real estate posts that's usually present. Sellers who use the obfuscated reply form are skipped.
Q: How do you handle GDPR/CCPA? All scraped fields are publicly published by the source sites. Use the data only for purposes permitted under applicable law. The actor is a tool — compliance is your responsibility.
Q: Is the data deduped across sources? Yes. The same agent appearing on Compass listings and Realtor.com gets merged into one record (keyed on license #, NRDS ID, or email). The merge keeps the strongest field from each source.
Q: How do I add a new site?
Drop a new adapter under src/adapters/, add it to the registry and the input enum. The base Adapter interface defines search() (URL discovery) and fetchLead() (per-record extraction). Crawlee-based sources also expose a runAll() shortcut for sites where the search and detail steps share a session.
Keywords
real estate scraper, realtor scraper, real estate lead generation, real estate API, MLS scraper, agent contact scraper, realtor.com scraper, redfin scraper, compass scraper, sotheby's scraper, apartments.com scraper, craigslist real estate scraper, realtor.ca scraper, rightmove scraper, real estate CRM enrichment, broker email scraper, FSBO lead scraper, property manager contact scraper, landlord lead scraper, agent license lookup, NRDS scraper