Realtor Lead Scraper avatar

Realtor Lead Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Realtor Lead Scraper

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

Logical Vivacity

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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

SourceRegionLead typeFields extracted
Realtor.comUSListing agentName, email, phone, license #, NRDS ID, brokerage, listing
Realtor.com agent directoryUSAgent profileName, mobile phone, license #, brokerage, office, website
RedfinUSListing agentName, phone, brokerage, broker phone, MLS#
Compass.com listingsUSListing agentName, email, phone, license #, brokerage, listing
Compass.com agent rosterUSAgent profileName, email, phone, license #, profile URL
Sotheby's International RealtyGlobalLuxury agentName, mobile + office phone, email, brokerage
Apartments.comUSProperty manager / landlordProperty name, phone, address
Craigslist real estateUSFSBO seller / landlordTitle, phone (when posted), price, address
REALTOR.caCanadaListing REALTOR®Name, phone, brokerage, broker phone
RightmoveUKEstate agencyBranch 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

  1. Pick sources under Sites to scrape
  2. Add target cities under Target locations (e.g. [{"city":"Austin","state":"TX"}])
  3. 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

FieldTypeDefaultDescription
sitesstring[]["compass","compassagents"]Which adapters to run. See full enum in INPUT_SCHEMA.json.
locationsobject[][{"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.
freshnessDaysinteger7Listing-side adapters skip listings older than this. Lower = more responsive agents.
maxLeadsPerLocationinteger200Cap per adapter per location. Total = sites × locations × this, less dedupe.
proxyConfigurationproxyApify ResidentialRequired 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=1 to 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