🏠 Zillow Agents Finder avatar

🏠 Zillow Agents Finder

Pricing

from $3.99 / 1,000 results

Go to Apify Store
🏠 Zillow Agents Finder

🏠 Zillow Agents Finder

Extract real estate agents and mortgage lenders from Zillow at scale — by URL, screen name, or location-based directory search.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScrapeLabs

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 months ago

Last modified

Share

🏠 Zillow Agents & Lenders Finder

Extract real estate agents and mortgage lenders from Zillow at scale — by URL, screen name, or location-based directory search. Built with a smart 3-tier proxy fallback ladder that automatically routes around blocks without you lifting a finger.


🤔 Why Choose Us?

  • 🪜 Smart proxy ladder — starts direct, escalates to Apify DatacenterResidential only when Zillow pushes back. No wasted proxy spend on requests that work.
  • 🧾 Two output shapes — flip Full Agent Detail on for sales stats / licenses / phones / service areas, or keep it off for a slim card-style dataset.
  • 💰 Lenders too — same directory + profile pipeline, with a lender_fields allowlist to trim the payload.
  • 🔍 Bulk inputs — paste 1 or 10 000 profile URLs, screen names, or agent names — all in one field.
  • 🌍 Filters that matter — specialty, language, top-agent, buying/selling, lender sort order.
  • 📊 Live dataset push — every scraped profile lands in the dataset as soon as it's parsed, so a crash never costs you the run.
  • 📋 Three pre-built views — Overview, Agent Detail, Lenders — switch in the Console without writing a query.

✨ Key Features

  • ✅ Search agents or lenders by city / state
  • ✅ Fetch profiles directly by URL or @ScreenName
  • ✅ Profile sub-tabssales, rentals, sold, reviews
  • Specialty filter — 12 Zillow specialties (luxury, foreclosure, military, …)
  • Language filter — 24 languages
  • Top Agent / Buying / Selling flags
  • Sort lenders by relevance, location, or rating
  • ✅ Pulls real rating from the HTML (not the cached JSON average)
  • ✅ Live partial results — push happens per-profile, mid-run crashes never lose data

🔗 Input

FieldTypeRequiredDescription
urlsarray<string>Bulk URLs / @screenNames / agent names. Empty = pure directory crawl.
operationstringagents (default) or lenders
locationstring⚪*City / state geo seed. *Required unless every urls item is a direct URL or @name.
limitintegerMax records (0 = unlimited). Default 20.
agent_detail_infobooleantrue → full profile; false → compact card
specialtystringOne of 12 Zillow specialty slugs
languagestringOne of 24 languages
is_top_agent / is_buying / is_sellingbooleanAgent filters
sort_lendersstringrelevance / location / rating
lender_fieldsarray<string>Multi-select allowlist of lender fields (dropdown: aboutMe, address, cellPhone, companyName, confirmedReviews, contactLenderFormDisclaimer, employerMemberFDIC, employerScreenName, equalHousingLogo, faxPhone, hideCellPhone, individualName, languagesSpoken, memberFDIC, nmlsType, officePhone, rating, recentReviews, stateLicenses, stateSponsorships, title, totalReviews)
proxyConfigurationobjectOptional override. Default = no proxy + auto-escalation.

💡 Example input

{
"operation": "agents",
"location": "New York",
"limit": 20,
"agent_detail_info": false,
"urls": []
}
{
"operation": "agents",
"urls": [
"https://www.zillow.com/profile/REMAX EDGE",
"@Teresa Stephenson",
"Matthew Bizzarro"
],
"location": "New York",
"agent_detail_info": true
}

📤 Output

Compact agent record (agent_detail_info: false)

{
"avatar": "https://photos.zillowstatic.com/fp/.../h_l.jpg",
"business": "RE/MAX EDGE",
"id": "X1-ZUytouqbzgwsnd_75224",
"location": "Brooklyn, NY",
"name": "REMAX EDGE",
"phone": "(718) 612-3088",
"rating": 5.0,
"reviews": { "count": 2640 },
"screenName": "REMAX EDGE",
"url": "https://www.zillow.com/profile/REMAX EDGE"
}

Full agent record (agent_detail_info: true)

{
"id": "...",
"name": "Matthew Bizzarro",
"screenName": "Matthew Bizzarro",
"url": "https://www.zillow.com/profile/Matthew Bizzarro",
"avatar": "...",
"business": "The Bizzarro Agency",
"rating": 5.0,
"yearsOfExperience": 17,
"reviews": { "count": 911 },
"serviceAreas": [{ "name": "Manhattan, NY", "url": "/homes/Manhattan-NY/" }],
"email": "agent@example.com",
"phone": "(917) 473-8368",
"phones": { "cell": "...", "brokerage": "...", "business": "..." },
"address": { "line1": "...", "city": "New York", "state": "NY", "postalCode": "10001", "full": "..." },
"licenses": {
"Real estate licenses": [{ "License No.": "10301...", "issued by": "NY", "status": "Active", "expiration": "2026-...-..." }],
"otherLicenses": []
},
"salesStats": {
"countAllTime": 234, "countLastYear": 45,
"priceRangeThreeYearMin": 350000, "priceRangeThreeYearMax": 12500000,
"averageValueThreeYear": 1850000,
"statsIncludeTeam": true, "pastSalesTotal": 234
}
}

