Zillow Email Scraper avatar

Zillow Email Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Zillow Email Scraper

Zillow Email Scraper

🏠 Zillow Email Scraper extracts property agent emails from Zillow listings—fast, accurate, and easy to use. 📩 Perfect for real estate lead generation, outreach, and market research. 🚀 Automate discovery and save hours today!

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScraperX

ScraperX

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

10 days ago

Last modified

Share

Zillow Email Scraper — Find Real Estate Agent & Listing Emails by Keyword

Build real-estate contact lists from Zillow without opening a single page by hand. Enter keywords like realtor, broker, property manager or luxury homes, and the Actor finds Zillow pages that publish an e-mail address, extracts it, and returns it with the page title, description and URL.

Add a location, filter to specific e-mail domains, and cap how many contacts each keyword produces.


What you get

FieldWhat it gives you
emailThe extracted e-mail address
urlThe Zillow page it came from
titlePage title — usually the agent, brokerage or listing name
descriptionPage snippet, useful for qualifying the lead
keywordWhich of your keywords found this contact
networkSource platform (Zillow)

Key features

  • Keyword-driven discovery. You do not need a list of agent profiles. Describe the kind of contact you want — realtor, broker, property manager, real estate agent, luxury homes — and the Actor finds Zillow pages that match and publish contact details.
  • Location targeting. Add a city, state or metro area to focus the search on the market you actually work in — the single most valuable filter in real-estate lead generation.
  • E-mail domain filtering. Restrict to @gmail.com, a brokerage domain, or any combination. Brokerage-domain addresses usually indicate an established professional; free-provider addresses often indicate independents.
  • Per-keyword caps. maxEmails bounds how many contacts each keyword returns, so cost and run time stay predictable across long keyword lists.
  • Lead context, not just an address. Title, description and source URL travel with every contact, so you can qualify before you reach out — and always show where the data came from.
  • Keyword attribution. Each row records the keyword that produced it, which quickly reveals which search terms are worth scaling.
  • Automatic proxy escalation. Runs direct by default; if search requests are refused, the Actor falls back to datacenter and then residential proxies with 3 retries.
  • Live streaming output. Contacts appear in the dataset as they are found.

Use cases

  • Real-estate lead generation — build outreach lists of agents and brokers in a target market.
  • Recruiting agents to a brokerage — find independent agents by city and approach them directly.
  • Vendor and service outreach — photographers, stagers, inspectors, mortgage brokers and CRM vendors all sell to agents.
  • Proptech sales — reach the agents and property managers who buy software.
  • Market research — measure how many agents in a metro publish a contact address at all.
  • Referral network building — assemble a list of agents in cities where you do not operate.
  • Investor outreach — property-manager and listing contacts for off-market conversations.
  • CRM enrichment — attach contact addresses to agents you already track.

How it works

  1. You provide keywords and, optionally, a location and e-mail domain filter.
  2. The Actor builds a search for Zillow pages matching each keyword, adding your location when supplied.
  3. Result pages are walked and each candidate page is examined for a published e-mail address.
  4. Your domain filter is applied, dropping addresses that do not match.
  5. Each contact is pushed to the dataset with its page title, description, URL and originating keyword — until the per-keyword cap is reached.
  6. If search requests are blocked, the proxy tier escalates automatically.

Quick start

  1. Open the Actor and add your keywords — e.g. realtor, real estate agent.
  2. (Optional) Set a Location Filter, e.g. Austin.
  3. (Optional) Set an Email Domains Filter, or leave it empty to collect everything.
  4. Set Maximum Emails per Keyword, then click Start.
  5. Export the Output tab as CSV, Excel or JSON.

Minimal input

{
"keywords": ["realtor"],
"maxEmails": 20
}

Input configuration

FieldTypeDefaultDescription
keywordsarray— (required)Search terms, e.g. ["realtor", "broker", "property manager"]. Each is searched independently.
platformstringZillowThe platform to target.
locationstringOptional location added to the search query (e.g. Austin, New York, Miami). Leave empty to search without a location filter.
emailDomainsarray["@gmail.com"]Only keep addresses on these domains, e.g. ["@gmail.com", "@outlook.com"]. Leave empty to collect every domain.
maxEmailsinteger20Maximum e-mails collected per keyword.
enginestringlegacyScraping engine. The Legacy engine — reliable, using Apify's Google SERP proxy — is the currently available option.
proxyConfigurationobjectno proxyBy default no proxy is used. On a block, the Actor falls back to datacenter, then residential proxies with 3 retries.

