Realtor.com Agent Scraper — Agents, Listings & Reviews avatar

Realtor.com Agent Scraper — Agents, Listings & Reviews

Pricing

from $19.00 / 1,000 agent extracteds

Go to Apify Store
Realtor.com Agent Scraper — Agents, Listings & Reviews

Realtor.com Agent Scraper — Agents, Listings & Reviews

Scrape Realtor.com real estate agents at scale — search by city or lookup by agent id. Returns license number, broker, office, contacts, ratings, listing stats, served areas, and specializations, plus optional for-sale, sold history, and reviews. Built for recruiting, lead gen, and CRM enrichment.

Pricing

from $19.00 / 1,000 agent extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Share

Realtor.com Agent Scraper — Agents, Listings & Reviews 🏠

SIÁN Agency Store Zillow Agent Scraper Redfin Property Scraper StreetEasy NYC Scraper

🎉 The Realtor.com agent scraper that returns FULL profiles — license number, broker, ratings, sold history & reviews — not thin $1/1K lead dumps.

Built for brokerage recruiters, lead-gen SaaS founders, and real-estate data teams who need real productivity signals on every agent in a market.


📋 Overview

Pull thousands of real-estate agents from Realtor.com at scale — search any US market by city, then get license number, broker, office, contacts, ratings, listing stats, served areas, and specializations in one clean structured dataset. Optional one-toggle enrichment adds each agent's full active for-sale portfolio, complete sold history, for-rent listings, and the entire reviews + recommendations corpus.

Why recruiters and lead-gen teams choose us:

  • Full profiles, not lead dumps: license number, broker + office, phones, ratings, served areas, specializations, languages — the depth the "$1 per 1,000 leads" actors strip out
  • City-scale discovery: one search returns every agent in a market with stable pagination (thousands of agents per city)
  • 🎯 Recruiting signal built in: sold-last-year + active for-sale-count + ratings let you rank top producers and target the right agents to poach
  • 💎 Deep enrichment: active for-sale, full sold history (hundreds to thousands of rows per agent), for-rent listings, and the complete reviews + recommendations corpus with sub-ratings
  • 💰 Pay-per-event: a low per-agent headline rate, with enrichment as an optional add-on — only pay for what you pull
  • NEW: HTML cohort report with top-broker breakdown, productivity medians, license/phone coverage, and per-query totals

Built by SIÁN Agency — an independent tool. See the Trademark Disclaimer below.


✨ Features

  • 🧭 Two modes: city/state directory search OR direct lookup by agent fulfillment id
  • 📜 License + broker data — license number, supervising broker, office name + address + phones per agent
  • 📞 Full contact — typed phone numbers (mobile/office) + a convenience primary phone
  • Ratings — average rating, reviews count, recommendations count
  • 📊 Productivity statssold-last-year, active for-sale-count, and price range when available
  • 🗺 Served areas + specializations + languages — perfect for territory targeting and niche matching
  • 🏷 Active for-sale + for-rent portfolios — paginated, with price, address, beds/baths, type
  • 📈 Full sold history — hundreds to thousands of past transactions per agent with last-sold price + date
  • 💬 Reviews + recommendations — full corpus with reviewer type and sub-ratings (responsiveness, market expertise, negotiation, professionalism), plus agent replies
  • 📄 HTML cohort report — saved to the key-value store with top-broker breakdown, productivity medians, and coverage stats
  • 🔁 Resilient by default — automatic key failover so upstream blips don't fail your run

🎬 Quick Start

Pick search mode, give it a "City, ST" location, and run. To enrich, flip on the toggles and run on a paid plan.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~realtor-agent-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"searchMode": "search", "location": "Austin, TX", "maxAgentsPerQuery": 50}'

🚀 Getting Started (3 Simple Steps)

Step 1: Choose your market

Set searchMode to search and enter a location as "City, ST" (e.g. "Miami, FL"). Set maxAgentsPerQuery to how many agents you want.

Step 2: (Optional) Turn on enrichment

On a paid plan, flip includeForSale, includeSoldProperties, includeForRent, or includeReviews to attach each agent's full portfolio and review corpus.

Step 3: Run and export

Run the actor and export the dataset to JSON, CSV, or Excel. Open the HTML report in the key-value store for a cohort summary.

That's it! In a few minutes you'll have:

  • Every agent in your target market with license + broker + contacts
  • Productivity rankings (sold-last-year, active listings) to find top producers
  • Optional full portfolios and reviews per agent

📥 Input Configuration

FieldTypeRequiredDescription
searchModestringNosearch (directory by city) or lookup (by fulfillment id). Default search.
locationstringFor searchCity + two-letter state, e.g. "Austin, TX". A bare city won't resolve.
maxAgentsPerQueryintegerNoCap on agents per search query. Default 50. FREE tier capped at 5.
lookupTargetsarrayFor lookupAgent fulfillment ids (e.g. ["3656096"]), harvested from search.
fetchAgentDetailsbooleanNoFetch the full profile per directory row (default true). Always on in lookup.
includeForSalebooleanNoAttach full active for-sale portfolio. Paid only.
includeSoldPropertiesbooleanNoAttach full sold history. Paid only.
includeForRentbooleanNoAttach active for-rent portfolio. Paid only.
includeReviewsbooleanNoAttach reviews + recommendations corpus. Paid only.
maxListingsPerAgentintegerNoCap on for-sale + for-rent rows per agent. Default 50.
maxSoldPerAgentintegerNoCap on sold rows per agent. Default 50.
maxReviewsPerAgentintegerNoCap on reviews per agent. Default 25.

Example (search + enrichment):

