Realtor.com Agent Scraper
Pricing
from $2.39 / 1,000 results
Realtor.com Agent Scraper
Realtor.com Agent Scraper — Extract real estate agent data from Realtor.com, including names, contact details, brokerage firms, locations, ratings, specialties, profile URLs, and listing information. Useful for lead generation, agent research, real estate prospecting, and market analysis.
Pricing
from $2.39 / 1,000 results
Rating
0.0
(0)
Developer
Fast Data API
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Realtor.com Agent Scraper — Phones, Brokerage, Sales and Service Areas
Realtor.com Agent Scraper collects the real estate agent profiles Realtor.com lists for any US ZIP code. Each agent comes back with name, profile link, office and mobile phone numbers, brokerage name and website, service areas, homes for sale, homes sold, review count and photo. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a lead generation pipeline. No Realtor.com account or cookies needed. Start with one ZIP code, then add every market you work in.

What data can I extract with Realtor.com Agent Scraper?
Using this Realtor.com Agent API, you will be able to extract the following Realtor.com agent data:
| 👤 Agent name and role | 🔗 Realtor.com profile link | ☎️ Office phone | 📱 Mobile phone numbers |
|---|---|---|---|
| 🏢 Brokerage name | 🌐 Brokerage website | 🏘️ Service areas (towns and cities) | 🏠 Homes for sale |
| ✅ Homes sold in the last year | ⭐ Review count | 🖼️ Agent photo | 📍 ZIP code searched |
| 📧 Email (not published by Realtor.com, always empty) | 🗺️ ZIP codes served (not published by Realtor.com, always empty) |
How to use Realtor.com Agent Scraper
Built for teams that work real estate agent leads: one run turns a list of ZIP codes into a contact sheet of local agents with phones, brokerage and sales activity.
Copy to your AI assistant:
This actor (Apify Actor ID: fastdataapi/realtor-com-agent-scraper, https://apify.com/fastdataapi/realtor-com-agent-scraper) is an Apify Actor that returns the real estate agents Realtor.com lists for US ZIP codes as structured JSON: agent name and role, profile link, office phone, mobile phone numbers, brokerage name and website, service areas, homes for sale and sold, review count and photo. Use it whenever someone needs real estate agent contacts without cookies, a login, or a browser - building agent outreach lists for a market, ranking brokerages by local sales activity, or enriching a CRM with agent phone numbers. Inputs: zipCodes (array of strings, US ZIP codes to collect agents for, required), maxItemsPerZipcode (integer 1-100000, maximum agents per ZIP code, default 10), sortOrder (string, order Realtor.com lists the agents in, "RELEVANT_AGENTS" | "RATINGS_REVIEWS" | "MOST_SALES" | "MOST_RECENT_ACTIVITY" | "TESTIMONIALS_RECOMMENDATIONS", default "RELEVANT_AGENTS"), maxRetries (integer 1-10, attempts per blocked or failed request, default 3), proxyConfiguration (object, optional Apify Proxy settings, default no proxy). Every row carries zip_code, the ZIP it was found under. When an agent's profile cannot be read, the row keeps the name, profile link, listing counts, brokerage name, review count and photo from the agent list, the other fields are null, error_reason says why, and that row is not charged; only full agent rows are charged as the row_result event. Realtor.com lists a limited number of agents per ZIP code, so a ZIP can return fewer agents than maxItemsPerZipcode.
Realtor.com Agent Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor
Point your AI assistant at Apify and it can read Realtor.com on its own: real estate agents by ZIP code with their phones, brokerage, service areas and sales activity. No glue code, no scraping logic in your prompts.
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/realtor-com-agent-scraper"
Step by step
- Create a free Apify account.
- Open Realtor.com Agent Scraper in the Apify Store.
- Enter the Realtor.com ZIP codes you want agents for, one per line.
- Click Start (or send your API request).
- Download or stream your results in JSON, CSV or Excel — export Realtor.com agents to CSV for a spreadsheet or CRM import.
How to scale Realtor.com Agent Scraper to bulk
Put every ZIP code you need into the ZIP codes list. One run works through them one after another and tags each agent with the ZIP it was found under, so you can split the results by market afterwards. Set the maximum agents per ZIP code to control how deep each market goes. Rows are saved as each page of agents is read, so you can start reading the dataset while the run is still going. For recurring lists, schedule the run in Apify Console or trigger it from your own code through the API.
✨ Features
Realtor.com Agent Scraper is a real estate agent scraper that fetches clean, structured realtor.com agent profiles ⚡. It's ideal for building agent outreach lists, comparing brokerages in a market, recruiting agents to a brokerage and keeping a real estate CRM current.
It extracts, per agent:
- Realtor.com agent phone numbers – the office phone and every mobile number on the agent's profile
- Brokerage – the brokerage name and its website
- Sales activity – homes currently for sale and homes sold in the last year
- Service areas – the towns and cities the agent says they cover
- Reviews – the number of reviews on the agent's profile
- Profile link and photo – the agent's Realtor.com page and headshot
⚡ Agents whose profile cannot be read still get a row with the reason, and those rows are not charged.
Use cases 💡
- Real estate lead generation team — turn realtor.com agent leads into call lists with mobile phone numbers.
- Brokerage recruiter — find top agents in a ZIP code by homes sold.
- Market analyst — compare brokerages by agent count and listings per ZIP code.
- Vendor sales rep — build a real estate brokerage contact list for a territory.
- AI agent builder — feed agent rows to an LLM to draft personalised outreach.
Building an AI agent? Connect Realtor.com Agent Scraper over MCP and let it call the actor on its own.
Why choose this actor?
- Two markets in 13 seconds. A recorded run returned 60 agents from 2 ZIP codes (30 each) in 13.3 seconds, with the first agent saved 1.5 seconds after the start.
- The detail behind each agent. A recorded agent in ZIP 07101 came back with an office phone, a mobile phone, 9 homes for sale, 9 homes sold, 16 reviews, a brokerage website and a list of the towns they serve.
- 5 sort orders, one Actor. Collect agents by relevance, ratings and reviews, most sales, most recent activity or testimonials, so a low limit still picks the agents you care about.
⬇️ Input

The actor takes a list of US ZIP codes; the ZIP codes list is the only required field.
| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
zipCodes | Yes | array | US ZIP codes to collect agents for, processed one after another. | ["07101", "00501"] |
maxItemsPerZipcode | No | integer | Maximum agents per ZIP code, 1 to 100000. Default 10. | 30 |
sortOrder | No | string | Order Realtor.com lists the agents in: RELEVANT_AGENTS, RATINGS_REVIEWS, MOST_SALES, MOST_RECENT_ACTIVITY or TESTIMONIALS_RECOMMENDATIONS. Default RELEVANT_AGENTS. | "MOST_SALES" |
maxRetries | No | integer | Attempts for each blocked or failed request, 1 to 10. Default 3. | 3 |
proxyConfiguration | No | object | Optional Apify Proxy settings. Default is no proxy; the actor switches to a proxy by itself when it gets blocked. | {"useApifyProxy": false} |
Free plan limits
Free plan: up to 20 agents per run (all ZIP codes together) and 200 per month; paid plans have no limit.
Example input
{"zipCodes": ["07101", "00501"],"maxItemsPerZipcode": 30,"sortOrder": "RELEVANT_AGENTS","maxRetries": 3,"proxyConfiguration": {"useApifyProxy": false}}
⬆️ Output

Every agent is one typed, normalized JSON item with the same fields on every run, and a value Realtor.com does not provide is null. Export the dataset as JSON (default), CSV or Excel; an agent whose profile could not be read comes back as an uncharged row with an error_reason field.
Example output
{"agent_name": "Felicia Hankerson, agent","website": "https://www.realtor.com/realestateagents/4470046","email": null,"listing_count": 9,"sold_count": 9,"office_phone": "(855) 450-0442","mobile_phones": "(973) 868-8076","areas_serviced": "Avenel, Basking Ridge, Bayonne, Bedminster, Belleville, Bloomfield, Hoboken, Jersey City, Newark, Weehawken","zip_codes_serviced": null,"office_company_name": "Real Broker (GSMLS)","company_website": "https://onereal.com","review_count": 16,"agent_photo": "https://ap.rdcpix.com/ba2250382f772fd28438f8bb19bd12bar-c2189780567rd-w144_h144.jpg","zip_code": "07101"}
This agent came from a recorded run; the service areas are shortened here. When an agent's profile can't be read, the row has the same fields, with only the name, profile link, listing counts, brokerage name, review count, photo and ZIP code filled in, plus an error_reason of detail_fetch_failed or missing_profile_id.
How does it work?
The actor reads the same public agent directory any visitor sees on Realtor.com, without a Realtor.com account. For each ZIP code it pages through the agent list in the sort order you choose, then opens each agent's public profile to collect the phone numbers, brokerage, service areas and sales counts. Unlike a browser-based Realtor.com scraper, it works over plain web requests. If Realtor.com starts blocking requests, the actor retries and switches to rotating proxies on its own. It returns only publicly visible data — what any visitor sees without logging in. The output fields stay the same from run to run, so your code and spreadsheets keep working when Realtor.com changes its pages.
How do you integrate Realtor.com Agent Scraper into your stack?
This Realtor.com agent data extractor works with what you already use: the REST API from any language, MCP for AI agents, and no-code tools. If you were looking for a Realtor.com API alternative for agent data, this is it: one HTTP call returns JSON.
MCP integration for AI agents
Add the Apify MCP server to your AI client with one command:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/realtor-com-agent-scraper"
This registers Realtor.com Agent Scraper as a tool your agent can call directly. Ask your agent for the agents in a ZIP code and it runs the actor and reads the JSON back. It works in Claude Code, Cursor and Windsurf.
No-code tools (n8n, Make, LangChain)
n8n: add the Apify node and choose "Run an Actor", or use the HTTP Request node pointed at the run-sync endpoint with your token. Map the agent rows into your CRM or a Google Sheet in the next node.
Make: use the Apify app's "Run an Actor" module, then "Get Dataset Items" to pull the agents into the rest of your scenario.
LangChain: install langchain-apify and wrap the actor with ApifyActorsTool("realtor-com-agent-scraper") so your agent can request agents by ZIP code.
Is it legal to scrape Realtor.com data?
Collecting publicly available data from Realtor.com is generally lawful, as long as you stay out of logged-in areas and private information. This actor returns only publicly available data — what any visitor sees without logging in. Agent names and phone numbers are personal data under laws such as GDPR, so scraping public data is generally permissible, but storing and using it must comply with local data-protection law, and outreach calls or messages must follow the rules that apply to you. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What fields does Realtor.com Agent Scraper return?
It returns each agent's name, office and mobile phone numbers, brokerage name and website, service areas, and counts of homes for sale and sold, plus the review count, profile link and photo. See the data fields section for the full list.
Does Realtor.com Agent Scraper require a Realtor.com account or login?
No. Only public agent data is extracted, and no credentials are needed.
How fast does Realtor.com Agent Scraper run?
A recorded run collected 60 agents from 2 ZIP codes in 13.3 seconds, with the first agent saved after 1.5 seconds. Every run reads live data from Realtor.com, not a cache.
What happens if an agent's profile can't be read or a ZIP code doesn't exist?
An agent whose profile cannot be read still gets a row with the details from the agent list, the other fields set to null and an error_reason; that row is not charged, so filter on error_reason in your code. If a ZIP code's agent list can't be loaded at all, the actor logs it and moves on to the next ZIP code. Realtor.com can return a nearby agent list for a ZIP code it doesn't recognise, so check the ZIP codes you enter.
Can I scrape multiple Realtor.com agents at once?
Yes. To scrape Realtor.com agents in bulk, add as many ZIP codes as you need to the ZIP codes list and set the maximum agents per ZIP code; one run collects them all.
Does Realtor.com Agent Scraper work with Claude, ChatGPT, and other AI agent tools?
Yes — Realtor.com Agent Scraper is available as an MCP tool. Register it in Claude Code, Cursor or Windsurf with claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/realtor-com-agent-scraper". Any agent that can call an HTTP endpoint can use the REST API directly.
Does Realtor.com Agent Scraper return data in a format LLMs can use directly?
Yes. Each agent is typed, normalized JSON with consistent field names, so there is no HTML parsing and no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool — no transformation step.
What happens when Realtor.com changes its layout or updates its anti-bot system?
The actor is maintained, and when Realtor.com changes, it is updated so your calls keep returning the same JSON fields with no changes on your end.
Can I use Realtor.com Agent Scraper without managing proxies or browser infrastructure?
Yes. Retries and the switch to rotating proxies when Realtor.com blocks requests run on the actor's side. You send one request and get structured JSON back, with no proxy accounts, no headless browser setup and no maintenance.
Which Realtor.com agent fields work best for AI training data and RAG indexing?
For RAG, use the text fields: agent name, brokerage name and service areas. For training data, use the numbers: homes for sale, homes sold and review count. All fields are plain strings and integers, so no normalization is needed.
Your feedback
Found a bug or missing a field? Let us know in the actor's Issues tab. Every report is read, and fixes ship as new versions of the actor.