# Zillow Email Scraper - Engine & Email Type Filters (`insightflow/zillow-contact-extractor-accurate-and-high-converting`) Actor

🏘️ Zillow Email Scraper — build your Zillow email list from multi-engine search. Choose engine, region and country, then filter Zillow emails down to B2B or B2C. 📇 Each record carries its source URL and email domain.

- **URL**: https://apify.com/insightflow/zillow-contact-extractor-accurate-and-high-converting.md
- **Developed by:** [InsightFlow](https://apify.com/insightflow) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Zillow Email Scraper

**Zillow Email Scraper** is a practical Zillow email finder built for marketers, data teams, and researchers who need real estate leads fast. It helps you discover prospect emails, contact extraction details, and profile data from publicly available sources so you can scale lead generation without tedious manual research. Perfect for housing market outreach, seller leads, buyer leads, and real estate marketing. 📬

### What is Zillow Email Scraper? 🔍

**Zillow Email Scraper** is an Apify actor that collects publicly available contact details and profile information related to Zillow results. It is designed to help you turn manual research into a repeatable web scraper workflow for Zillow data extraction at scale. Instead of checking profiles one by one, you can use Zillow Email Scraper to gather relevant emails, profile titles, URLs, descriptions, and country targeting in a structured dataset.

This makes it especially useful for marketers, sales teams, analysts, and anyone building real estate leads or prospecting lists. Whether you need a Zillow contact scraper for agent outreach or a Zillow lead generation tool for broader research, the actor helps you save time and work more efficiently. ⚡

### What Data Does a Zillow Email Scraper Collect? 📊

Zillow Email Scraper collects a clean set of fields that help you organize and review your results quickly. The output includes discovery context, profile information, contact details, and targeting metadata, making it useful for lead generation, real estate marketing, and market research.

| Data Category | Fields Extracted | Description |
|---|---|---|
| Contact | `email`, `email_domain`, `email_type` | Publicly available email address, its domain, and whether it was captured as B2C or B2B |
| Identity | `title` | Profile title or name shown in the result |
| Context | `description` | Short text summary associated with the result |
| Discovery | `keyword` | The search term that surfaced the result |
| Navigation | `url` | Direct link to the profile or page |
| Source | `scrape_from` | Where the result was captured from |
| Location | `country` | Target country used for the run |

### What Do Results from Zillow Email Scraper Look Like? 👀

Each result is saved as a structured JSON record in your Apify dataset. Here’s a realistic example of what a single item can look like:

```json
{
  "keyword": "real estate agent",
  "title": "Jessica Martinez",
  "url": "https://www.zillow.com/profile/jessica-martinez",
  "description": "Licensed real estate professional helping buyers and sellers in Austin, Texas.",
  "email": "jessica.martinez@example.com",
  "email_domain": "example.com",
  "email_type": "B2C",
  "scrape_from": "Zillow",
  "country": "United States"
}
```

You can export results from Apify as JSON or CSV, depending on your workflow. 📁

#### Core Features of Zillow Email Scraper ⚡

| Feature | Benefit |
|---|---|
| ✅ **Keyword-Driven Targeting** | Use your keywords to find relevant Zillow profiles and public contacts |
| ✅ **B2C and B2B Modes** | Choose the email type that fits your outreach strategy |
| ✅ **Country Targeting** | Focus your run on a specific country for more relevant results |
| ✅ **Configurable Result Cap** | Set `maxEmails` to control how many emails are collected |
| ✅ **Structured Dataset Output** | Get clean records ready for CRM import or spreadsheet analysis |
| ✅ **Built-in Proxy Support** | Helps keep scraping reliable on larger runs |
| ✅ **Retries and Fallbacks** | Adds resilience when pages are slow or temporarily unavailable |
| ✅ **Real-Time Saving** | Results are stored during the run, reducing the risk of data loss |

### Getting Started with Zillow Email Scraper 🚀

1. **Open Apify Store** — Sign in to your Apify account and open the actor page for Zillow Email Scraper.
2. **Configure the Input** — Add your search terms, select a country, choose an email type, and set the maximum number of emails.
3. **Choose the Engine** — Pick either `legacy` or `cost-effective` depending on your preferred run style.
4. **Set Your Source Region** — Leave `sourceRegion` as `All`, which is the available option.
5. **Start the Run** — Launch the actor and monitor progress in the logs.
6. **Review the Dataset** — Open the output dataset to inspect your scraped contact extraction results.
7. **Export Your Data** — Download the results for lead generation, spreadsheet analysis, or outreach workflows. 📈

No coding required — just configure the input and run the actor.

#### Ways to Use Zillow Email Scraper 💡

- 🎯 **Lead Generation** — Build targeted real estate leads for seller outreach and buyer leads
- 📣 **Email Marketing** — Create prospect emails lists for campaigns and follow-ups
- 🤝 **Agent Outreach** — Reach relevant real estate contacts faster with keyword-based targeting
- 🔬 **Market Research** — Analyze the housing market and discover public contact patterns
- 📊 **CRM Enrichment** — Add public Zillow contact details to existing databases
- ⚙️ **Data Scraping Workflows** — Integrate public web data into larger research or automation pipelines

#### Input Parameters — Zillow Email Scraper

```json
{
  "country": "United States",
  "emailType": "B2C",
  "engine": "legacy",
  "maxEmails": 100,
  "searchTerms": [
    "fitness",
    "gym",
    "workout"
  ],
  "sourceRegion": "All"
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `country` | String | Yes | `United States` | Selects the country you want to target for the run. |
| `emailType` | String | Yes | `B2C` | Chooses whether the collected emails are treated as B2C or B2B. |
| `engine` | String | No | `legacy` | Selects the scraping engine. The available options are `cost-effective` and `legacy`. |
| `maxEmails` | Integer | Yes | `100` | Sets the maximum number of emails to collect. |
| `searchTerms` | Array | Yes | `["fitness", "gym", "workout"]` | Lists the queries used to find Zillow profiles. |
| `sourceRegion` | String | Yes | `All` | Selects the regional index to target. `All` is the available option. |

#### Output Parameters — Zillow Email Scraper

```json
{
  "keyword": "real estate agent",
  "title": "Jessica Martinez",
  "url": "https://www.zillow.com/profile/jessica-martinez",
  "description": "Licensed real estate professional helping buyers and sellers in Austin, Texas.",
  "email": "jessica.martinez@example.com",
  "email_domain": "example.com",
  "email_type": "B2C",
  "scrape_from": "Zillow",
  "country": "United States"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The search term that produced the result. |
| `title` | Title | text | The title or name shown for the result. |
| `url` | URL | link | Direct link to the profile or page. |
| `description` | Description | text | A short text description associated with the result. |
| `email` | Email | text | The publicly available email address found in the result. |
| `email_domain` | Email Domain | text | The email domain, such as a company or public provider domain. |
| `email_type` | Email Type | text | Indicates whether the record was captured as B2C or B2B. |
| `scrape_from` | Scrape From | text | The source where the result was captured from. |
| `country` | Country | text | The country targeted for the scrape. |

### Why Choose Zillow Email Scraper? 🏆

If you need a Zillow email scraper that delivers structured output and supports practical lead generation workflows, this actor is built for you. It helps you move faster than manual research, stay organized with clean fields, and focus on publicly available data instead of time-consuming copy-paste work. That means better efficiency for real estate marketing, contact extraction, and prospecting.

It is also a useful choice for teams that care about scalability, because the output is ready for spreadsheets, CRMs, and downstream data scraping workflows. If you need help, reach out at <insightflowofficial@gmail.com>. 💬

### How Many Results Can You Scrape? 📈

You can set `maxEmails` anywhere from 1 to 10,000, giving you control over the size of each run. The number of results you get depends on how many relevant Zillow profiles have publicly available contact details for your keywords and target country. The dataset can store the results from your run, and you can export them whenever you need.

For larger lead generation jobs, using reliable proxy support and keeping your keywords focused can help improve consistency. ✅

### Legal Guidelines for Scraping Zillow ⚖️

This actor works with publicly available data only. It does not require logins or access private content, and it is intended for legitimate business, research, and outreach use cases. As with any data scraping workflow, you are responsible for following applicable laws, platform policies, and email marketing rules.

Always use collected data responsibly, especially for agent outreach, seller leads, and buyer leads. If you need data removal help or want to discuss a concern, contact <insightflowofficial@gmail.com>. 📌

### FAQ — Zillow Email Scraper ❓

#### How does Zillow Email Scraper find contacts?

Zillow Email Scraper uses your search terms and targeting settings to locate relevant public Zillow results, then collects publicly available emails and related profile details into a structured dataset.

#### What type of Zillow profiles can I scrape?

You can scrape public Zillow profiles and related pages that include publicly listed contact details. Results depend on what is available in public web data.

#### Can I use Zillow Email Scraper for real estate leads?

Yes. It is a strong fit for real estate leads, prospect emails, and outreach workflows where you need structured public contact extraction.

#### Is Zillow Email Scraper useful for marketing teams?

Absolutely. Marketing teams use it for real estate marketing, list building, and finding contact data for email campaigns and CRM enrichment.

#### How do I limit the number of results?

Use the `maxEmails` input. It lets you cap the number of emails collected in a single run from 1 to 10,000.

#### What if I need B2B instead of B2C?

You can switch the `emailType` input to `B2B` if you want the run to focus on business-oriented email handling.

#### Can I choose a region?

Yes. The actor includes `sourceRegion`, and the available option is `All`.

#### How do I get support?

For support, feedback, or feature requests, contact <insightflowofficial@gmail.com>.

### Conclusion 🏁

**Zillow Email Scraper** gives you a fast, structured way to collect public contact details from Zillow-related results for lead generation, data analysis, and real estate marketing. If you want to save time and scale outreach with better organization, this actor is a practical choice. 🚀

### 🆘 Support & Feedback

Have a question or feature request for Zillow Email Scraper?

- 🐞 **Bug Reports:** Contact support with the issue details
- ✨ **Feature Requests:** Share your ideas for improved lead generation workflows
- 📧 **Email:** <insightflowofficial@gmail.com>

### MX Lookup

Every address is checked at the DNS level: the actor resolves the mail domain's
MX records and reports what it found.

| Field | Meaning |
| --- | --- |
| `mxFound` | `true` when the domain publishes at least one mail server |
| `mxHost` | The lowest-preference (primary) mail server |
| `mxRecords` | Every MX record found, in preference order |
| `mxProvider` | Who runs the mail: Google Workspace, Microsoft 365, Zoho, Proton, ... |
| `mxStatus` | `found`, `no_records`, `no_such_domain`, `timeout`, `error`, or `skipped` |

**Inputs**

- **MX Lookup** - turn the check on or off (default: on).
- **Only keep contacts whose domain has an MX record** - drop unreachable domains.
  Only a definite negative (`no_records` / `no_such_domain`) drops a contact; a
  timeout or resolver error is treated as unknown and the lead is kept.
- **MX lookup timeout (seconds)** - per-domain DNS budget, 1-15s.

This is a domain-level check. It confirms the domain can receive mail; it does
not verify that an individual mailbox exists.

# Actor input Schema

## `country` (type: `string`):

Specify the country to target for Google search results.

## `emailType` (type: `string`):

Choose one — B2C or B2B.

## `engine` (type: `string`):

Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE\_SERP proxy with traditional selectors - more reliable but slower and more expensive.

## `maxEmails` (type: `integer`):

Enter the maximum number of emails to collect.

## `searchTerms` (type: `array`):

List of queries to find Zillow profiles.

## `sourceRegion` (type: `string`):

Select the regional index to target.

## `minLeadScore` (type: `integer`):

Drop any contact whose Lead Score (0-100) falls below this. Leave at 0 for no filter.

## `mxLookup` (type: `boolean`):

Resolve each address's domain to its mail servers. Adds the resolved MX hosts and the mail provider (Google Workspace, Microsoft 365, ...) to every result, and feeds the Lead Score. DNS-level only - it confirms the domain can receive mail, not that the individual mailbox exists.

## `requireMxRecord` (type: `boolean`):

Drop any contact whose domain provably accepts no mail. A lookup that times out or errors is treated as unknown and kept, so a DNS hiccup never silently deletes good leads.

## `mxTimeoutSecs` (type: `integer`):

How long to wait for each DNS answer. Clamped to 1-15 seconds.

## Actor input object example

```json
{
  "country": "United States",
  "emailType": "B2C",
  "engine": "legacy",
  "maxEmails": 100,
  "searchTerms": [
    "real estate agent",
    "realtor",
    "property management"
  ],
  "sourceRegion": "All",
  "minLeadScore": 0,
  "mxLookup": true,
  "requireMxRecord": false,
  "mxTimeoutSecs": 3
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "real estate agent",
        "realtor",
        "property management"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("insightflow/zillow-contact-extractor-accurate-and-high-converting").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchTerms": [
        "real estate agent",
        "realtor",
        "property management",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("insightflow/zillow-contact-extractor-accurate-and-high-converting").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "real estate agent",
    "realtor",
    "property management"
  ]
}' |
apify call insightflow/zillow-contact-extractor-accurate-and-high-converting --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insightflow/zillow-contact-extractor-accurate-and-high-converting"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/dTYWJPfwPI6qMaY7z/builds/QbAJjV8zf0EkdkShI/openapi.json