{
"searchMode": "search",
"location": "Austin, TX",
"maxAgentsPerQuery": 100,
"includeSoldProperties": true,
"includeReviews": true,
"maxSoldPerAgent": 200
}

Example (lookup):

{
"searchMode": "lookup",
"lookupTargets": ["3656096"],
"includeForSale": true,
"includeReviews": true
}

📤 Output

Results are saved to the Apify dataset. Key fields per agent:

FieldTypeDescription
fulfillmentIdstringStable agent id (use for lookup + joins)
agentNamestringAgent display name
licenseNumberstringReal-estate license number
brokerobjectSupervising broker (name + id)
officeobjectOffice name, website, phones, address
phones / primaryPhonearray / stringTyped phones + a convenience first line
ratingsobjectAverage rating, reviews count, recommendations count
listingStatsobjectsold-last-year, for-sale-count, price range
servedAreasarrayMarkets the agent serves
specializations / languagesarrayNiche + language signals
forSaleListings / soldListings / forRentListingsarrayPortfolios (full when enriched)
reviews / recommendationsarrayFull corpus with sub-ratings (when enriched)
countsobjectArray counts + reported totals
profileUrlstringPublic agent profile URL
scrapedAtstringISO collection timestamp

Example:

{
"fulfillmentId": "3656096",
"agentName": "Gregg Klar",
"isRealtor": true,
"licenseNumber": "0472276",
"broker": { "name": "Keller Williams Realty - Broker", "fulfillmentId": "4458562" },
"office": { "name": "Keller Williams - Lake Travis", "address": { "city": "LAKEWAY", "state_code": "TX", "postal_code": "78734" } },
"primaryPhone": "(512) 653-0488",
"ratings": { "averageRating": 5, "reviewsCount": 1, "recommendationsCount": 7 },
"listingStats": { "forSaleCount": 38, "soldLastYear": 43 },
"servedAreas": ["Austin", "Lakeway", "Marble Falls", "Spicewood"],
"profileUrl": "https://www.realtor.com/realestateagents/5c08282d000298001ac42fc7"
}

💼 Use Cases & Examples

1. Brokerage recruiting

A recruiter at a national brokerage wants to poach top producers in a metro. Input: search mode, "Austin, TX", high maxAgentsPerQuery. Output: Every agent with broker, license, ratings, and sold-last-year. Use: Rank by productivity, filter out your own brokerage, and run outreach.

2. Lead-gen SaaS

A founder sells data products to agents and needs an enriched agent directory. Input: search across target markets + fetchAgentDetails. Output: License + phones + broker + served areas + specializations per agent. Use: Power a contact-enrichment or territory-mapping product without maintaining scrapers.

3. Real-estate analytics

An analyst tracks agent productivity and broker market share over time. Input: search by market on a schedule. Output: sold-last-year + active for-sale counts + top-broker breakdown (HTML report). Use: Monitor top-producer concentration and broker share month over month.

4. CRM / data integration

A data engineer matches Realtor.com agents to internal records. Input: lookup mode with known fulfillment ids, or search to discover them. Output: Stable fulfillmentId + license + broker for deterministic joins. Use: Enrich existing CRM records with served areas, reviews, and recommendations.

5. Reputation intelligence

A reputation team needs the full review corpus for a set of agents. Input: lookup or search with includeReviews. Output: Reviews (rating, comment, reviewer type, sub-ratings, agent reply) + recommendations. Use: Benchmark agent reputation and surface negotiation/responsiveness sub-scores.


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/realtor-agent-scraper').call({
searchMode: 'search',
location: 'Austin, TX',
maxAgentsPerQuery: 50
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/realtor-agent-scraper').call(
run_input={'searchMode': 'search', 'location': 'Austin, TX', 'maxAgentsPerQuery': 50}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~realtor-agent-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"searchMode": "search", "location": "Austin, TX"}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule or webhook
  2. HTTP Request: Call the actor API
  3. Process: Handle the JSON agent records
  4. Action: Push to CRM, enrich a sheet, or notify your team

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 5 agents per run — full field access, same quality
  • No credit card required
  • Perfect for testing and small samples
  • Unlimited agents per run, plus all enrichment toggles
  • Faster processing, no per-run caps
  • Pay-per-event: charged per agent extracted + per enrichment bundle

💰 Built for depth at a fair rate — a low per-agent headline with enrichment as an optional add-on.

🔗 View current pricing


❓ Frequently Asked Questions

Q: How many agents can I pull? A: FREE tier: 5 per run. PAID tier: unlimited, across as many markets as you schedule.

Q: How do I look up a specific agent? A: Use lookup mode with the agent's numeric fulfillment id — harvest ids from a search run first.

Q: Why does my location return nothing? A: Use the "City, ST" form (e.g. "Austin, TX"). A bare city can't be resolved.

Q: Do all agents have for-rent listings? A: No — many sales-focused agents have zero rentals. That's reflected accurately, never invented.

Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset.

Q: Is this legal? A: We only extract publicly available agent-profile data. See the legal section below.


🐛 Troubleshooting

Search returns 0 results

  • Use "City, ST" (two-letter state). A bare city name won't resolve.

Enrichment toggles seem ignored

  • Enrichment is PAID-only. On FREE tier the toggles are skipped by design.

A lookup fails

  • lookup needs a numeric fulfillment id, not a profile URL. Run a city search to harvest ids.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

⚠️ Trademark Disclaimer

This is an independent tool and is not affiliated with, endorsed by, or sponsored by Move, Inc. or the National Association of REALTORS®. "Realtor.com" and "REALTOR®" are trademarks of their respective owners. This actor collects only publicly available real-estate agent profile data and is intended for legitimate, compliant use.

🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools