# Zillow Phone Number Scraper - Validated Mobile & Landline (`insightflow/zillow-phone-number-scraper-accurate-and-powerful`) Actor

📞 Zillow Phone Number Scraper — collect verified Zillow agent and broker phone numbers. Search by keyword and location, filter by country and line type, and keep only valid records. ✅ Carrier and dial-code metadata included.

- **URL**: https://apify.com/insightflow/zillow-phone-number-scraper-accurate-and-powerful.md
- **Developed by:** [InsightFlow](https://apify.com/insightflow) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.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 Phone Number Scraper

**Zillow Phone Number Scraper** helps you turn time-consuming manual research into a fast, structured lead collection workflow. It’s designed for marketers, data analysts, and researchers who need Zillow data extraction at scale, whether for real estate leads extraction, property listing scraper workflows, or broader real estate prospecting tool use cases. Get cleaner results, save hours, and move from browsing to outreach faster. 📞

### What is Zillow Phone Number Scraper? 🔍

**Zillow Phone Number Scraper** is an Apify automation actor that collects phone numbers from publicly available Zillow profiles, bios, and post content based on your keywords and country targeting. It returns structured records with the keyword, title, description, URL, phone number, country, and dial code. Whether you're a sales professional, recruiter, or marketer, this Zillow contact scraper helps streamline automated web scraping for real estate contact data and listing contact extraction. It’s a practical Zillow API alternative for public contact discovery.

### What Does Zillow Phone Number Scraper Do? ⚙️

This actor takes your keywords, optional location filter, country selection, and phone-number limit, then saves matching public results into a dataset as it finds them. It’s built for reliable Zillow lead generation and contact information scraper workflows, with built-in support for progress saving and result limits.

- 🔍 **Searches** Zillow-related public web data using your keywords and location filter
- 📞 **Extracts** phone numbers from publicly available profiles, bios, and post content
- 🌍 **Filters** results by country, with an optional location field for tighter targeting
- 📊 **Structures** output as clean dataset records for easy review and export
- 💾 **Limits** results with `maxPhoneNumbers` so you can control run length and volume

### What Would Results from Zillow Phone Number Scraper Look Like? 👀

Here’s a realistic example of what a scraped record can look like in the dataset. This is useful for property listing scraper workflows, Zillow data extraction, and real estate database scraping projects.

```json
{
  "keyword": "marketing",
  "title": "Maria Gonzalez",
  "description": "Senior real estate agent helping buyers and sellers in London. Contact: +44 20 7946 0958",
  "url": "https://www.zillow.com/profile/maria-gonzalez",
  "phone_number": "+44 20 7946 0958",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

Export the results from the Apify dataset tab as JSON or CSV.

### Capabilities of Zillow Phone Number Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Target Zillow profiles using the keywords that match your audience, niche, or lead list criteria. |
| ✅ **Location Filter** | Narrow results to a city, region, or country for more relevant real estate contact data. |
| ✅ **Country Targeting** | Select the country that best fits your prospecting or research goals. |
| ✅ **Result Cap (`maxPhoneNumbers`)** | Keep runs focused and control how many phone numbers are collected. |
| ✅ **Built-in Proxy Support** | Helps make large-volume scraping more reliable on public web data. |
| ✅ **Progress Saving** | Preserves work during longer runs so you can continue from where you left off. |
| ✅ **Real-Time Output** | Results are pushed to the dataset as they’re found, so you don’t wait until the end. |
| ✅ **Structured Dataset** | Clean output makes it easy to import into CRM tools, spreadsheets, or analysis workflows. |

### Launch Your First Zillow Phone Number Scraper Task 🚀

#### Required Input Fields

```json
{
  "keywords": [
    "marketing",
    "founder"
  ],
  "country": "United Kingdom (+44)",
  "location": "London",
  "maxPhoneNumbers": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | Yes | `["marketing","founder"]` | Keywords used to find matching public Zillow content and profiles. |
| `location` | String | No | `""` | Optional location filter. Leave it empty for a broader search. |
| `country` | String | Yes | `United Kingdom (+44)` | Country used to target phone numbers. |
| `maxPhoneNumbers` | Integer | No | `20` | Stops the run after this many phone numbers are collected. |

#### Required Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that led to the record being collected. |
| `title` | Title | text | The title or profile name shown in the result. |
| `description` | Description | text | Public text associated with the result, such as bio or post content. |
| `url` | Url | link | The page URL where the result was found. |
| `phone_number` | Phone Number | text | The extracted phone number in a structured format. |
| `country` | Country | text | The country selected for targeting. |
| `dial_code` | Dial Code | text | The dial code associated with the selected country. |

1. **Open** the actor in the Apify Console.
2. **Enter keywords** that match the Zillow audience you want to research.
3. **Set the country** and optionally add a location for more focused real estate leads extraction.
4. **Adjust `maxPhoneNumbers`** if you want a tighter or broader result set.
5. **Run the actor** and monitor the dataset as results are collected.
6. **Download the output** in JSON or CSV for analysis, enrichment, or outreach.

### Solving Real Problems with Zillow Phone Number Scraper 💼

This actor is built for practical Zillow lead generation and contact discovery tasks where speed matters.

- 🎯 **Sales Prospecting** — Build a targeted real estate contact data list for outreach without manual searching
- 📣 **Campaign Targeting** — Segment prospects by keyword and country for better marketing relevance
- 🤝 **Recruiting** — Find public phone contacts connected to real estate professionals or related niches
- 🔬 **Market Research** — Explore public Zillow data to support research on people, profiles, and listing activity
- ⚙️ **Automated Workflows** — Use the structured dataset in recurring automated web scraping pipelines

### What Sets Zillow Phone Number Scraper Apart? 🏆

- 📞 **Focused on phone numbers** — Built specifically for phone number harvesting from public Zillow content
- 🔄 **Smart filters** — Keywords, location, and country targeting help improve result relevance
- 💾 **Resumable runs** — Progress saving reduces the risk of losing work on longer scraping jobs
- 📧 **Human support** — Reach out at <insightflowofficial@gmail.com> for help and feedback

### Search Limits and Capacity 📈

- Set `maxPhoneNumbers` anywhere from 1 to 10,000 per run
- Larger result sets depend on how much public Zillow content matches your keywords and country selection
- For longer runs, increase the timeout in Run Options if needed
- Results are stored in the Apify dataset and can be exported in standard formats

### Is It Legal to Scrape Zillow? ⚖️

This actor accesses only **publicly available data** on Zillow — no logins, private profiles, or restricted content. Public web scraping is generally allowed when used responsibly, but users are responsible for complying with Zillow’s Terms of Service, applicable privacy laws, and anti-spam regulations. Use this tool for legitimate research, prospecting, and data analysis only. For data-removal or compliance inquiries: <insightflowofficial@gmail.com>.

### Ending Note ✉️

*Stop spending hours manually searching Zillow for contacts. The **Zillow Phone Number Scraper** delivers clean, structured phone number data in minutes — helping you move faster from research to outreach. Try it on Apify and see the difference for yourself.*

### FAQ — Zillow Phone Number Scraper ❓

#### How Does the Zillow Phone Number Scraper Work?

It takes your keywords, country, and optional location filter, then collects phone numbers from publicly available Zillow profiles, bios, and post content. Each result is stored as a dataset record.

#### What Types of Zillow Profiles Can I Target?

You can target public Zillow profiles and public content that match your keywords and country settings. The actor is designed for publicly available data only.

#### What Data Does the Zillow Phone Number Scraper Return?

It returns the keyword, title, description, URL, phone number, country, and dial code for each collected record.

#### Can I Use It for Real Estate Lead Generation?

Yes. It’s a practical Zillow lead generation and contact information scraper for marketers, analysts, and researchers who need public contact data.

#### How Do I Control the Number of Results?

Use `maxPhoneNumbers` to stop the run after a chosen number of phone numbers has been collected.

#### Is the Output Easy to Export?

Yes. The data is saved in a structured dataset and can be exported as JSON or CSV for spreadsheets, CRMs, or research workflows.

#### What If I Need Help or Have a Feature Request?

You can contact support at <insightflowofficial@gmail.com>.

### 🆘 Support & Feedback

Have a question or found an issue with the **Zillow Phone Number Scraper**?

- 🐞 **Bug Reports:** Share the issue with our team so it can be reviewed
- ✨ **Custom Solutions & Feature Requests:** Contact us for help with your workflow or use case
- 📧 **Email:** <insightflowofficial@gmail.com>

### Call Confidence & Provenance

Every number now carries the evidence behind it, so a list can be triaged before
anyone starts dialling.

| Field | Meaning |
| --- | --- |
| `confidence` | 0-100: how likely this is a genuine, correctly read business number |
| `confidenceBand` | `high` (80+), `good` (60-79), `medium` (40-59), `low` (<40) |
| `contextReason` | Why it was accepted - `link:tel_uri`, `positive_label:whatsapp`, `international_format`, `no_label`, ... |
| `contextWindow` | The wording printed either side of the number on the page |
| `foundBy` | `tel_uri`, `wa.me`, `api.whatsapp`, `telegram`, `signal`, `viber` or `matcher` |
| `foundIn` | Which text the number appeared in |
| `businessName` | The business the listing is about, read from its headline |
| `websiteDomain` | The site the number was published on |
| `category` | Broad industry tag - `industrial`, `health`, `food`, `professional`, ... |
| `scrapedAt` | UTC timestamp, so you know how fresh the row is |

A number that also appears inside a click-to-call or click-to-chat link on the
same page is the most reliable case there is, and scores highest.

**Inputs**

- **Minimum confidence** - drop rows below a score. `0` keeps everything.
- **Surrounding text to keep** - how much context to record per number (20-200 chars).

`category` is left blank rather than guessed when the wording is too generic to
place the business, and `businessName` falls back to the leading part of the
headline when no company name is recognisable.

# Actor input Schema

## `keywords` (type: `array`):

Enter keywords to search for (e.g., 'Target Keyword').

## `location` (type: `string`):

Filter by location (e.g., 'London', 'California'). Leave empty for global search.

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

Select the country to target for phone numbers.

## `maxPhoneNumbers` (type: `integer`):

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration.

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

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

## `minConfidence` (type: `integer`):

Drop any number scoring below this (0-100). The score reflects how clearly the number was labelled as a phone number, whether the digits form a valid number, and whether it came from a click-to-call or chat link. Leave at 0 for no filter.

## `contextChars` (type: `integer`):

How many characters of the wording either side of the number to keep in the Surrounding text column, so you can judge a number without opening the page.

## Actor input object example

```json
{
  "keywords": [
    "real estate agent",
    "realtor"
  ],
  "country": "United States (+1)",
  "maxPhoneNumbers": 20,
  "minLeadScore": 0,
  "minConfidence": 0,
  "contextChars": 60
}
```

# 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 = {
    "keywords": [
        "real estate agent",
        "realtor"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("insightflow/zillow-phone-number-scraper-accurate-and-powerful").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 = { "keywords": [
        "real estate agent",
        "realtor",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("insightflow/zillow-phone-number-scraper-accurate-and-powerful").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 '{
  "keywords": [
    "real estate agent",
    "realtor"
  ]
}' |
apify call insightflow/zillow-phone-number-scraper-accurate-and-powerful --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insightflow/zillow-phone-number-scraper-accurate-and-powerful"
        }
    }
}

```

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/ohNog47xe8rb4c6Nn/builds/gdMfx3SbLW3GVjjTm/openapi.json
