# Wix Phone Number Scraper - Keyword Search, Verified Numbers (`scrapido/wix-phone-number-scraper`) Actor

📞 Wix Phone Number Scraper finds site owner contact numbers via keyword and location search. ✅ Validated results with country code, line type and carrier. 💼 Built for web agencies & SMB lead generation calling.

- **URL**: https://apify.com/scrapido/wix-phone-number-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (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 $2.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 Phone Number Scraper 📞

**Wix Phone Number Scraper** helps marketers, recruiters, and sales teams find business phone numbers fast by extracting them from publicly available Wix profiles, bios, and post content. If you’re tired of manual phone number hunting, this Wix email scraper–style workflow repackaged for calls lets you scale outreach and accelerate lead generation from Wix.

***

### 🌟 Key Features of Wix Phone Number Scraper

| Feature | Benefit |
|---|---|
| ✅ **Keyword-Based Targeting** | Use your own terms to find the Wix business audience you care about |
| ✅ **Country Code Selection** | Target phone numbers for a specific country, so results match your outreach region |
| ✅ **Location Filter (Optional)** | Add a location like “London” or “California” to improve relevance when you want tighter segmentation |
| ✅ **Max Phone Numbers Control** | Stop after the amount you need—great for controlled experiments and predictable runs |
| ✅ **Bulk Extraction Friendly** | Designed for larger scraping tasks so you can build a Wix website scraping pipeline |
| ✅ **Progress Resuming** | Continues where it left off to support long-running or interrupted scraping jobs |
| ✅ **Dataset Output for Easy Export** | Store results in a structured dataset you can export and analyze right away |

***

### 📥 Input — Wix Phone Number Scraper Parameters

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | — | Search terms used to surface relevant Wix profiles, bios, and post content for contact scraping |
| `location` | String | No | `""` | Optional geo filter (for example, “London” or “California”). Leave empty for global searching |
| `country` | String | ✅ Yes | `United Kingdom (+44)` | Choose the country to target for phone numbers (this controls the phone-number country focus) |
| `maxPhoneNumbers` | integer | No | `20` | Stop once the scraper finds this many phone numbers. Higher values can take longer |

***

### 📤 Output — What Wix Phone Number Scraper Returns

The actor saves each result as a JSON record in your Apify dataset.

