Zillow Agents Scraper — Profiles & Leads avatar

Zillow Agents Scraper — Profiles & Leads

Pricing

from $30.00 / 1,000 agent returneds

Go to Apify Store
Zillow Agents Scraper — Profiles & Leads

Zillow Agents Scraper — Profiles & Leads

Scrape Zillow real estate agents by city, ZIP, directory URL, or profile URL. Returns contacts, brokerage, ratings, sales stats, specialties, languages, and source URLs.

Pricing

from $30.00 / 1,000 agent returneds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

13 days ago

Last modified

Share

Use this Apify Actor to collect Zillow real estate agent and team records from city or ZIP directory pages, or from direct Zillow agent profile URLs. It accepts either locations for market-based discovery or startUrls for known Zillow agent pages, and each record represents one agent or team with a single Zillow profile URL, name, brokerage, visible contact fields, ratings, sales stats, specialties, languages, source URL, and timestamped provenance. The outcome is a one-row-per-agent dataset you can use for CRM import, market research, or profile enrichment.

Best fit and connected workflows

This Actor fits workflows where you need Zillow agent leads from a specific market or from a known Zillow profile link. It works well for:

  • brokerage recruiting lists by city or ZIP
  • CRM lead capture from Zillow directory pages
  • enriching known agent profile URLs with visible profile fields
  • market research on agent coverage, ratings, reviews, and sales signals

For Zillow property inventory and home listings, a property-focused Zillow scraper is a more natural workflow. This Actor is designed around agents and teams, not listings.

Practical scenario

A recruiter opens a Zillow directory page for Austin, TX and wants a short lead list. They start with locations: ["Austin, TX"], maxResults: 10, and fetchProfiles: false. The returned dataset includes each agent's profileUrl, name, brokerage, rating, reviewCount, specialties, and languages. The recruiter reviews the strongest fits, then opens selected profile URLs for outreach or deeper profile enrichment.

Input fields

FieldTypePurpose
locationsarray of stringSearch Zillow agent directory pages for one or more US cities or ZIP codes. Defaults to ["Austin, TX"] when startUrls is empty.
startUrlsarray of objectsUse direct Zillow agent directory or profile URLs when you already have them.
maxResultsintegerCaps the number of validated agent records returned and billed, from 1 to 500.
maxPagesPerLocationintegerControls how many directory pages are explored per location, from 1 to 25.
fetchProfilesbooleanEnrich each record from profile pages with phone, website, about text, specialties, languages, experience, and sales stats.
proxyConfigurationobjectOverrides the default Apify Residential US proxy configuration if needed.

Focused JSON example

