Realtor.com Agents Scraper - Profiles & Contact Data
Pricing
from $2.20 / 1,000 results
Realtor.com Agents Scraper - Profiles & Contact Data
Scrape Realtor.com agents by US city or ZIP. Extract real estate agent phones, emails, ratings, sales stats, brokerage, languages, and served areas. A Realtor.com agent API alternative for Excel, CSV, or JSON.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Realtor.com Agents Scraper — Profiles & Contact Data
Scrape Realtor.com real estate agent profiles by US city or ZIP — then download structured agent contact data as Excel, CSV, or JSON.
Architecture: thin Apify Actor → realtor-com-agents Cloud Run worker (HTTPS + API key).
Worker URL is config (WORKER_BASE_URL), not hardcoded-only — migrate the worker by updating Actor env without a code change. SetWORKER_PROVIDES_PROXY=1when the worker supplies its ownPROXY_URL.
This Actor is a practical Realtor.com agent API alternative for lead generation, brokerage research, and market outreach. Enter a location such as Austin, TX or a ZIP like 78701, and get agent rows with phones, office/broker, ratings, sales stats, languages, specializations, and served areas when present on the profile.
- Search real estate agents on Realtor.com
- Resolve city or ZIP via Realtor.com geo suggest (
tx_austinmarketing area or postal code) - Optionally enrich each agent with the AgentBranding profile (phones, MLS, office address)
- Filter by agent name, Realtor member flag, and price band
- Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or MCP
- Pay per event — Actor start + each Dataset agent; no subscription
Need a dedicated scraper for one website?
This Actor is the general tool for protected public pages. If you already have one specific site and a field list, a dedicated scraper is faster and more stable: listing + detail, your export format, delivered to your Apify account or as a standalone runnable client.
I confirm the tier before you pay. The clock starts after that confirmation.
Start here: Submit a custom scraper request
| Starter $50 | Dedicated $100 | Hard target $200–999 | |
|---|---|---|---|
| Site | 1 simple anti-bot public site | 1 medium anti-bot public site | Cloudflare / aggressive anti-bot / custom parser |
| Scope | Full listing + detail fields | Listing + detail + pagination, your field list | Agreed fields, repeatable runs |
| Delivery | CSV/JSON · Apify Actor or standalone runnable client (script/CLI) | Same, plus a sample run and short instructions | Feasibility first, then build |
| Time | 24 hours after we confirm the URL is in scope | 48 hours after confirmation | Quoted after feasibility |
| Fixes | 30 days for small public-layout changes | 30 days | Scoped in the quote |
Hard-target sites are not a 100% uptime promise. You get a dedicated parser that can be re-run on the agreed fields. If the URL is not feasible, you get a refund or pay an assessment fee only — you will know before the build starts.
Not in Starter/Dedicated: login-walled data, native APK / Windows installer / full web apps, or two-year maintenance. Those are a separate quote.
What does the Realtor.com Agents Scraper do?
It turns a US city or ZIP agent search on Realtor.com into a clean Apify Dataset of agent profiles.
Under the hood, the Actor mints an Apify RESIDENTIAL proxy (US, sticky per location) and calls a dedicated Cloud Run worker, which:
- Resolves your location through Realtor.com geo suggest
- Runs the
search_agentsGraphQL query for matching profiles - Optionally fetches AgentBranding enrichment for phones, office, MLS, and specializations
- Returns normalized records the Actor writes to the Dataset
Apify RESIDENTIAL proxy is required on cloud runs (prefilled). Direct/datacenter traffic is often blocked.
What data can you extract from Realtor.com agents?
| Data point | Included |
|---|---|
| Agent name & profile URL | ✅ |
| Phone(s) | ✅ |
| Office / broker name | ✅ |
| Ratings & review counts | ✅ |
| For-sale / recently sold stats | ✅ |
| Languages & specializations | ✅ |
| Served areas | ✅ |
| License number / state | ✅ |
| MLS memberships | ✅ |
| Avatar, website, social links | ✅ |
| Bio / designations | ✅ |
Every Dataset row also includes scrapedAt and source = realtor.com. A RUN_SUMMARY record in the key-value store reports counts and warnings.
What you can do with it
1. Build a Realtor.com agent lead list for a city
Enter a city like Austin, TX, set max results, and export names, phones, offices, and profile URLs for outreach or CRM import.
2. Scrape agents by ZIP code
Use a ZIP such as 78701 when you need a tighter local market than a full city marketing area.
3. Enrich agent contact and brokerage details
Keep Enrich profiles enabled to pull AgentBranding fields (phones, office address, MLS, specializations) on top of search stubs.
4. Filter by name, member status, or price band
Narrow results with agentName, isRealtor, and optional minPrice / maxPrice before saving rows.
5. Feed agent data into automations
Schedule the Actor and send the Dataset to Sheets, Slack, CRM, Make, n8n, Zapier, or an AI agent via Apify MCP / API.
How to scrape Realtor.com agents (no code required)
- Click Try for free
- Enter a location (
Austin, TXor78701) - Optionally set agent name filter, max results, and enrich toggle
- Keep Apify RESIDENTIAL proxy enabled
- Click Start — open the Dataset tab when the run finishes
Start with maxResults: 5–10 to verify the market, then scale up.
Free Apify plan limits (set by this Actor's developer)
| Limit | Free Apify plan | Paid Apify plan |
|---|---|---|
| Runs of this Actor | 10 runs total | Unlimited |
Agents per run (maxResults) | Up to 500 | Up to 500 |
These caps are enforced by the Actor developer (not Apify platform errors). When you hit the 10-run limit, the run finishes gracefully with a clear status message asking you to upgrade.
Pricing — how much does it cost to scrape Realtor.com agents?
Pay per event. No subscription.
| Event | Price | When charged |
|---|---|---|
apify-actor-start | $0.005 | When a normal run starts (scaled by allocated memory GB) |
apify-default-dataset-item (result) | $2.50 / 1,000 ($0.0025 each) | Each agent written to the default Dataset |
User pays platform usage costs: Yes — compute, residential proxy, and other platform usage are billed to the user in addition to event charges.
Example product charges (events only):
| Scenario | Approx. event charge |
|---|---|
| Canary: 10 agents | $0.005 + 10 × $0.0025 = $0.030 |
| City scan: 100 agents | $0.005 + $0.25 = $0.255 |
| Cap run: 500 agents | $0.005 + $1.25 = $1.255 |
Platform usage (especially residential proxy) is separate and depends on run duration and memory.
Free Apify plan: up to 10 runs of this Actor and 500 agents per run. Upgrade to a paid Apify plan for unlimited runs. (Limits set by the Actor developer.)
Input
| Field | Description |
|---|---|
location | City and state or ZIP, e.g. Austin, TX / 78701 |
agentName | Optional name filter |
maxResults | 1–500 (default 20); free users capped at 500/run + 10 runs total |
isRealtor | Restrict to Realtor.com members |
minPrice / maxPrice | Optional USD price-band filters |
enrichProfiles | Fetch AgentBranding details (default true) |
proxyConfiguration | Apify RESIDENTIAL always used; country follows search location |
Open the Input tab in Console for the full form and tooltips.
Output example
You can download the Dataset as JSON, CSV, Excel, or HTML.
{"agentId": "5678","name": "Jane Smith","profileUrl": "https://www.realtor.com/realestateagents/jane-smith_austin_tx_5678","phone": "5125550100","officeName": "Example Realty","brokerName": "Example Brokerage","averageRating": 4.8,"reviewsCount": 42,"forSaleCount": 12,"recentlySoldCount": 28,"languages": ["English", "Spanish"],"specializations": ["Buyer's Agent", "Listing Agent"],"licenseNumber": "123456","source": "realtor.com","scrapedAt": "2026-07-17T00:00:00+00:00"}
Core fields include contact (phone, phones, officePhones), brokerage (officeName, brokerName), ratings, listing stats, servedAreas, languages, specializations, license/MLS, and profileUrl.
Lead / contact fields
Every enriched agent row carries a standardized lead-completeness block so you can build outreach lists without guessing which fields exist. These fields are populated from the Realtor.com Agent Detail / Profile page (AgentBranding GraphQL) when enrichProfiles is enabled (default true). Search-only rows (enrichment off) carry leadSource: "search" and thinner contact data.
| Field | Type | Meaning | Source surface |
|---|---|---|---|
phones | [{value, type}] | Agent phone numbers (office/mobile). Already visible on the profile — no click-reveal needed. Sample: (303) 771-9400 (office). | Detail Profile |
emails | [{value, type}] | Agent contact emails. Not exposed by Realtor.com — see Honest limitations. Always [] with leadAbsences.emails. | — (闸门锁) |
address | {street, unit, locality, region, postalCode, country, full} | Office/street address. unit = suite/门牌 (e.g. Suite 110); street = street line (e.g. 13812 Research Blvd.); full = assembled single-line address. Already visible. | Detail Profile |
geo | {lat, lng} | Latitude/longitude. Not provided by Realtor.com agent profiles — see Honest limitations. Always null with leadAbsences.geo. | — (未验证) |
person | {name, role} | Agent contact person. name = full agent name (e.g. THOMAS C ULLRICH); role = Real Estate Agent. | Detail Profile + SRP |
org | {name, id} | Office / brokerage. name = office or broker name (e.g. Team West Real Estate); id = Realtor.com office ID when available. | Detail Profile + SRP |
web | {website, socials[]} | website = agent personal website URL; socials = social profile links (Facebook, Instagram, LinkedIn, X, TikTok, YouTube). | Detail Profile |
leadSource | enum | Where the lead fields came from: search (SRP stub) or detail (AgentBranding enrichment). | derived |
leadReveal | enum | How contact was obtained: visible (already on the page, no click-reveal). Realtor.com agent phones and addresses are already visible. | derived |
leadAbsences | object | Why a lead sub-field is missing. Keys are field names; values are reasons: 闸门锁 (login/lead-form gate), 未验证 (not available on the site). | derived |
Why phones and address are the core leads: Realtor.com agent profiles display office phone numbers and the full office street address (including suite/门牌) directly on the Detail page — no click-to-reveal, no login wall. These are the primary contact channels for agent outreach.
Reveal cost
Realtor.com agent contact data is already visible on the Agent Detail / Profile page. There is no click-reveal control, no overlay, and no XHR-after-click for phones or addresses.
- Enrichment cost:
enrichProfiles: true(default) adds one AgentBranding GraphQL call per agent on top of the search query. This is the only extra request — it fetches phones, office address, social links, license, and MLS in a single response. - Proxy / rate-limit impact: Enrichment doubles the per-agent request count (search + detail). With Apify RESIDENTIAL proxy, this is typically 2 requests per agent. No browser rendering is needed — the worker uses HTTP + GraphQL directly.
- No click-reveal: Phones and addresses are served in the AgentBranding JSON response; no page interaction or JavaScript execution is required to reveal them.
- Run duration: Dominated by the number of agents × 2 requests. A 100-agent city scan typically completes in under a minute.
Honest limitations
These lead fields are not available on Realtor.com and the Actor does not fabricate them. Missing fields are always explained in leadAbsences:
| Field | Reason | leadAbsences value |
|---|---|---|
emails | Realtor.com does not expose agent email addresses. The profile has a "Contact" lead form that sends a message to the agent, but the agent's email is never shown. The Actor does not submit this form. | 闸门锁 (lead-form gate) |
geo (lat/lng) | Realtor.com agent profiles provide the office address as structured text but do not include latitude or longitude coordinates. | 未验证 (not available on site) |
Other notes:
- Search-only rows (when
enrichProfiles: false) carryleadSource: "search"and do not include phones, address, or social links — only the agent name, office name, and profile URL from the SRP. Enable enrichment for full contact data. - Intent-filtered SRP (seller) is marked
未验证in the coverage matrix and is not part of the default smoke path. - The Actor covers US only (realtor.com). No international markets.
Live View / Standby endpoints
When Standby / Live View is enabled, the Actor exposes a small OpenAPI surface for readiness and discovery:
| Endpoint | Purpose |
|---|---|
GET / | Readiness / service info (Apify probe) |
GET /health | Health check |
GET /input-example | Low-cost example input |
GET /openapi.json | Deployed OpenAPI document |
Scraping still runs through a normal Actor run — Live View does not scrape Realtor.com by itself.
Connect from code
Actor ID: lentic_clockss/realtor-com-agents-scraper
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("lentic_clockss/realtor-com-agents-scraper").call(run_input={"location": "Austin, TX","maxResults": 10,"enrichProfiles": True,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("name"), item.get("phone"), item.get("profileUrl"))
Use the same Actor ID in Make, n8n, Zapier, or Apify MCP for AI-agent workflows.
FAQ
Why am I limited to 10 runs / 500 agents on the free plan?
Those limits are set by this Actor's developer for free Apify plan users (not an Apify platform bug). Upgrade to a paid Apify plan for unlimited runs of this Actor. Event pricing (PPE) is separate from these free-tier caps.
Is there a free Realtor.com agent API?
Realtor.com does not offer a simple public agent-directory API for bulk export. This Actor gives you structured agent profiles through Apify runs, Dataset exports, and integrations.
Can I scrape agents by ZIP as well as city?
Yes. Pass a 5-digit US ZIP (e.g. 78701) or a City, ST string. The Actor resolves both through Realtor.com geo suggest.
Why is a residential proxy required?
Realtor.com blocks many datacenter and direct IPs. Apify RESIDENTIAL is required for reliable cloud runs.
Does enrichProfiles cost more?
Enrichment uses extra GraphQL profile calls and may use more proxy/compute, but event pricing still charges only Actor start + each Dataset item. Platform usage is billed separately when enabled.
Can I schedule daily Realtor.com agent scrapes?
Yes. Create an Apify schedule with the same input and send the Dataset to Sheets, Slack, a CRM, or your pipeline.
Is it legal to scrape Realtor.com agents?
Use this Actor for legitimate research and outreach only. Respect Realtor.com terms of use and applicable law. Results may include publicly displayed professional contact information; do not use personal data without a lawful basis.
Related Actors
- Realtor.com Scraper — homes for sale and rent listings
- US Real Estate Scraper — multi-site US aggregation
Browse all Actors: apify.com/lentic_clockss