Zillow Agent Leads — Emails, Phones & Sales History avatar

Zillow Agent Leads — Emails, Phones & Sales History

Pricing

from $35.00 / 1,000 agents

Go to Apify Store
Zillow Agent Leads — Emails, Phones & Sales History

Zillow Agent Leads — Emails, Phones & Sales History

Zillow real-estate agent leads by area or name: email, phone, brokerage, licences, live listing counts, recent sales and reviews. Filter by production, review count, Premier Agent status, and team vs solo. Export to CSV, JSON or Excel.

Pricing

from $35.00 / 1,000 agents

Rating

0.0

(0)

Developer

Andrey Afanasenko

Andrey Afanasenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Apify Actor

Give it a ZIP code or a city and get back the real-estate agents working there — with their email address, phone number, brokerage, and how much they actually sell.

Most agent lists tell you who exists. This one tells you who is worth calling: how many homes each agent closed in the last twelve months, what price band they work in, how many listings they have live right now, and how many reviews they have earned.

Every agent is returned as one flat row, ready to paste into a CRM or a mail-merge.


🎯 What it does

You give the Actor areas (78704, Austin, TX) or names (Eric Bramlett). For each agent it finds, it returns three layers of information in a single row:

LayerWhat you get
ContactName, brokerage, email, cell and business phone, business address, profile photo, profile link
ProductionSales in the last 12 months, sales in the area you searched, lifetime sales, price band handled, live listing count, rental listing count, and a sample of the five most recent sales with dates and addresses
StandingReview count and average, reviews split by what the client hired them for, Premier Agent status, Top Agent badge, years in the industry, specialities, languages, licences, service areas

Zillow lists both individual agents and teams. Every row says which it is (isTeam), and a team row also carries the roster of its named members with their own review counts — so you can decide whether to approach the brand or the person.


📦 Output sample

One real row, trimmed for length:

{
"agentName": "Eric Bramlett",
"brokerageName": "Bramlett Partners",
"email": "eric+1@bramlett.me",
"phoneCell": "(512) 872-3272",
"businessStreet": "6850 Austin Center Blvd, Bldg II | Ste 180",
"businessCity": "Austin",
"businessState": "TX",
"businessZip": "78731",
"isTeam": true,
"teamMemberCount": 106,
"teamMembers": [
{ "name": "Will Mackintosh", "screenName": "willmackintosh", "reviewCount": 165, "reviewAverage": 5 },
{ "name": "Kasey Gilliam", "screenName": "kaseyg16", "reviewCount": 114, "reviewAverage": 5 }
],
"salesLast12Months": 801,
"salesInSearchArea": 3316,
"salesAllTime": 5771,
"priceRange": "$100K - $9.9M",
"activeListingCount": 156,
"rentalListingCount": 24,
"recentSoldSample": [
{ "zpid": 29492948, "soldDate": "8/21/2026", "price": "--", "address": "1100 S Trace Dr, Austin, TX, 78745", "represented": "Seller" }
],
"reviewCount": 2191,
"reviewAverage": 5,
"reviewBreakdown": {
"All reviews": 2191,
"Helped me buy": 1198,
"Helped me sell": 414,
"Helped me buy and sell": 215
},
"isPremierAgent": false,
"yearsInIndustry": 23,
"specialties": ["Buyer's Agent", "Listing Agent", "Relocation", "Property Management"],
"serviceAreas": ["Austin, TX", "Round Rock, TX", "Cedar Park, TX", "Lakeway, TX"],
"profileUrl": "https://www.zillow.com/profile/ericbramlett",
"enrichmentStatus": "enriched"
}

A field is null when the agent's profile does not publish it. Nothing is padded with a placeholder.


⚡ Quick start

  1. Open the Input tab.
  2. Put one area per line under Areas to search — a ZIP code like 78704 or a city like Austin, TX both work.
  3. Leave Max agents to return at 25 for a first look.
  4. Press Start.
  5. Open the Storage → Dataset tab and switch the view to Contacts for a clean outreach list, or Full details for everything.

Minimal input:

{
"agentLocations": ["78704"],
"maxAgentsPerSearch": 25
}

🧭 When to use it

  • Mortgage brokers and lenders — find the agents who actually close deals in your lending area, ranked by sales in the last twelve months rather than by who paid for placement.
  • Title, escrow, insurance and home-service vendors — build a territory list of agents with live listings, so you approach people who have business to refer this month.
  • Brokerage recruiters — see a competitor's roster, each member's review count, and how long they have been in the industry, before you make an approach.
  • Real-estate SaaS and marketing agencies — filter to Premier Agents, the segment already spending money on lead generation.
  • Investors and wholesalers — find the listing agents who move the most property in a ZIP, and reach them directly rather than through a form.
  • Market researchers — measure how many agents compete in an area, what price bands they work in, and how concentrated production is.

🛠 Input

🎯 Search agents