Tips for better results

  • Use role variations: realtor, real estate agent, broker, associate broker, property manager, listing agent.
  • Add the city or metro to the location field rather than the keyword — it keeps the keyword clean and reusable across markets.
  • Leave emailDomains empty on a first run to see what domains exist, then narrow on the second.
  • Run one market at a time so your export stays segmented and easy to route to the right salesperson.

Output data

One row per e-mail address found.

FieldTypeDescription
emailstringThe extracted e-mail address.
urlstringThe Zillow page where it was published.
titlestringPage title — typically the agent, brokerage or listing name.
descriptionstringPage snippet describing the agent or property.
keywordstringThe keyword that produced this row.
networkstringSource platform (Zillow).

Example output

{
"network": "Zillow",
"keyword": "realtor",
"title": "Example Agent — Real Estate Agent in Austin, TX | Zillow",
"description": "Example Agent is a licensed REALTOR® serving Austin and the surrounding area. 128 sales in the last 12 months.",
"url": "https://www.zillow.com/profile/exampleagent",
"email": "exampleagent@gmail.com"
}

Illustrative values — a live run returns real published contact data.


Usage examples

Agents in one metro area

{
"keywords": ["realtor", "real estate agent", "listing agent"],
"location": "Austin",
"maxEmails": 50,
"emailDomains": []
}

Brokerage-domain contacts only

{
"keywords": ["broker", "associate broker"],
"location": "Miami",
"emailDomains": ["@compass.com", "@kw.com", "@remax.com"],
"maxEmails": 40
}

Property managers for a proptech pitch

{
"keywords": ["property manager", "property management"],
"location": "Denver",
"maxEmails": 60
}

Multi-market sweep

Run the same keyword set once per city, exporting each run separately so your lists stay segmented by territory.

Find which keywords work

Run 8–10 keyword variations with maxEmails: 5, then pivot on the keyword column and scale only the productive ones.


Run it from your own code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("scraperx/zillow-email-scraper").call(run_input={
"keywords": ["realtor", "broker"],
"location": "Austin",
"maxEmails": 50,
"emailDomains": [],
})
for lead in client.dataset(run["defaultDatasetId"]).iterate_items():
print(lead["email"], "|", lead["title"], "|", lead["url"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('scraperx/zillow-email-scraper').call({
keywords: ['realtor'],
location: 'Austin',
maxEmails: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/scraperx~zillow-email-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keywords":["realtor"],"location":"Austin","maxEmails":50}'

Integrations

Send leads straight into Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your CRM via webhooks, and use Schedules to keep topping up your pipeline.


Pricing

Pay-per-event: a small Actor-start charge plus a charge per contact row delivered to your dataset. You pay for the contacts you actually receive.

Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during each run. Note that Apify Google SERP or Residential proxy traffic is billed separately by the platform according to your plan.


Limits & good to know

  • Only publicly published addresses are found. The Actor extracts e-mails agents have chosen to publish — it does not guess, generate or verify addresses.
  • maxEmails is per keyword, so five keywords at 30 each can return up to 150 rows.
  • Not every agent publishes an e-mail. Many use Zillow's contact form instead, so expect fewer contacts than pages found.
  • Addresses are not verified. Run them through an e-mail verification service before a large campaign.
  • Location narrows results sharply. Try a run without it for comparison if a market returns little.
  • Search-based discovery shifts over time; the same keyword can return different agents on different days.
  • Default run options are 4 GB memory and a 1-hour timeout — raise the timeout for long keyword lists.

FAQ

Do I need a Zillow account? No. The Actor works entirely from publicly accessible pages.

Does it guess or generate e-mail addresses? No. It only extracts addresses actually published on the page.

How do I target one city? Put the city in the location field and keep your keywords generic — that way the same keyword set works across every market.

Can I filter to brokerage e-mails only? Yes — list those domains in emailDomains. Leave it empty to collect all domains.

Why did some keywords return nothing? No Zillow pages matching them published an address. Try other role terms or a broader location.

Are the e-mails verified? No. Verify them with a dedicated service before sending a campaign.

Can I run this on a schedule? Yes — save your keywords as a Task and attach an Apify Schedule.

Which export formats are supported? JSON, CSV, Excel (XLSX), XML and RSS. CSV works perfectly — the rows are flat.


This Actor collects only e-mail addresses that agents and businesses have published publicly, together with the public page they appear on. It does not log in, guess addresses, or access private data.

E-mail addresses are personal data. Before using them for outreach, ensure you have a lawful basis under GDPR and comparable regimes, comply with CAN-SPAM and equivalent anti-spam laws, identify yourself clearly, and honour unsubscribe requests immediately. Real-estate professionals are also subject to their own solicitation rules — publishing an address is not consent to bulk marketing.

Support

Need other real-estate platforms, extra fields, or a custom lead-generation pipeline? Open an issue on the Issues tab of this Actor.