Realtor.com Agent Directory Scraper avatar

Realtor.com Agent Directory Scraper

Pricing

from $3.61 / 1,000 results

Go to Apify Store
Realtor.com Agent Directory Scraper

Realtor.com Agent Directory Scraper

Scrape agent profiles from the realtor.com directory: photo, phone, brokerage, licence, ratings and sales stats. Export to CSV, Excel, JSON or XML.

Pricing

from $3.61 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

🏡 Realtor.com Agent Directory Scraper

🚀 Export a whole metro of real estate agents in seconds. 42 fields per agent, 300 profiles per API call, 92,074 agents matching a single Miami search and 37,814 matching Austin.

This Actor reads the public realtor.com agent directory and turns it into a flat table. Give it a city, a ZIP code or a directory URL, and every matching agent comes back with a headshot, a phone number, the brokerage and office, the state licence number, years of experience, the star rating and review count, live and sold listing counts, the listing price band, the service areas they cover, the languages they speak and their published biography.

Coverage is national. The directory answers with matching_rows for every search, so you always know how deep the pool is before you pay for it: 37,814 agents in Austin TX, 92,074 in Miami FL, 3,420 in ZIP 78701. Paging runs 300 agents per call and offsets tested cleanly past 37,000, so a full metro export is a matter of minutes, not hours.

🎯 Target Audience💡 Primary Use Cases
Real estate brokerages and recruitersBuild a ranked recruiting list of producing agents in a target metro
PropTech and mortgage lead-gen teamsSource agent contacts with licence numbers and live listing volume
Title, escrow and home-services vendorsFind the agents who actually close deals in your service area
Market analysts and researchersMeasure agent density, experience curves and price bands by city
CRM and outbound sales teamsKeep a territory roster fresh with phone numbers and brokerage moves

📋 What the Realtor.com Agent Directory Scraper does

  1. Resolves whatever you type ("Austin, TX", "Brooklyn, NY", "90210") through the directory's own location lookup, so you never have to guess a URL slug.
  2. Pages the directory search 300 agents at a time and reports the true total match count.
  3. Enriches every agent with their full public profile: phones, licence, MLS record, service areas, languages, specializations, services offered and social links.
  4. Applies the directory's own filters: sort order, buyer or seller representation, language spoken and listing price range.
  5. Emits one flat row per agent, ready for CSV, Excel, JSON or XML.

💡 Why it matters: the realtor.com directory is the single largest public roster of licensed US agents with verified brokerage affiliation and MLS licence numbers. Most agent lists sold to brokerages are stale scrapes of Google Maps. This one carries the licence number and the sold count, which is what tells a recruiter whether an agent is actually producing.

🎬 Full Demo (🚧 Coming soon)

A walkthrough video is on the way.

📊 Output

FieldTypeDescription
🖼 imageUrlstringAgent headshot hosted on realtor.com's image CDN
👤 fullNamestringAgent display name as published
🔗 profileUrlstringCanonical realtor.com profile URL
🆔 agentIdstringStable 24 character profile ID
🧾 fulfillmentIdstringAdvertiser fulfillment ID used across realtor.com systems
🏅 isRealtorstringYes when the agent is a National Association of REALTORS member
📣 isAdvertiserstringYes when the agent pays for directory placement
🤝 worksWithstringBuyers, Sellers or Buyers and sellers
🏢 brokerageNamestringBrokerage the agent hangs their licence with
🏬 officeNamestringLocal office name
📞 phonestringPrimary published phone number
☎️ officePhonestringOffice switchboard number
🌐 websitestringAgent, brokerage or office website
📜 licenseNumberstringState licence number, falling back to the primary MLS licence
🗺 licenseStatestringState that issued the licence
📆 firstYearstringFirst year in real estate
yearsOfExperienceintegerYears since firstYear
🧭 experienceLabelstringExperience as realtor.com words it, to the month
ratingAveragenumberAverage consumer star rating
💬 reviewsCountintegerPublished review count
👍 recommendationsCountintegerPublished recommendation count
🏷 forSaleListingsintegerActive listings right now
🔑 recentlySoldTotalintegerTotal recorded sales
📈 recentlySoldLast12MonthsintegerSales in the trailing twelve months
🗓 lastListingDatestringDate of the most recent new listing
🗓 lastSoldDatestringDate of the most recent closing
💵 listingPriceMinnumberBottom of the agent's price band, USD
💰 listingPriceMaxnumberTop of the agent's price band, USD
🏠 officeAddressstringOffice street address
🌆 officeCitystringOffice city
🇺🇸 officeStatestringOffice state code
📮 officePostalCodestringOffice ZIP code
📍 searchLocationstringThe search that produced the row
📝 biostringPublished biography
🗣 languagesarrayLanguages the agent lists
🎯 specializationsarraySelf declared specializations
🧭 serviceAreasarrayCities the agent serves, with state code
🛒 buyerServicesarrayServices offered to buyers
📤 sellerServicesarrayServices offered to sellers
📱 socialLinksarrayFacebook, Instagram, LinkedIn, X and YouTube links
🕒 scrapedAtstringISO 8601 timestamp of the extraction
errorstringPopulated only on a failed row