Lender record (no allowlist)

{
"id": "...",
"name": "Jane Banker",
"screenName": "janebanker",
"url": "https://www.zillow.com/lender-profile/janebanker",
"avatar": "...",
"business": "First Republic",
"nmlsLicense": "1234567",
"phone": "(212) 555-0100",
"email": "jane@example.com",
"address": { "line1": "...", "city": "New York", "state": "NY", "postalCode": "10001" },
"rating": 4.9,
"reviews": { "count": 87 },
"languages": ["English", "Spanish"],
"specialties": ["First-time home buyers"]
}

🪜 How the smart proxy ladder works

┌──────────┐ blocked? ┌──────────────┐ blocked? ┌──────────────┐
│ 🌐 Direct │ ─────────────▶ │ 🏢 Datacenter │ ─────────────▶ │ 🏠 Residential│ × 3 retries
└──────────┘ └──────────────┘ └──────────────┘
  • Default — every request goes out direct (no proxy spend).
  • On HTTP 403/429/captcha/empty-body, the actor switches to Apify Datacenter.
  • If datacenter also gets blocked, it switches to Apify Residential with 3 retries.
  • Once escalated, the actor stays on the new tier for the rest of the run.
  • You can override the starting tier in proxyConfiguration — explicit choices are respected.

Every escalation is logged with a clear ⛔ → 🏠 message.


🚀 How to Use (Apify Console)

  1. Log in at console.apify.comActors.
  2. Open 🏠 Zillow Agents & Lenders Finder.
  3. Pick Operation = agents or lenders.
  4. Set a Location (e.g. New York) and/or paste profile URLs/@names.
  5. Tune filters (specialty, language, top-agent, …) if you want.
  6. Click Start ▶️.
  7. Watch the live log — every scraped profile prints with name / rating / location.
  8. Open the Output tab → switch between Overview, Agent Detail, Lenders views.
  9. Export as JSON / CSV / XLSX from the Output tab.

🤖 Use via API

curl -X POST "https://api.apify.com/v2/acts/<USER>~zillow-agents-finder/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operation": "agents",
"location": "New York",
"limit": 10,
"agent_detail_info": false
}'

💼 Best Use Cases

  • 🎯 Lead generation for real estate SaaS
  • 📈 Market intelligence on top agents per metro
  • 🏘️ Building an agent directory for a real-estate portal
  • 💰 Comparing lender NMLS coverage by language / specialty
  • 📊 Tracking agent sales-volume trends across markets

💵 Pricing

This actor uses Apify's Pay-Per-Event model. You're billed per successfully scraped profile (result-item) plus the standard platform startup. Limits are respected: if your spend limit is reached mid-run, the actor exits cleanly with whatever was already pushed to the dataset.


❓ FAQ

Q: Does it work without a proxy? A: Yes — that's the default. It only spends proxy budget if Zillow blocks the direct request.

Q: What if Zillow rate-limits my run? A: The actor escalates automatically (Direct → Datacenter → Residential, 3 retries) and stays on the highest tier reached. You'll see ⛔ → 🏠 messages in the log.

Q: Can I get just the screen names without the full profile? A: Not currently — the actor always fetches the profile page to pull phone / rating / business. Toggle agent_detail_info: false to keep the dataset slim.

Q: Can I search a sub-tab like reviews or sold? A: Yes — prefix the screen name with @ and append the sub-tab, e.g. @Matthew Bizzarro/reviews, or pass the full URL with the sub-tab path.

Q: What languages and specialties are supported? A: 24 languages and 12 specialties — pick from the dropdowns in the input form, or pass the slug directly.

Q: How do I narrow lender output? A: Pick the field names you want from the Lender Field Allowlist dropdown (e.g. ["companyName","officePhone","nmlsType","rating","totalReviews"]). Empty = every field.


📣 Support & Feedback

Found a bug or want a new filter? Open an issue on the actor's Issues tab in the Apify Console.


  • Data is collected only from publicly available profile pages on Zillow.
  • This actor does not access private or authenticated content.
  • You are responsible for legal compliance (GDPR, CCPA, anti-spam laws, Zillow ToS).
  • Honor reasonable rate limits — being a good citizen reduces blocks too.