Zillow Agent Scraper - Real Estate Agents & Sales
Pricing
from $1.80 / 1,000 agent scrapeds
Zillow Agent Scraper - Real Estate Agents & Sales
Find the real estate agents working in any US city on Zillow, busiest first: review score, career and last-12-month sales, average sale price, price range and Top Agent badge, plus their current listings when available. Filter to Top Agents or agents with recent sales.
Pricing
from $1.80 / 1,000 agent scrapeds
Rating
0.0
(0)
Developer
Kamil Ertekin
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Type a US city and get the real estate agents Zillow lists there, busiest first. Each row has review score, review count, career sales, sales in the last 12 months, average sale price, price range and Top Agent status. The agent's current listings are included when available. Recruiters, brokerages, lenders and vendors use it to build prospect lists. It costs $3.00 per 1,000 agents with no start fee.
What you get
One row per agent or team:
| Field | Example | Notes |
|---|---|---|
agentName | "Lindsay Neuren" | Agent or team lead name |
profileUrl · photoUrl | https://www.zillow.com/profile/speedandneurengroup | Zillow profile and headshot |
encodedZuid | "X1-ZUw4ks8wbcrabt_4n5nw" | Zillow's agent ID. Stable, so use it to de-duplicate across runs |
isTopAgent | true | Zillow's Top Agent badge |
isTeam | true | The directory card belongs to a team |
reviewAverage · reviewCount | 5 · 818 | Star rating and number of reviews |
salesAllTime | 474 | The agent's own career sales |
salesLastYear | 52 | The agent's own sales in the last 12 months |
averageSalePrice | 814175 | The agent's own average, last 3 years |
priceRangeMin · priceRangeMax | 208900 · 3022300 | The agent's own lowest and highest sale, last 3 years |
statsIncludeTeam | false | false means the numbers above cover the agent alone |
teamSalesLastYear · teamSalesInArea | 356 · 1430 | Team rows only: the whole team's sales in the last 12 months and in the searched area |
teamPriceRangeMin · teamPriceRangeMax | 154000 · 12000000 | Team rows only: the team's price range |
salesInArea | 1204 | Individual rows: the agent's sales in the searched area |
searchLocation | "Austin, TX" | Which of your locations found the agent |
When listings are requested and available, the row also has:
| Field | Notes |
|---|---|
listings | Homes the agent has for sale: price, beds, baths, address, coordinates, brokerage, photo |
rentals | Homes the agent has for rent, same shape (optional) |
listingCount · rentalCount | The agent's total on Zillow, even when your cap fetched fewer. Empty in the rare case the total couldn't be read |
listingsFetched · listingsTotalValue · rentalsFetched | How many this run returned, and the combined asking price |
The first five listings of each kind carry coordinates and home type. Listings after the fifth have price, beds, baths, sq ft, address, brokerage and photo, but no coordinates.
When an agent's listings couldn't be retrieved, the row has listingsUnavailable: true and a listingsUnavailableReason instead of those fields, so a missing list is never shown as zero. The run's status message says how many agents this affected.
What each number means
For a team, Zillow's directory card shows team totals, while the agent's own stats cover the team lead alone. Both are kept, under different names: salesLastYear: 52 is the agent's own count and teamSalesLastYear: 356 is the team's. Use the plain fields to compare agents, and the team* fields to size a team.
How to use it
- Type one or more cities, for example
Austin, TX, or look up agents by name. - Add filters if you want them: Top Agents only, or a minimum number of sales in the last 12 months.
- Set Maximum agents and click Start. Download the results as CSV, JSON or Excel, or read them through the API.
Minimal input that works as-is:
{"locations": ["Austin, TX"],"maxItems": 100}
Active agents only, no listings (cheapest):
{"locations": ["Chicago, IL", "Evanston, IL"],"minSalesLastYear": 20,"includeActiveListings": false,"maxItems": 200}
Specific agents by name:
{"agentNames": ["Matt Laricy"],"maxItems": 5}
Input reference
| Field | What it does |
|---|---|
| Locations | US cities or areas, like Austin, TX. Each is searched and the results are combined |
| Specific agents by name | Only agents whose name matches what you typed are kept |
| Maximum agents | Your spend cap. Filters apply first, so the cap counts only agents you keep |
| Directory pages per location | 15 agents per page, 10 pages by default |
| Top agents only | Only agents with Zillow's Top Agent badge |
| Minimum sales in the last 12 months | Drops quiet or inactive agents before they're charged |
| Homes for sale and Maximum listings per agent | Adds the agent's for-sale listings when available |
| Homes for rent and Maximum rentals per agent | Adds rental listings when available. Off by default |
| Only agents with at least one listing | Drops agents with no for-sale listings before charging |
| Add the full property record to each listing | Adds Zestimate, living area, lot size, year built, days on Zillow, MLS ID, tax rate, HOA, description and the listing agent's phone to each listing. Charged per listing |
Output example
A real row from an Austin, TX run (October 2026), shortened to one listing and one rental:
{"agentName": "Lindsay Neuren","encodedZuid": "X1-ZUw4ks8wbcrabt_4n5nw","profileUrl": "https://www.zillow.com/profile/speedandneurengroup","isTeam": true,"isTopAgent": true,"reviewAverage": 5,"reviewCount": 818,"salesAllTime": 474,"salesLastYear": 52,"priceRangeMin": 208900,"priceRangeMax": 3022300,"averageSalePrice": 814175,"statsIncludeTeam": false,"teamSalesLastYear": 356,"teamSalesInArea": 1430,"teamPriceRangeMin": 154000,"teamPriceRangeMax": 12000000,"searchLocation": "Austin, TX","listingCount": 37,"listingsFetched": 7,"listingsTotalValue": 4002000,"listings": [{"zpid": 2119482072,"url": "https://www.zillow.com/homedetails/9205-Villa-Norte-Dr-Austin-TX-78726/2119482072_zpid/","price": 649000,"priceCurrency": "USD","homeType": "singleFamily","listingType": "forSale","bedrooms": 3,"bathrooms": 3,"streetAddress": "9205 Villa Norte Dr","city": "Austin","state": "TX","zipcode": "78726","latitude": 30.431635,"longitude": -97.84457,"brokerName": "Compass RE Texas, LLC"}],"rentalCount": 2,"rentalsFetched": 2,"rentals": [{"zpid": 250400882,"price": 1800,"listingType": "forRent","bedrooms": 3,"bathrooms": 3,"streetAddress": "162 Friendship Oak Dr","city": "San Marcos","state": "TX","zipcode": "78666"}]}
A row whose listings couldn't be read looks the same up to searchLocation, then has "listingsUnavailable": true and a reason such as "not-found" in place of the listing fields.
CSV and Excel exports turn nested lists into numbered columns (listings/0/price, listings/1/price, …).
Pricing
Pay per event, platform usage included, no start fee.
| Your Apify plan | Agent row | Listing with full property record (optional) |
|---|---|---|
| Free | $0.0030 ($3.00 per 1,000) | $0.0024 ($2.40 per 1,000) |
| Starter (Bronze) | $0.0025 ($2.50 per 1,000) | $0.0020 ($2.00 per 1,000) |
| Scale (Silver) | $0.0020 ($2.00 per 1,000) | $0.0016 ($1.60 per 1,000) |
| Business (Gold and above) | $0.0018 ($1.80 per 1,000) | $0.0015 ($1.50 per 1,000) |
The agent row is charged once per agent delivered. Agents removed by your filters aren't charged. The full-property-record charge applies only when you switch that option on, once per listing opened.
Worked example. The 200 busiest agents in Chicago on the Free plan: 200 × $0.003 = $0.60. On Starter it's $0.50. Adding full property records for 10 listings per agent would add up to 2,000 × $0.0024 = $4.80, and only for listings that actually came back.
FAQ
Why does a row say listingsUnavailable: true?
The agent's listings couldn't be retrieved on that run, and listingsUnavailableReason says why. The rest of the row is complete. Rather than report zero listings, the row flags it so you can tell "none" apart from "not retrieved". No listing charges apply to that row, and the run's status message counts how many agents were affected.
Why are most rows teams?
Zillow's directory ranks teams and individual agents together, and the busiest names in a big city are usually teams. Filter on isTeam to split them. See "What each number means" for team vs individual figures.
Does it return phone numbers or email?
Not on the agent row. Zillow's directory doesn't show agent phone or email. With Add the full property record to each listing on, each listing gets the listing agent's phone from the property page.
Will the same agent show up twice?
No. Agents are de-duplicated on encodedZuid within a run, even across overlapping cities. Two different agents with the same name stay separate.
How fresh is the data?
Each run reads Zillow at that moment. Sales counts and reviews are whatever Zillow shows that day.
Can I schedule it or connect it to other tools?
Yes. Run it monthly with Apify Schedules and send results to Airtable, HubSpot, Google Sheets, Slack, Zapier, Make, n8n or a webhook. You can also call it from the Apify API or MCP server.
Limits
- US agents listed in Zillow's agent directory only.
- No agent email, licence number or office phone.
- No list of individual past sales. The sales counts and averages above summarize them.
- Listings are included when available and may be missing on some runs. Check
listingsUnavailable.
Missing a field? Open an issue on the Issues tab.
Related: Zillow Search Scraper to find homes by area, and Zillow Property Detail Scraper for the full record of any home.