Three real records from a live run:

[
{
"imageUrl": "https://ap.rdcpix.com/381d8d485c470eec782153bae8c65638a-e1892575529rd-w144_h144.jpg",
"fullName": "Michael Friedman",
"profileUrl": "https://www.realtor.com/realestateagents/5680cfa3bb954c010069165a",
"agentId": "5680cfa3bb954c010069165a",
"fulfillmentId": "1631810",
"isRealtor": "Yes",
"isAdvertiser": "No",
"worksWith": "Buyers and sellers",
"brokerageName": "1848TX Realty",
"officeName": "1848TXRealty",
"phone": "(512) 948-5890",
"officePhone": "(512) 948-5890",
"website": "http://www.1848TXRealty.com",
"licenseNumber": "0623356",
"licenseState": "TX",
"firstYear": "2012",
"yearsOfExperience": 14,
"experienceLabel": "13 years 10 months of experience",
"ratingAverage": 5,
"reviewsCount": 238,
"recommendationsCount": 0,
"forSaleListings": 7,
"recentlySoldTotal": 35,
"recentlySoldLast12Months": 17,
"lastListingDate": "2026-07-22T21:56:35Z",
"lastSoldDate": "2026-09-04",
"listingPriceMin": 45000,
"listingPriceMax": 625000,
"officeAddress": "104 CANYON OAK LOOP",
"officeCity": "GEORGETOWN",
"officeState": "TX",
"officePostalCode": "78633",
"searchLocation": "Austin, TX",
"bio": "Unlocking Your Dream Home Journey!\nAs a dedicated Full-Time REALTOR, I thrive on building genuine connections with my clients to truly grasp their desires and requirements. \nMy approach is rooted in understanding, never in pushing towards a particular area or price point. Navigating the complexities of our dynamic and competitive market is my forte.\nWhether you're buying or selling, rest assured, I've got you covered with a wealth of experience and knowledge.\nCommunication is key, and I make it my priority to keep you informed every step of the way. Your comfort and confidence in the process matter most to me.\nLet's embark on this exciting journey together and exceed your expectations. Your dream home awaits!",
"languages": [],
"specializations": [
"First Time Home Buyers",
"Relocation Assistance",
"Military Move",
"Negotiation Specialist",
"Neighborhood Specialist",
"Buyer's agent",
"Seller's agent"
],
"serviceAreas": [
"Austin, TX",
"Cedar Park, TX",
"Georgetown, TX",
"Hutto, TX",
"Jarrell, TX",
"Liberty Hill, TX",
"Pflugerville, TX",
"Round Rock, TX"
],
"buyerServices": [],
"sellerServices": [],
"socialLinks": [
"https://www.facebook.com/pages/Realtor/375070389327576",
"https://twitter.com/4friedman"
],
"scrapedAt": "2026-09-08T15:50:29.866Z",
"error": null
},
{
"imageUrl": "N/A",
"fullName": "Cassandra Rosales",
"profileUrl": "https://www.realtor.com/realestateagents/627da8100ae46dcbceace52b",
"agentId": "627da8100ae46dcbceace52b",
"fulfillmentId": "4851291",
"isRealtor": "Yes",
"isAdvertiser": "No",
"worksWith": "Not Disclosed",
"brokerageName": "Not Disclosed",
"officeName": "Exp Realty Llc",
"phone": "(469) 441-6911",
"officePhone": "(888) 519-7431",
"website": "http://exprealty.com/",
"licenseNumber": "0783541",
"licenseState": "TX",
"firstYear": "2004",
"yearsOfExperience": 22,
"experienceLabel": "21 years 11 months of experience",
"ratingAverage": 5,
"reviewsCount": 207,
"recommendationsCount": 0,
"forSaleListings": 9,
"recentlySoldTotal": 131,
"recentlySoldLast12Months": 71,
"lastListingDate": "2026-08-15T03:02:10Z",
"lastSoldDate": "2026-08-25",
"listingPriceMin": 139500,
"listingPriceMax": 560000,
"officeAddress": "9600 GREAT HILLS TRL # STE150 W",
"officeCity": "AUSTIN",
"officeState": "TX",
"officePostalCode": "78759",
"searchLocation": "Austin, TX",
"bio": "Not Disclosed",
"languages": [],
"specializations": [],
"serviceAreas": [],
"buyerServices": [],
"sellerServices": [],
"socialLinks": [],
"scrapedAt": "2026-09-08T15:50:29.866Z",
"error": null
},
{
"imageUrl": "https://ap.rdcpix.com/164029981/2d8a488d94c864c65a30e6c4b11de5c0a-c0rd-w144_h144.jpg",
"fullName": "Rudy Saenz, PSA",
"profileUrl": "https://www.realtor.com/realestateagents/56a83f9089a68901006be9cb",
"agentId": "56a83f9089a68901006be9cb",
"fulfillmentId": "1848081",
"isRealtor": "Yes",
"isAdvertiser": "No",
"worksWith": "Buyers and sellers",
"brokerageName": "EXP Realty",
"officeName": "eXp Realty, LLC",
"phone": "(210) 606-3851",
"officePhone": "(888) 519-7431",
"website": "http://realestateandracing.com/",
"licenseNumber": "Not Disclosed",
"licenseState": "N/A",
"firstYear": "2013",
"yearsOfExperience": 13,
"experienceLabel": "13 years 8 months of experience",
"ratingAverage": 5,
"reviewsCount": 143,
"recommendationsCount": 0,
"forSaleListings": 4,
"recentlySoldTotal": 20,
"recentlySoldLast12Months": 12,
"lastListingDate": "2026-08-20T21:32:58Z",
"lastSoldDate": "2026-08-31",
"listingPriceMin": 259900,
"listingPriceMax": 1090000,
"officeAddress": "9600 Great Hills Trail",
"officeCity": "Austin",
"officeState": "TX",
"officePostalCode": "78759",
"searchLocation": "Austin, TX",
"bio": "Rudy Saenz personifies the blend of commitment to his clients and business acumen. Motivated by a passion to champion for his real estate buyers and sellers, Saenz possesses a deep sense of service and the desire to make an enduring impact on the world.\n\nA native of San Antonio, Rudy’s first career was in the automotive performance industry - working on top show cars, swamp boats, gyro- copters, small planes, speed boats, yachts, street performance cars and quarter mile drag race applications. In 2011, Saenz and his team won two championships and set records in the 10.5 Outlaw tire class. Rudy subsequently shifted his career to sales, and was ranked in the Top 4% in the nation of certified automotive salespersons.\n\nShaped by an intuitive knowledge of strategy and the exhilaration of the competition of racing, Rudy has catapulted to the top of the real estate industry as an expert negotiator on behalf of his clients as exemplified by his achievement of Rookie of the Year for Better Homes and Gardens.\nRudy’s plan is simple, “I succeed by simply treating every client as if I were purchasing the home for myself!”",
"languages": [],
"specializations": [
"1st Time Buyers",
"Investments",
"Buyers Agent",
"Listing Agent",
"Buyer's agent",
"Seller's agent"
],
"serviceAreas": [
"Aransas Pass, TX",
"Atascosa, TX",
"Austin, TX",
"Bandera, TX",
"Bergheim, TX",
"Blanco, TX",
"Boerne, TX",
"Bulverde, TX",
"Canyon Lake, TX",
"Castroville, TX",
"Center Point, TX",
"Cibolo, TX",
"Comfort, TX",
"Concan, TX",
"Converse, TX",
"Corpus Christi, TX",
"D'Hanis, TX",
"Dale, TX",
"Dallas, TX",
"Devine, TX",
"Dripping Springs, TX",
"Fentress, TX",
"Fischer, TX",
"Fredericksburg, TX",
"Gregory, TX",
"Harwood, TX",
"Helotes, TX",
"Hondo, TX",
"Hunt, TX",
"Ingleside, TX",
"Ingram, TX",
"JBSA Ft Sam Houston, TX",
"JBSA Randolph, TX",
"Johnson City, TX",
"Kendalia, TX",
"Kerrville, TX",
"Kingsbury, TX",
"Kingsville, TX",
"Knippa, TX",
"Kyle, TX",
"LaCoste, TX",
"Lockhart, TX",
"Luling, TX",
"Lytle, TX",
"Marion, TX",
"Martindale, TX",
"Maxwell, TX",
"McQueeney, TX",
"Medina, TX",
"Moore, TX",
"Natalia, TX",
"New Braunfels, TX",
"Odem, TX",
"Portland, TX",
"Poteet, TX",
"Prairie Lea, TX",
"Sabinal, TX",
"San Antonio, TX",
"San Marcos, TX",
"Schertz, TX",
"Somerset, TX",
"Spring Branch, TX",
"Staples, TX",
"Taft, TX",
"Universal City, TX",
"Uvalde, TX",
"Von Ormy, TX",
"Willow City, TX",
"Wimberley, TX",
"Yancey, TX"
],
"buyerServices": [],
"sellerServices": [],
"socialLinks": [
"https://www.facebook.com/realestateandracinggroup",
"https://www.instagram.com/eal_estate_and_racing_group",
"https://www.linkedin.com/in/real-estate-and-racing-group/",
"https://twitter.com/CrownClosings",
"https://www.youtube.com/@realestateandracinggroup"
],
"scrapedAt": "2026-09-08T15:50:29.866Z",
"error": null
}
]

