
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape real estate agents from Zillow by city, ZIP, or directory URL: name, brokerage, phone, email, ratings, reviews, sales stats, licenses, listings and service areas. No login needed.
Turn Zillow's real estate agent directory into a clean lead list. Paste a city, ZIP code, or Zillow agent directory URL and get every agent's name, brokerage, phone, email, ratings, reviews, sales stats, licenses, listings and service areas in seconds. No login, no browser, and you only pay per agent saved.
https://www.zillow.com/professionals/real-estate-agent-reviews/austin-tx/) or agent profile URLs, or type locations like Austin, TX or 99501.| Field | What it does |
|---|---|
startUrls | Zillow agent directory URLs (city, neighborhood, state or ZIP) or agent profile URLs |
locations | Locations typed like on Zillow: Austin, TX, Miami, FL, 90210 |
maxItems | Agents to save per directory URL or location (default 20) |
topAgentsOnly, serviceType, specialties, languages, minPrice, maxPrice, agentName | Zillow's directory filters |
scrapeProfiles | On: full profile per agent. Off: directory card only (faster) |
splitLargeSearches | Split searches above 375 agents by price band, specialty and language |
proxyConfiguration | Datacenter by default; switches to residential by itself when Zillow blocks |
{
"startUrls": ["https://www.zillow.com/professionals/real-estate-agent-reviews/99501/"],
"locations": ["Austin, TX"],
"maxItems": 20,
"topAgentsOnly": true,
"languages": ["spanish"]
}
Each row is one agent. The first columns are flat and ready for a spreadsheet; the full profile follows.
| Field | Description |
|---|---|
name, screenName, profileUrl | Agent or team name and Zillow profile |
businessName, title | Brokerage and job title |
phone, brokeragePhone, email, websiteUrl | Public contact details from the profile |
city, state, postalCode, businessAddress | Office address |
rating, reviewCount, reviewsSummary | Ratings, review count, AI review summary and keywords |
salesLast12Months, totalSalesCount, salesStats | Sales stats, price range and average price |
forSaleCount, forRentCount, forSaleListings, pastSales, featuredListings | Listings and recent sales |
isTopAgent, isPremierAgent, isTeam, teamName, teamDisplayInformation | Badges and team roster |
licenseNumbers, agentLicenses, mlsIDs | Licenses and MLS ids |
serviceAreaNames, serviceAreas | Where the agent works |
reviewsData | The latest reviews with sub-ratings |
searchLocation, searchUrl, directoryStats | Which search found the agent and the card stats for that area |
Example (fictional agent, real shape, trimmed):
{
"profileUrl": "https://www.zillow.com/profile/jane-sample-realtor",
"name": "Jane Sample",
"screenName": "jane-sample-realtor",
"title": "Realtor, ABR",
"businessName": "Sample Peak Realty",
"phone": "(555) 010-2345",
"brokeragePhone": "(555) 010-9000",
"email": "jane@example.com",
"websiteUrl": "https://www.example.com",
"city": "Anchorage",
"state": "AK",
"postalCode": "99501",
"rating": 4.9,
"reviewCount": 87,
"salesLast12Months": 24,
"totalSalesCount": 310,
"forSaleCount": 6,
"forRentCount": 0,
"yearsInIndustry": 12,
"isTopAgent": true,
"isTeam": false,
"teamName": null,
"licenseNumbers": ["AK 000000"],
"serviceAreaNames": ["Anchorage, AK", "Eagle River, AK"],
"salesStats": {
"salesLastTwelveMonths": "24",
"totalSales": "310",
"priceRange": "$180K-$1.1M",
"averagePrice": "$465K",
"teamDisclaimer": null
},
"reviewsSummary": {
"average": 4.9,
"count": 87,
"aiSummary": "Clients praise clear communication and strong local knowledge.",
"categoryRatings": [],
"keywords": ["Responsive (40)", "Knowledgeable (35)"]
},
"searchLocation": "Anchorage, AK 99501",
"searchUrl": "https://www.zillow.com/professionals/real-estate-agent-reviews/99501/",
"directoryStats": {
"price range": "$180K - $1.1M",
"sales last 12 months": "24",
"sales in 99501": "9"
}
}
You pay a flat $1.50 per 1,000 agents saved ($0.0015 per agent), plus the small platform usage of the run (compute and proxy traffic, not included in the agent price). In our tests a 1,000-agent job with full profiles cost $1.50 in agent fees plus about $0.12 of usage. Directory pages and failed or duplicate profiles are never charged.
Is it legal to scrape Zillow agents? The actor only reads public profile pages that agents publish to advertise their services. You are responsible for how you use the data, including local rules on marketing calls and emails (for example TCPA, CAN-SPAM and GDPR).
Do I need a Zillow account or my own proxy? No. No login is used, and the built-in proxy is included.
How many agents can I get? Zillow shows at most 375 agents per search (25 pages). With Split big searches on, larger searches are repeated per price band, specialty and language, with duplicates removed. For full coverage, add several ZIP codes or neighborhoods as separate locations.
Why is a field empty? Agents fill their profiles themselves. If an agent shows no email, website or license on Zillow, the field is null.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start runs and fetch results through the API and integrations.
Can I scrape profiles I already have? Yes. Paste profile URLs such as https://www.zillow.com/profile/<screen-name> into the URL list.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalZillow agent directory or profile URLs
Zillow agent directory pages (for example https://www.zillow.com/professionals/real-estate-agent-reviews/austin-tx/ or a ZIP like .../99501/) or agent profile pages (https://www.zillow.com/profile/). Filters already in a directory URL are kept.
locationsarrayOptionalLocations
Cities, neighborhoods, states or ZIP codes to search, written like on Zillow: "Austin, TX", "Miami, FL", "90210". Each one runs its own directory search.
maxItemsintegerOptionaldefault 20Max agents per search
How many agents to save for each directory URL or location. Zillow lists at most 375 agents per search; bigger numbers split the search by price band, specialty and language to reach more.
topAgentsOnlybooleanOptionaldefault falseTop agents only
Only agents Zillow marks as Top Agent.
serviceTypeenumOptionaldefault "ANY"Helps with
Only agents who help buyers or sellers.
specialtiesarrayOptionalSpecialties
Only agents with all selected specialties.
languagesarrayOptionalLanguages
Only agents who speak the selected languages.
minPriceintegerOptionalMin sale price (USD)
Only agents who sell homes in this price range (lower end).
maxPriceintegerOptionalMax sale price (USD)
Upper end of the agent's price range.
agentNamestringOptionalAgent name contains
Search agents by name inside each location.
scrapeProfilesbooleanOptionaldefault trueOpen each agent profile
On: full profile per agent (phone, email, brokerage, sales stats, licenses, listings, recent sales, reviews, service areas). Off: only the directory card (name, brokerage, rating, sales in the area), which is faster.
splitLargeSearchesbooleanOptionaldefault trueSplit big searches
Zillow shows at most 375 agents per search. When you ask for more, the search is repeated per price band, specialty and language and duplicates are removed.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used to reach Zillow. Datacenter is the usual choice; the actor switches to residential by itself when Zillow blocks a request.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| profilePhotoSrc | string | null | Profile photo |
| name | string | null | Agent or team name |
| businessName | string | null | Brokerage |
| phone | string | null | Main phone (cell when listed) |
| string | null | Public contact email | |
| city | string | null | Office city |
| state | string | null | Office state |
| rating | number | null | Average review rating |
| reviewCount | number | null | Number of reviews |
| salesLast12Months | number | null | Sales in the last 12 months |
| totalSalesCount | number | null | Total sales on Zillow |
| forSaleCount | number | null | Active for-sale listings |
| isTopAgent | boolean | null | Zillow Top Agent |
| profileUrl | string | null | Zillow profile |
| screenName | string | null | Zillow screen name |
| brokeragePhone | string | null | Brokerage phone |
| websiteUrl | string | null | Agent website |
| title | string | null | Agent title |
| teamName | string | null | Team name |
| serviceAreaNames | array | null | Service areas |
| licenseNumbers | array | null | State license numbers |
| salesStats | object | null | Sales stats as shown on Zillow |
| searchLocation | string | null | Directory search the agent came from |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Agent | One real estate agent saved from Zillow. | $0.0015 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/zillow-agents-scraper').call({
"startUrls": [
"https://www.zillow.com/professionals/real-estate-agent-reviews/99501/"
],
"locations": [],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/zillow-agents-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/zillow-agents-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Agents with full profile details.
Agents who help with buying.
Only top agents, list only.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.