FieldWhat it does
agentLocationsOne area per line. ZIP code or City, State.
agentNamesOne name per line. Partial names match broadly.
maxAgentsPerSearchHard ceiling on agents returned and charged. 0 = no ceiling.

You can combine areas and names in one run. Results are deduplicated, so an agent found by both is returned once and charged once.

🔬 Narrow the list

FieldWhat it does
minSalesLast12MonthsSkip agents below this recent production.
minReviewCountSkip agents with fewer published reviews.
teamFilterBoth, solo agents only, or teams only.
onlyWithEmailSkip agents whose profile publishes no email.
onlyPremierAgentsKeep only agents who pay Zillow for placement.

Every filter runs before the agent is charged. An agent you filter out costs you nothing — the run only bills for rows that reach your dataset.


💰 Pricing

This Actor uses pay per event. One event, Agent, fires once per agent that lands in your dataset.

Your Apify planPrice per agent
Free$0.05
Bronze$0.045
Silver$0.04
Gold$0.035
Platinum$0.032
Diamond$0.03

A run that returns nothing costs nothing. Agents removed by your filters are not charged. There is no per-request fee and no subscription on top.


🆓 Free vs paid plan

Free planPaid plan
Agents per run10Unlimited (or your own ceiling)
Contact details
Production and listing data
Filters

On the free plan the agents the cap held back are still delivered as rows, with every looked-up column empty and a whyNotEnriched note — so you can always see how many more the search matched.


🧪 Filter recipes

Top producers in a ZIP, contactable by email

{ "agentLocations": ["78704"], "minSalesLast12Months": 20, "onlyWithEmail": true }

Solo agents to recruit, established but not enormous

{ "agentLocations": ["Austin, TX"], "teamFilter": "solo", "minReviewCount": 15 }

Agents already buying leads

{ "agentLocations": ["Phoenix, AZ"], "onlyPremierAgents": true }

📡 Live status & storage records

While a run is going, the Live Status link on the run page shows agents found, agents saved, spend so far and the free-plan ceiling. Three records are written to the run's key-value store:

RecordWhat it holds
RUN_SUMMARYHow the run ended, agents saved, paid events fired, wall-clock seconds
USER_MESSAGEA plain-language note when a run needs explaining — an empty result, a free-plan cap, a demo run
FREE_LIMITS_APPLIEDWhich free-plan ceilings changed this run's output

🤖 Programmatic / API use

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('afanasenko/zillow-agent-leads-scraper').call({
agentLocations: ['78704', 'Austin, TX'],
maxAgentsPerSearch: 50,
minSalesLast12Months: 10,
onlyWithEmail: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].email, items[0].salesLast12Months);

❓ FAQ

The Actor reads agent profile pages that Zillow publishes openly, with no login. It collects business contact details that agents choose to publish so clients can reach them. How you use those details is your responsibility — outreach in the US is governed by CAN-SPAM, the TCPA and state law.

Do I get an email address for every agent?

Most agents publish one, but not all. Set onlyWithEmail to true and rows without an email are skipped before they are charged.

What is the difference between a team row and an agent row?

Zillow lists teams and brokerages alongside individuals. On a team row, isTeam is true and the sales figures belong to the whole team, not to one person. The teamMembers array names the individuals, so you can search them by name afterwards if you need per-person numbers.

Why does one agent show a huge lifetime sales number?

Because that row is a brokerage. Check isTeam before comparing production between rows.

What does price = -- mean in the recent-sales sample?

The sale is recorded but its price is not published. The date, address and which side the agent represented are still there.

Can I get every listing an agent has ever sold?

Not in one run, by design. A large brokerage has tens of thousands of sold listings and pulling them all would cost far more than the agent row is worth. You get the counts, plus the five most recent sales.

How do I search a whole metro area?

Put several ZIP codes on separate lines under Areas to search. Results are deduplicated across all of them.

Why did my run return no agents?

Either the area matched nobody, or every agent found was removed by your filters. The USER_MESSAGE record in the run's storage says which. An empty run is never charged.

Can I schedule this?

Yes. Use Apify's scheduler to re-run a territory list weekly and diff the results to see who is new.


ActorWhat it does
Zillow Property & Agent Data ScraperProperty listings by ZIP, ZPID or URL, with the listing agent's contact details
Zillow Search by ZIPFocused ZIP-code property search
Zillow Search by URLPaste a Zillow search URL and get the listings behind it
Zillow MCP ServerThe same Zillow property data as tools for an AI agent

🛟 Support & feedback

Something missing, wrong, or slow? Open an issue on the Issues tab of this Actor. Every one is read, and a short note tends to ship a fix within a few days.


⚖️ Disclaimer

This Actor collects publicly available information from agent profile pages. It is not affiliated with, endorsed by, or connected to Zillow Group, Inc. Use the data in line with applicable law and with the terms of the sites involved.