✨ Why choose this Actor

  • 42 fields per agent, not five. Headshot, phone, licence, MLS status, sold counts, price band, service areas, languages, specializations, services and social links in one row.
  • The licence number is in the row. Most agent scrapers stop at name and phone. The state licence and the primary MLS licence let you verify an agent before you call them.
  • Production signal, not vanity metrics. recentlySoldLast12Months separates the agents who close from the agents who list.
  • Honest match counts. Every search reports matching_rows, so you know the size of the pool before you export it.
  • No proxy needed. The Actor talks to the directory's own JSON endpoint. The proxy input exists and defaults to off, which keeps runs fast and cheap.
  • Location input that just works. Type a city, a ZIP or paste a directory URL. The Actor resolves the slug through realtor.com's own lookup.
  • Filters that are real. Every filter exposed here was tested against the live endpoint and provably changes the result count.

📈 How it compares to alternatives

This ActorTypical realtor.com agent scraperGoogle Maps agent scrapers
Fields per agent428 to 156 to 10
State licence numberYesRarelyNo
Sold count, trailing 12 monthsYesRarelyNo
Listing price bandYesNoNo
Service areas by cityYesNoNo
Languages spokenYesNoNo
Email addressNo, the directory does not publish itSometimes, from third party enrichmentSometimes
Proxy requiredNoUsually residentialUsually
Reports the true match countYesNoNo

