Realtor Email Scraper (Cheap)
Pricing
from $1.99 / 1,000 results
Realtor Email Scraper (Cheap)
Realtor contact email extractor that fetches agent names, emails, phones, and office details from Realtor.com listings using property IDs or US addresses, returning one flat row per agent.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Realtor Email Scraper

Realtor.com shows you the listing agent's name and a contact button, but pulling the actual email, phone, and brokerage for a list of properties means clicking through every page by hand. This scraper skips that. Give it a US address or a Realtor.com listing ID and it returns the listing agent's email, phone, name, license, and brokerage details next to the property's price, beds, baths, and address — one flat row per agent. Mix addresses and IDs in the same run, feed it one property or a few thousand, and pay only for what you scrape.
What you get
Every agent on a listing becomes its own row, with the property details repeated on each row so the dataset stands on its own. A listing with two agents gives you two rows; a listing with no agent still writes a row so nothing is quietly dropped. Three groups of data:
- Agent contact —
agentFullName,agentEmailAddress,agentPhoneNumber,agentRole,agentWebsite,agentLicenseId - Brokerage —
brokerageName,brokerageEmail,brokeragePhone,brokerageCity,brokerageState - Property —
lookupValue,listingId,streetAddress,cityName,stateCode,postalCode,askingPrice,bedroomCount,bathroomCount,floorAreaSqft,propertyCategory
Quick start
- Hit Try for free and open the input form.
- Paste your US addresses or numeric listing IDs into Addresses or listing IDs, one per line. Both kinds work together.
- Pick a proxy type and set a Results limit if you want to cap the run.
- Press Start, then export the results as JSON, CSV, Excel, or XML when it finishes.

Use cases
- Listing agent outreach — build mailing lists of agents tied to specific properties for new-listing announcements or open-house invites
- Mortgage and lender prospecting — reach agents on fresh or price-reduced listings to introduce lending and referral programs
- CRM enrichment — append verified agent emails and phones to property records, keyed on an address or a listing ID
- Brokerage research — see which offices list what, where, and at what price across a market
- Investor sourcing — find the agents behind distressed or reduced listings to open acquisition conversations
- Vendor and partner marketing — collect agent contacts to pitch software, inspection, staging, or photography services
Input
| Field | Type | Required | Description |
|---|---|---|---|
lookupList | array of strings | Yes | US property addresses or numeric Realtor.com listing IDs, one per line. Mix both in the same run. |
resultsLimit | integer | No | How many properties to handle per run. Use 0 for no cap. Default 0. |
requestTimeoutSeconds | integer | No | Seconds to wait on each HTTP request before moving on. Default 45. |
proxyConfiguration | object | No | Proxies that route your requests. Defaults to US; switch to Residential if you hit repeated failures. |
Example input
{"lookupList": ["1200 Brickell Bay Dr, Miami, FL 33131","742 Evergreen Ter, Springfield, IL","9087654321"],"resultsLimit": 0,"requestTimeoutSeconds": 45,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyCountry": "US" }}
Output
You get one row per listing agent. The property fields repeat on every agent row, so a listing with two agents produces two rows that share the same property details. A property that resolves but lists no agent still writes a row with the property data and blank agent fields, and anything that fails to resolve writes a row carrying your original lookup plus an errorMessage.
Example output
{"lookupValue": "1200 Brickell Bay Dr, Miami, FL 33131","listingId": "3055678901","streetAddress": "1200 Brickell Bay Dr","cityName": "Miami","stateCode": "FL","postalCode": "33131","askingPrice": 1250000,"bedroomCount": 3,"bathroomCount": 2,"floorAreaSqft": 1900,"propertyCategory": "condo","agentFullName": "Carlos Mendez","agentEmailAddress": "carlos@miamiproperty.com","agentRole": "seller","agentPhoneNumber": "3055551234","agentWebsite": "https://www.miamiproperty.com","agentLicenseId": "FL-334512","brokerageName": "Miami Property Group","brokerageEmail": "info@miamiproperty.com","brokeragePhone": "3055550000","brokerageCity": "Miami","brokerageState": "FL","errorMessage": ""}
Output fields
| Field | Type | Description |
|---|---|---|
lookupValue | string | The address or listing ID exactly as you entered it. |
listingId | string | The numeric Realtor.com listing ID your input resolved to. |
streetAddress | string | Full street address of the property. |
cityName | string | City the property sits in. |
stateCode | string | Two-letter state code, such as TX, FL, or CA. |
postalCode | string | ZIP or postal code of the property. |
askingPrice | number | Price the property is currently listed at. |
bedroomCount | number | Number of bedrooms. |
bathroomCount | number | Number of bathrooms. |
floorAreaSqft | number | Interior floor area in square feet. |
propertyCategory | string | Property kind, such as single_family, condo, or multi_family. |
agentFullName | string | Full name of the listing agent. |
agentEmailAddress | string | Public email address for the agent. |
agentRole | string | The agent's role on this listing, such as seller or buyer. |
agentPhoneNumber | string | Direct phone number for the agent. |
agentWebsite | string | Website URL for the agent or brokerage. |
agentLicenseId | string | State license number held by the agent. |
brokerageName | string | Name of the brokerage office. |
brokerageEmail | string | Public email address for the brokerage office. |
brokeragePhone | string | Phone number for the brokerage office. |
brokerageCity | string | City the brokerage office is based in. |
brokerageState | string | State code of the brokerage office. |
errorMessage | string | Set when a property could not be fetched; empty on success. |
Tips for best results
- Keep proxies on US. Realtor.com leans heavily toward US traffic, so the input ships with
apifyProxyCountry: "US". If a large batch throws frequent failures, switch the proxy to Residential. - Mix addresses and IDs freely. A plain address like
"123 Main St, Austin TX"and a numeric ID like"9087654321"both work in the samelookupList. The actor decides which is which on its own. - Watch the
errorMessagefield. Any row with a non-emptyerrorMessagemeans that input did not resolve. Filter those out, then re-run them in a smaller batch. - Cap test runs. Set
resultsLimitto a small number while you confirm the output fits your pipeline, then drop it back to0for the full list. - Pipe it straight into your tools. When a run finishes, the Apify Google Sheets integration or a webhook can push agent contacts into HubSpot, Mailchimp, Airtable, or your outreach platform.
How can I use Realtor.com agent data?
How can I use the Realtor Email Scraper to build a list of listing agents in a market? Paste a batch of addresses or Realtor.com listing IDs for the area you care about and each one comes back with the listing agent's email, phone, name, and brokerage next to the property's price and location. Group the rows by city or ZIP to see which agents and offices are active where, and you have a ready contact list for outreach.
How can I find a real estate agent's email from a property address?
Drop a single US address into lookupList. The scraper resolves it to a Realtor.com listing, reads the advertiser data, and returns the agent's public email, direct phone, license, and brokerage in one row — no Realtor.com login or API key needed.
How can I enrich my CRM with Realtor.com agent contacts at scale?
Already have a list of addresses or listing IDs? Set resultsLimit to 0 and feed the whole list. Every property returns one row per agent with verified contact fields, so you can match results back to your records on the lookupValue and append fresh agent emails and phone numbers in bulk.
How do I export the scraped Realtor.com data to CSV or Google Sheets? After a run finishes, open the dataset and export to CSV, JSON, or Excel in one click, or connect the Apify Google Sheets integration to send agent contacts straight into a sheet your team already works from.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. 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.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.