# Wix Email Scraper - Bulk Keywords, Decodes Hidden Emails (`code-beat/wix-email-scraper-ultra-fast-and-precise`) Actor

🧩 Wix Email Scraper pulls website owner and small business emails in bulk by keyword. 🔓 Decodes obfuscated addresses, skips previous runs. 💼 Great for web agencies, SEO services & SMB lead generation at scale.

- **URL**: https://apify.com/code-beat/wix-email-scraper-ultra-fast-and-precise.md
- **Developed by:** [Code Beat](https://apify.com/code-beat) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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

### Wix Email Scraper

**Wix Email Scraper** helps you collect publicly available email addresses from Wix pages using keywords, optional location targeting, and custom email-domain filters. It’s a practical Wix email extractor for marketers, analysts, and researchers who want faster Wix lead generation without manual browsing. 🚀

### What Does Wix Email Scraper Do? 🤖

Wix Email Scraper scrapes publicly available Wix pages and extracts contact details that match your keywords and domain filters. You provide one or more keywords, can optionally add a location, and can narrow results with custom email domains such as `@gmail.com` or `@yahoo.com`. During a run, the actor collects matching leads, filters out duplicates, and saves results to your dataset as it goes. This makes it a useful Wix contact scraper for anyone who wants to automate Wix email collection instead of checking pages one by one.

### What Can Wix Email Scraper Extract? 📊

This Wix website scraper returns a clean set of lead fields that make it easy to review, filter, and export results. Each record shows which keyword surfaced the lead, plus the page title, description, URL, and email address. It’s built for Wix data extraction at a practical level, so you can quickly move from scraped leads to outreach or analysis.

| Data Type | Field Name | Description |
|---|---|---|
| Discovery | `keyword` | The keyword that found the Wix result |
| Identity | `title` | The page title associated with the result |
| Context | `description` | The visible page description or snippet text |
| Navigation | `url` | Direct link to the Wix page |
| Contact | `email` | The extracted email address |

#### Key Features of Wix Email Scraper ⚡

- ✅ **Keyword-Driven Search:** Use your own keywords to focus on the most relevant Wix lead generation opportunities.
- 🌍 **Location Targeting:** Add a location filter to narrow results for regional prospecting and research.
- 📧 **Custom Domain Filtering:** Use custom domains to find specific email types like `@gmail.com` or `@yahoo.com`.
- 🔄 **Reliable Scraping:** Built-in proxy support helps keep the Wix site crawler stable during longer runs.
- 📊 **Structured Output:** Every result is saved as a clear JSON record in your dataset for easy review.
- 💾 **Real-Time Saving:** Results are pushed incrementally, so you don’t lose progress if the run stops early.
- ⚙️ **Configurable Limits:** Set `maxEmails` to control how many leads you want from each run.

### How to Use Wix Email Scraper 🚀

1. **Open the Actor** — Find **Wix Email Scraper** in Apify.
2. **Add Keywords** — Enter one or more keywords or queries.
3. **Set a Location** — Optionally narrow results to a specific location.
4. **Choose Email Domains** — Add custom domains like `@gmail.com` or `@yahoo.com`.
5. **Set the Limit** — Define `maxEmails` to control run size and cost.
6. **Run the Actor** — Start the actor and follow the live logs.
7. **Export Results** — Download your scraped leads from the dataset in JSON or CSV.

No coding required — just launch, collect, and export. ✨

### Wix Email Scraper Output Format 📦

The actor saves results to a dataset in structured JSON format, making it easy to use for Wix contact information extraction, CRM enrichment, or manual review.

#### Input Example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager", "founder"]` | One or more keywords or queries to search for. |
| `location` | String | No | `""` | A location filter to narrow search results. |
| `customDomains` | Array | No | `["@gmail.com", "@yahoo.com"]` | Email domains to include when collecting addresses. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect before the actor stops. |

#### Output Example

```json
[
  {
    "keyword": "manager",
    "title": "Wix Studio Support",
    "description": "Contact our team for design and development support.",
    "url": "https://example-wix-site.com/contact",
    "email": "support@example-wix-site.com"
  }
]
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that surfaced the lead. |
| `title` | Title | text | The page title or lead name shown in the result. |
| `description` | Description | text | The visible page description or summary text. |
| `url` | Url | link | Direct link to the Wix page. |
| `email` | Email | text | The email address found in the public page content. |

### Wix Email Scraper Use Cases 🎯

**B2B Lead Generation:** Build targeted lists from Wix pages using role-based and industry-based keywords for outreach campaigns.

**Email Marketing Campaigns:** Use Wix email extraction to find contact addresses for newsletters, follow-ups, and promotional messaging.

**Market Research:** Study how businesses present contact details across Wix websites and compare patterns by niche or location.

**CRM Enrichment:** Add fresh Wix contact data to existing records to improve segmentation and sales workflows.

**Prospecting at Scale:** Turn manual Wix page scraping into a repeatable Wix scraper tool that saves time on every run.

### How Much Will Wix Email Scraper Cost You? 💰

This actor supports controlled runs with `maxEmails`, so you can manage how much data you collect in a single execution. The more emails you ask for, the longer a run may take, especially when using broader keywords or larger keyword lists. Apify’s pricing and compute usage depend on your account and run settings, so using `maxEmails` is the easiest way to cap spend and keep Wix email harvesting efficient.

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

This actor collects only publicly available data from Wix pages. It does not require private access or authenticated content. As with any public web data workflow, you’re responsible for complying with applicable laws, platform policies, and anti-spam rules in your jurisdiction. Use the results for legitimate research, marketing, or business development. For questions or data-removal requests, contact <codebeatapi@gmail.com>.

### Wix Email Scraper Input Parameters 📋

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20
}
```

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["manager", "founder"]` | A list of keywords or queries to search for. |
| `location` | String | No | `""` | Location to filter search results. |
| `customDomains` | Array | No | `["@gmail.com", "@yahoo.com"]` | List of custom email domains. |
| `maxEmails` | Integer | No | `20` | Maximum number of emails to collect. The actor stops once this limit is reached. |

### During the Actor Run ⏱️

You’ll see live logs in Apify Console while the actor processes each keyword and domain combination. Results are saved to the dataset in real time, so you can monitor progress before the run ends. Duration depends on your keyword set, the number of domains, and your `maxEmails` setting. If results are limited, try broader keywords, more domains, or a wider location scope. This is especially helpful for Wix page scraping and Wix directory scraper workflows.

### Final Note ✉️

Start collecting Wix emails in minutes with the **Wix Email Scraper**. It’s built for simple setup, structured results, and scalable lead collection. Need help or want to share feedback? Reach out at <codebeatapi@gmail.com>.

### FAQ — Wix Email Scraper ❓

#### How does Wix Email Scraper find emails?

Wix Email Scraper uses your keywords and email-domain filters to find relevant contacts on publicly available Wix pages. It returns only emails that appear in the public page content, making it a practical Wix business email finder for research and outreach.

#### What types of Wix pages can I scrape?

You can scrape public Wix pages that contain visible contact information and match your chosen keywords. Pages without public emails will not produce email results, which is normal for any Wix contact scraper.

#### What data does Wix Email Scraper save?

It saves the keyword used, the page title, the page description, the page URL, and the extracted email address. These fields are designed for easy review and export.

#### Why use Wix Email Scraper instead of manual research?

Manual browsing takes time, especially when you need many leads. Wix Email Scraper automates the process, making Wix email extraction faster and more consistent for marketing, analysis, and prospecting.

#### How much does Wix Email Scraper cost to use?

Your run size is controlled by `maxEmails`, which helps you manage processing time and output volume. Smaller runs are quicker, while larger runs may take longer depending on how many keywords and domains you provide.

#### Can I use Wix Email Scraper for lead generation?

Yes. Wix Email Scraper is well suited for Wix lead generation because it helps you gather publicly available contacts from pages that match your search terms.

#### What if I do not get many results?

Try broader keywords, add related terms, or include more custom email domains. You can also remove or widen the location filter to increase coverage.

#### How do I get support for Wix Email Scraper?

For questions, feedback, or data-removal requests, contact <codebeatapi@gmail.com>.

### Support & Feedback

Need help with Wix Email Scraper or want a custom feature?

- 🐞 **Bug Reports:** Share the issue with our team.
- ✨ **Feature Requests:** Send your ideas for future improvements.
- 📧 **Email:** <codebeatapi@gmail.com>

### Country & Time Targeting

Both filters are applied to the Google query itself, so they shape which pages
the dork is answered from rather than filtering after the fact.

**Target Country** - runs the search as if from that country (`gl`). Turn on
**Strict country filter** to additionally restrict results to pages Google
attributes to it (`cr=countryXX`); that is much tighter and returns noticeably
fewer results. Leave the country on *Global (no country filter)* for worldwide
results.

**Result Language** - restricts results to a single language (`hl` + `lr`).

**Time Range** - limits results to a publication window: past hour, 24 hours,
week, month, year, or an explicit *Custom range* using **Custom range: from** /
**to** in `YYYY-MM-DD` form. A page Google indexed last week is far more likely
to carry a live mailbox than one it last saw five years ago.

Selecting *Custom range* without either date falls back to no time filter rather
than searching all of time by accident.

# Actor input Schema

## `scrapeMode` (type: `string`):

Find New Emails (default) searches Airbnb by keyword. Clean My List skips searching entirely and instead runs the emails you paste into Email List (below) through the same deliverability checks.

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

A list of keywords or queries to search for.

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

Location to filter search results.

## `customDomains` (type: `array`):

List of custom email domains

## `emailList` (type: `array`):

Paste the emails you want checked for deliverability. Only used when Scrape Mode is set to "Clean My List".

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

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## `verificationMode` (type: `string`):

Quick Check (default) validates syntax and MX records only - fast, no added latency. Deep Check additionally flags disposable-domain addresses and checks each domain against a public spam blocklist (Spamhaus DBL). Off skips validation entirely.

## `minQualityScore` (type: `number`):

Drop any contact whose quality score (0.0-1.0) falls below this. Leave at 0 for no filter.

## `excludeCatchAll` (type: `boolean`):

Drop contacts on domains confirmed to accept mail for any address (only applies when that signal is available).

## `requireMxValid` (type: `boolean`):

Drop any contact whose domain has no valid mail server (MX record).

## `targetCountry` (type: `string`):

Ask Google to answer as if searching from this country. Leave on "Global (no country filter)" for worldwide results.

## `strictCountry` (type: `boolean`):

Restrict results to pages Google attributes to the target country (cr=countryXX), instead of only preferring them. Much tighter targeting, noticeably fewer results.

## `searchLanguage` (type: `string`):

Restrict results to one language. Leave on "Any language" for no filter.

## `timeRange` (type: `string`):

Only return pages Google indexed within this window. Recent pages are more likely to hold a mailbox that still works.

## `customDateFrom` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## `customDateTo` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## Actor input object example

```json
{
  "scrapeMode": "Find New Emails",
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "emailList": [],
  "maxEmails": 20,
  "verificationMode": "Quick Check",
  "minQualityScore": 0,
  "excludeCatchAll": false,
  "requireMxValid": false,
  "targetCountry": "Global (no country filter)",
  "strictCountry": false,
  "searchLanguage": "",
  "timeRange": "Any time",
  "customDateFrom": "",
  "customDateTo": ""
}
```

# 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": [
        "manager",
        "founder"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "emailList": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("code-beat/wix-email-scraper-ultra-fast-and-precise").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": [
        "manager",
        "founder",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "emailList": [],
}

# Run the Actor and wait for it to finish
run = client.actor("code-beat/wix-email-scraper-ultra-fast-and-precise").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": [
    "manager",
    "founder"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "emailList": []
}' |
apify call code-beat/wix-email-scraper-ultra-fast-and-precise --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,code-beat/wix-email-scraper-ultra-fast-and-precise"
        }
    }
}

```

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/PeqEhBYgd1Hs5S4dP/builds/XnpnxvLONw5ADh6fe/openapi.json