Stated plainly: the public realtor.com profile carries no email address and no ZIP list. serviceAreas holds city names with a state code, not ZIP codes, and there is no email column, because inventing one would mean guessing. Everything else in the table is read straight from the source.

🚀 How to use

  1. Create a free Apify account. New accounts get $5 in free credit: sign up here.
  2. Open the Actor and set Location to the city or ZIP you care about, for example Austin, TX or 90210. Paste realtor.com directory URLs into Directory or profile URLs instead if you already have them.
  3. Set Max Items to the number of agent profiles you want.
  4. Optionally narrow with Sort by, Agent works with, Languages spoken and the listing price range.
  5. Click Start, then download the dataset as CSV, Excel, JSON or XML, or pull it from the API.

💼 Business use cases

Brokerage recruiting

Pull every agent in your metro sorted by Most sales, then filter the export on recentlySoldLast12Months and yearsOfExperience. You get a ranked shortlist of producing agents with the phone number and the brokerage they are currently at, which is the entire top of a recruiting funnel in one file.

Mortgage and title lead generation

Loan officers and title reps sell to agents who close. Export a ZIP code, sort by sales, and work down the list. licenseNumber and licenseState let compliance verify the agent before the first call, and officeAddress gives the field rep a route to drive.

Vendor and service territory planning

Photographers, stagers, inspectors and home warranty companies need to know where the volume is. Export several cities, then group by officeCity and sum forSaleListings to see which submarkets carry enough active inventory to justify a rep.

Competitive and market research

listingPriceMin and listingPriceMax describe the price band each agent actually works in. Aggregate them across a city to map which brokerages own the luxury tier and which own the entry tier, then track how the mix shifts quarter over quarter.