{
"locations": ["Austin, TX", "10001"],
"maxResults": 10,
"maxPagesPerLocation": 2,
"fetchProfiles": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Output fields

FieldTypeMeaning
profileUrlstringCanonical Zillow profile URL for the agent or team.
profileSlugstring or nullDecoded Zillow profile path segment.
namestringDisplay name shown on Zillow.
profileTypestring or nullTeam or individual when Zillow makes that visible.
brokeragestring or nullBrokerage, company, or team affiliation.
locationstring or nullMarket associated with the profile or source query.
phonestring or nullPhone number visible on the Zillow profile.
emailstring or nullEmail address visible on the Zillow profile.
websitestring or nullExternal website linked from the Zillow profile.
ratingnumber or nullZillow review rating shown on the profile or directory result.
reviewCountnumber or nullNumber of Zillow reviews shown near the rating.
salesLast12Monthsnumber or nullSales count in the last 12 months when Zillow exposes it.
totalSalesnumber or nullTotal Zillow sales count shown for the agent or team.
priceRangestring or nullPrice range shown on Zillow.
averagePriceUsdnumber or nullAverage sale price when visible on the profile.
specialtiesarray of stringSpecialties listed by Zillow.
languagesarray of stringLanguages Zillow says the agent or team speaks.
yearsExperiencenumber or nullYears of experience parsed from the profile when visible.
teamMemberCountnumber or nullTeam member count shown on team profiles.
aboutstring or nullShort profile bio or about text visible on Zillow.
sourceTypestringdirectory or profile.
sourceQuerystring or nullLocation query that discovered the profile, when applicable.
sourceUrlstringZillow directory or profile URL used for the record.
retrievalMethodstringzillow-directory, zillow-profile, or public-search-index.
scrapedAtstringISO 8601 timestamp for collection time.

Illustrative JSON record

{
"profileUrl": "https://www.zillow.com/profile/REMAX%20EDGE",
"profileSlug": "REMAX EDGE",
"name": "REMAX EDGE",
"profileType": "team",
"brokerage": "RE/MAX EDGE",
"location": "Austin, TX",
"phone": "(512) 555-0123",
"email": "agent@example.com",
"website": "https://www.examplebrokerage.com",
"rating": 5,
"reviewCount": 2672,
"salesLast12Months": 830,
"totalSales": 5760,
"priceRange": "$105K-$8M",
"averagePriceUsd": 885000,
"specialties": ["Buyer's Agent", "Listing Agent", "Relocation"],
"languages": ["English", "Spanish"],
"yearsExperience": 27,
"teamMemberCount": 109,
"about": "Here at RE/MAX Edge, we believe in making the real estate journey...",
"sourceType": "profile",
"sourceQuery": "Austin, TX",
"sourceUrl": "https://www.zillow.com/professionals/real-estate-agent-reviews/austin-tx/",
"retrievalMethod": "zillow-profile",
"scrapedAt": "2026-07-15T15:00:00.000Z"
}

How it works

This Actor runs on Apify with Playwright-based browsing and uses the default Apify Residential US proxy configuration for Zillow. It can start from Zillow directory pages or direct profile URLs. Directory runs are the default fast path, while fetchProfiles: true adds profile-page enrichment for fields visible on Zillow profile pages. The Actor writes one dataset item per validated agent row and also produces terminal OUTPUT and RUN_SUMMARY records in the key-value store for automation and billing readback.

Pricing

This Actor uses Pay per event pricing, plus Apify platform usage charges.

The primary billed event is Agent returned, which is charged per validated Zillow agent record persisted to the dataset. The run also includes an Actor start event charged once per run based on RAM.

The live Pricing tab on Apify shows the current pricing details, including the event model and platform usage. For example, a run capped at 25 agents bills at most 25 agent-returned events, while a run capped at 50 agents bills at most 50 agent-returned events.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. It can be called by an AI agent to discover Zillow agent leads from a market query or from a known Zillow profile URL, then return structured records with provenance and source metadata.

Actor identity: khadinakbar/zillow-agents-scraper

Tool description: Search Zillow agent directories or direct profile URLs and return one structured dataset record per validated Zillow agent or team, with contacts, brokerage, ratings, sales stats, specialties, languages, and source URLs.

Find Zillow agents in Austin, TX. Return up to 10 validated records. Use directory pages first, then enrich profiles only if needed. Summarize the main fields and include the source URL for each record.

Output interpretation is straightforward: each dataset item is one agent or team, and sourceType, sourceUrl, retrievalMethod, and scrapedAt show where the record came from and when it was collected. Directory runs are a good fit when the workflow needs breadth. Profile enrichment is a better fit when the workflow needs contact and bio fields visible on Zillow profile pages. Billing is event based, so an agent should treat maxResults as the main cost control for the number of validated rows returned.

API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/zillow-agents-scraper').call({
locations: ['Austin, TX'],
maxResults: 10,
fetchProfiles: false,
});
const dataset = await client.dataset(run.defaultDatasetId).listItems({
clean: true,
});
console.log(dataset.items[0]);

Best results and outcome guidance

Start with locations when you want a market list, and use startUrls when you already have Zillow agent or directory URLs. Keep maxResults aligned with the number of leads you need, since it controls the number of validated agent rows returned and billed. Use fetchProfiles: true when the workflow depends on profile-visible contact fields, about text, or sales stats. Leave the default proxy settings in place for most Zillow runs.

Continue the workflow

Design note

I found that the live dataset contract exposes both sourceType and retrievalMethod, which makes provenance explicit at the row level and useful for downstream routing.

FAQ

When should I use locations instead of startUrls?

Use locations when you want Zillow agents in a city or ZIP code. Use startUrls when you already have a Zillow agent directory page or a specific profile URL.

How do I keep a run bounded?

Set maxResults to the number of agent rows you want returned. You can also use maxPagesPerLocation to limit how many directory pages are explored per location.

What changes when fetchProfiles is enabled?

The Actor enriches records from profile pages with fields such as phone, website, about text, specialties, languages, years of experience, and sales stats when those fields are visible on Zillow.

Can I use the output for CRM import?

Yes. The overview dataset view is shaped for lead-list workflows and includes the main contact, rating, sales, specialty, language, and source fields.

Yes. It accepts Zillow agent directory URLs and Zillow profile URLs in startUrls.

Responsible use

Use the collected data in line with Zillow's terms, applicable privacy laws, fair housing rules, real-estate licensing rules, and the policies of any outreach platform you use. The Actor returns publicly visible Zillow data and preserves source URLs so records can be reviewed in context.