```json
{
  "keyword": "marketing",
  "title": "Marketing Founder",
  "description": "Helping startups grow through brand strategy and performance marketing.",
  "url": "https://example.com/wix-profile/marketing-founder",
  "phone_number": "+447911123456",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

| Field | Type | Description |
|---|---|---|
| `keyword` | text | The keyword you provided that helped surface this Wix contact result |
| `title` | text | The Wix profile title or relevant business heading associated with the found phone number |
| `description` | text | The extracted profile/bio/post text context where the phone number was found |
| `url` | link | The URL of the Wix profile/page associated with this record |
| `phone_number` | text | The phone number found for the targeted country |
| `country` | text | The country label used for the phone-number targeting |
| `dial_code` | text | The dial code corresponding to the targeted country |

***

### 💻 How to Use Wix Phone Number Scraper — Step-by-Step

1. **Open the Actor** — Launch **Wix Phone Number Scraper** in Apify and review the dataset output settings.
2. **Enter Keywords** — Add terms that match your target business niche for better Wix contact form scraper–style lead discovery.
3. **Set Country Targeting** — Choose the country to extract phone numbers from, based on where you do business.
4. **(Optional) Add Location** — Narrow results to a city or region when you want more specific lead generation from Wix.
5. **Choose a Max Limit** — Set `maxPhoneNumbers` to control runtime and batch size.
6. **Run & Monitor** — Start the job and watch progress as results are added to the dataset.
7. **Export Your Dataset** — Download and import into your CRM, spreadsheets, or email outreach workflows.

***

### 💡 Best Use Cases for Wix Phone Number Scraper

- 📞 **Phone Number Extraction** — automate extracting phone numbers from Wix for faster sales prospecting
- 🧩 **Lead Generation from Wix** — build a call-focused pipeline without manual browsing of Wix profiles
- 🔍 **Contact Page Crawler (Conceptual)** — gather Wix business contacts where phone numbers are publicly shown
- 📊 **Data Mining from Websites** — support research projects that need structured Wix website scraping outputs
- 🏢 **Scrape Business Contacts** — enrich lists for outbound teams using the Wix email scraper equivalent workflow (but for phones)

***

### Disclaimer

This actor only accesses **publicly available data** on Wix. It does not access private profiles, authenticated content, or password-protected pages. Users are responsible for complying with applicable laws (including GDPR/CCPA where relevant), Wix terms, and anti-spam regulations. Use this tool only for legitimate purposes such as lead generation, research, and marketing outreach in accordance with local regulations. For data-removal requests, contact 📧 <scrapidocontact@gmail.com>.

***

### 🆘 Support & Feedback

- 🐞 **Bug Reports:** Open a ticket in the repository's Issues section
- ✨ **Custom Solutions & Feature Requests:** Reach out to our team
- 📧 **Email:** <scrapidocontact@gmail.com>

Your feedback shapes the roadmap — we read every message.

### Multiple Phone Type

**Phone Types** replaces the old single Number Type choice: select as many kinds
of line as you want and the run collects all of them.

| Type | Kept when the number is |
| --- | --- |
| Mobile | A confirmed mobile |
| Landline | A confirmed fixed line |
| Toll-Free | A freephone number |
| VoIP | An internet-telephony number |
| Premium-Rate | A premium-rate number |
| Shared-Cost | A shared-cost number |

Leave it empty for every type. Each number is checked against its *real* line
type before being kept, so the filter is enforced rather than merely requested.
Numbers on ranges where mobile and landline genuinely cannot be told apart (the
US, Canada and Mexico) are kept rather than silently dropped - discarding them
would quietly lose good leads.

### Outreach links

| Field | Meaning |
| --- | --- |
| `telLink` | A clickable `tel:` link, so a row can be dialled straight from a spreadsheet or CRM |
| `whatsappLink` | A `wa.me` chat link, or empty for a confirmed landline or a number that failed validation |
| `whatsappCapable` | Whether the number is on a line WhatsApp can run on |

`whatsappCapable` is a plain yes/no you can filter on. It never claims the
person actually uses WhatsApp - only that the number is of a kind that could.
Switch the links off with **Include WhatsApp links**; the capability flag is
still reported.

# 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.

## `numberType` (type: `string`):

Restrict results to a specific line type, classified offline via libphonenumber. Any keeps every valid match.

## `phoneTypes` (type: `array`):

Which kinds of line to collect. Pick as many as you like - each number is checked against its real line type before it is kept. Leave empty for every type. Numbers on ranges where mobile and landline cannot be told apart (the US, Canada and Mexico) are always kept rather than silently dropped.

## `includeWhatsappLinks` (type: `boolean`):

Add a ready-made wa.me chat link for numbers on a line WhatsApp can run on. The link means the number is in a form WhatsApp accepts - not proof that an account exists.

## Actor input object example

```json
{
  "keywords": [
    "marketing",
    "founder"
  ],
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20,
  "numberType": "Any",
  "phoneTypes": [
    "Mobile"
  ],
  "includeWhatsappLinks": true
}
```

# 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": [
        "marketing",
        "founder"
    ],
    "phoneTypes": [
        "Mobile"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/wix-phone-number-scraper").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": [
        "marketing",
        "founder",
    ],
    "phoneTypes": ["Mobile"],
}

# Run the Actor and wait for it to finish
run = client.actor("scrapido/wix-phone-number-scraper").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": [
    "marketing",
    "founder"
  ],
  "phoneTypes": [
    "Mobile"
  ]
}' |
apify call scrapido/wix-phone-number-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/wix-phone-number-scraper"
        }
    }
}

```

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/KfDZFAMg7OLhrxpYW/builds/tsOlNr1urenswNTFn/openapi.json