🔌 Automating Realtor.com Agent Directory Scraper

Schedule the Actor daily or weekly in the Apify console, then move results wherever your team lives:

  • Make and Zapier: trigger on a finished run and push new agents into HubSpot, Pipedrive or Salesforce.
  • Slack: post a digest of newly listed agents in your territory each Monday morning.
  • Airbyte: sync the dataset into Snowflake, BigQuery or Postgres for joins against your own CRM.
  • GitHub Actions: call the Actor from a workflow and commit the CSV to a data repo.
  • Google Drive and Sheets: write each run to a spreadsheet your sales team already opens.

🌟 Beyond business use cases

  • Research: study how agent density, experience and price bands vary across US metros using a consistent public roster.
  • Personal: shortlist agents near you by rating, sales volume and the language you prefer to do business in before you pick up the phone.
  • Non-profit: housing advocacy groups can map professional coverage in underserved ZIP codes.
  • Experimentation: the directory reports a true match count for every filter combination, which makes it a clean dataset for practising sampling and stratification.

🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or Gemini:

I am using the ParseForge Realtor.com Agent Directory Scraper on Apify. It returns one row per agent with fields including fullName, brokerageName, phone, licenseNumber, licenseState, yearsOfExperience, ratingAverage, reviewsCount, forSaleListings, recentlySoldLast12Months, listingPriceMin, listingPriceMax, serviceAreas, languages and specializations. Help me design a scoring model that ranks agents for a brokerage recruiting campaign.

❓ Frequently Asked Questions

❓ Do I need a proxy? No. The Actor uses the directory's own JSON endpoint, which answers plain HTTP requests. The proxy input is there and defaults to off. Turn it on only for very large runs or if your own network is rate limited.

❓ Does the output include email addresses? No. The public realtor.com agent profile does not publish an email address, so there is no email column. Any scraper that shows one for this source is enriching from somewhere else.

❓ Does serviceAreas contain ZIP codes? No. The source publishes served areas as city plus state code, so that is what the column holds. Office ZIP is available separately as officePostalCode.

❓ How many agents can I export from one search? As many as the search matches. Austin TX returns 37,814 and Miami FL returns 92,074. The Actor pages 300 at a time and offsets were tested past 37,000 with no degradation.

❓ What URL formats are accepted? Anything under realtor.com/realestateagents/. City slugs (/austin_tx), ZIP codes (/78701), page segments (/pg-3), sort segments (/sort-ratings), language (/lang-spanish), price (/price-500000_1000000), name (/agentname-john-smith) and individual profile URLs are all read and applied.

❓ Can I search by agent name? Yes. Fill Agent name contains or paste a URL with an agentname- segment. It combines with the location filter.

❓ How current is the data? It is read live on every run. lastListingDate and lastSoldDate come straight from the agent's activity record, so you can see how fresh each agent's pipeline is.

❓ Why is licenseNumber sometimes different from the number on the state site? The Actor prefers the licence realtor.com publishes on the profile, and falls back to the primary MLS licence when the profile field is blank. Some agents carry several MLS memberships with slightly different formatting of the same number.

❓ What happens when a field is missing? The row carries a sentinel instead of a null: Not Disclosed when the source withholds the value and N/A when it does not apply. Arrays come back as []. Only the error column is ever null.

❓ Can I filter to REALTOR members only? Not as an input, because the directory's realtor-only filter takes an undocumented object shape. Every row carries isRealtor, so filter the export on that column instead.

❓ Do free accounts work? Yes. Free plans are capped at 10 items per run, which is enough to inspect the schema. Paid plans go to 1,000,000.

❓ Is this affiliated with Realtor.com? No. See the disclaimer at the bottom.

🔌 Integrate with any app

Every run writes to an Apify dataset, reachable from the REST API, the JavaScript and Python clients, and the Apify integrations catalogue. Export as CSV, Excel, JSON, XML, RSS or HTML table, or stream it into your warehouse.


💡 Pro Tip: browse the complete ParseForge collection.

🆘 Need Help? Open our contact form with your run ID, your input and what you expected.

⚠️ Disclaimer: This is an independent tool. It is not affiliated with, endorsed by or sponsored by Realtor.com, Move Sales Inc. or the National Association of REALTORS. It collects only publicly available professional listing data from the public agent directory. You are responsible for using the exported data in line with applicable law and the source's terms.