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

📞 WeChat Phone Number Scraper finds business contact numbers via keyword and location search. ✅ Validated numbers with country code, line type and carrier. 🇨🇳 Great for cross-border ecommerce & partnership outreach.

- **URL**: https://apify.com/scrapido/wechat-phone-number-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **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

### Wechat Phone Number Scraper 📱

**Wechat Phone Number Scraper** is an Apify automation actor built to save you hours of manual research when you’re trying to discover WeChat contacts. Whether you’re doing WeChat lead generation or building an **OSINT phone number discovery** workflow, it helps teams run **WeChat phone number extractor** searches at scale and turn findings into actionable outreach lists.

***

### What is Wechat Phone Number Scraper? 🔍

**Wechat Phone Number Scraper** is an Apify actor that performs automated scraping of phone numbers from WeChat profiles, bios, and post content using your selected keywords and country targeting. It’s especially useful if you’re looking for a **Wechat contact scraping** workflow—an automated **WeChat directory scraping** style pipeline that returns structured results (including a clean dataset for analysis). Whether you’re a sales professional, recruiter, or marketer, this **Wechat Phone Number Scraper** helps you quickly collect phone numbers without the repetitive copy-paste work of a manual process. It functions as a **phone number extraction from WeChat** tool with strong filters for relevance.

***

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

After you provide input keywords, an optional location, and a target country, this actor scrapes publicly available WeChat content and returns matching phone number records in a structured dataset. Results are capped by your configuration so you can control how much data you collect per run. This **Wechat Phone Number Scraper** is designed to streamline **web scraping WeChat contacts** for fast list-building and **email and phone enrichment** use cases.

- 🔍 **Searches** WeChat using your keywords and country targeting to focus on relevant profiles
- 📞 **Extracts** phone numbers from WeChat bios, profiles, and post content where they are publicly listed
- 🌍 **Filters** results by your selected country (and optionally by location) to improve lead relevance
- 📊 **Structures** output as clean JSON records in the Apify dataset for easy import
- 💾 **Exports** results from the dataset tab (you can download and feed into CRM or outreach tooling)

***

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

You’ll get one JSON record per scraped lead in the dataset—ready for downstream enrichment or segmentation.

```json
{
  "keyword": "marketing",
  "title": "Marketing Lead | WeChat Growth",
  "description": "Growth-focused profile. DM for collaborations. Public contact details listed on profile content.",
  "url": "https://wechat.com/marketing-lead-wechat-growth",
  "phone_number": "+447911123456",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

You can export the dataset as JSON/CSV from the Apify Console.

***

### Capabilities of Wechat Phone Number Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Target WeChat leads matching your exact audience intent using your provided `keywords` |
| ✅ **Location Filter** | Optionally limit results by `location` (leave empty for global search) |
| ✅ **Country Targeting** | Choose the country for phone number targeting (e.g., `United Kingdom (+44)`) to improve relevance |
| ✅ **Result Cap (`maxPhoneNumbers`)** | Stop after a specific number of phone numbers are found to control run duration and output volume |
| ✅ **Proxy Support** | Built-in proxy support for more reliable scraping on large tasks |
| ✅ **Real-Time Dataset Writing** | Results are pushed into the dataset incrementally as they’re found, so you can monitor progress |
| ✅ **Resume-Friendly Progress** | Designed to keep track of progress so long-running jobs can resume rather than restart |
| ✅ **Structured Output for Lead Ops** | Output is standardized with fields you can map directly into marketing and CRM workflows |

This makes it a practical **WeChat account search tool** for **data scraping for marketing** and repeatable **lead scraping automation**.

***

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

To start, you’ll mainly configure keywords, country targeting, and (optionally) output limits.

#### Input Fields

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

| Parameter | Type | Required | Default | Description |
|---|---:|:---:|---|---|
| `keywords` | array | ✅ Yes | `["marketing","founder"]` | Search terms used to find relevant WeChat leads from publicly available content |
| `location` | string | No | `""` | Optional geo filter (e.g., `London`, `California`). Leave empty for global search |
| `country` | string | ✅ Yes | `United Kingdom (+44)` | Country targeting for phone numbers (used as the selection basis for your dial code targeting) |
| `maxPhoneNumbers` | integer | No | `20` | Stop scraping after this many phone numbers are found (higher values extend runtime) |

#### Required Output Fields

This actor saves results in the Apify dataset with the following structure:

| Field | Label | Description |
|---|---|---|
| `keyword` | Keyword | The keyword used for the lead discovery that produced this record |
| `title` | Title | The WeChat profile/business title associated with the lead |
| `description` | Description | A short profile/lead description as captured from publicly available content |
| `url` | Url | The source URL for the lead on the web |
| `phone_number` | Phone Number | The extracted phone number for the lead |
| `country` | Country | The target country name for the phone number record |
| `dial_code` | Dial Code | The dialing code associated with the record’s country |

**Step-by-step launch guide:**

1. **Open** the actor in the Apify Console
2. **Add your `keywords`** for the WeChat phone number extractor workflow
3. **Select your `country`** from the dropdown to target phone numbers correctly
4. **(Optional) Add `location`** to narrow results
5. **(Optional) Set `maxPhoneNumbers`** to control run size
6. **Click Start** and monitor progress in the logs
7. **Download dataset results** from the **Dataset** tab

***

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

- 🎯 **WeChat lead generation** — get a focused phone list faster than manual WeChat contact discovery
- 📣 **Email and phone enrichment** — combine phone findings with your existing CRM or outreach workflows
- 🤝 **Recruitment and hiring** — identify public WeChat contacts for specific roles or industries using **WeChat user data collection**
- 🔬 **Competitive research** — map how competitors and partners present public contact details on WeChat
- ⚙️ **Automation for marketing teams** — schedule repeat **phone number extraction from WeChat** runs with consistent dataset output

***

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

- 🧠 **Smart filters for targeting** using `keywords`, optional `location`, and country selection to improve lead relevance
- 📊 **Consistent dataset structure** designed for easy import and analysis (a key advantage of **WeChat contact scraping**)
- 🔄 **Operational resilience** with resume-friendly progress handling for large scraping jobs
- 📧 **Support available**—for custom needs or assistance, contact <scrapidocontact@gmail.com>

***

### Search Limits and Capacity 📈

Use `maxPhoneNumbers` (minimum `1`, maximum `10000`) to control how much data is collected per run—useful for **lead scraping automation** budgets and time windows. Larger tasks may take time, and you can adjust run time via **Run Options** (default timeout is **3600s / 1hr**). For compliance and privacy considerations, remember you’re working with **publicly available data** and it’s your responsibility to use it appropriately.

***

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

This actor is designed to work with **publicly available sources** and does not access private profiles or restricted content. Public data scraping is often considered lawful, but outcomes depend on your jurisdiction and the platform’s policies. It’s your responsibility to comply with applicable laws and WeChat/website terms, including GDPR/CCPA and anti-spam rules. For data removal or compliance questions, contact <scrapidocontact@gmail.com>.

***

### Ending Note ✉️

Stop spending hours manually hunting for phone numbers on WeChat. **Wechat Phone Number Scraper** delivers structured, dataset-ready results so you can move quickly from discovery to outreach—ideal for marketers, researchers, and teams building **WeChat lead generation** lists.

***

### FAQ — Wechat Phone Number Scraper ❓

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

You provide `keywords`, a `country` selection (and optionally `location`). The actor then scrapes phone numbers from publicly available WeChat content and stores each result as a structured record in the Apify dataset.

#### What Types of Wechat Data Can I Target?

The actor is described as scraping phone numbers from Wechat bios, profiles, and post content. If there’s no public phone number data available in those areas, the record won’t appear in the dataset.

#### What Do I Get Back After the Run?

You’ll receive a dataset named **Wechat Phone Numbers Dataset** with fields in this order: `keyword`, `title`, `description`, `url`, `phone_number`, `country`, `dial_code`.

#### Why Use a Wechat Phone Number Extractor Instead of Manual Research?

Manual workflows are slow, inconsistent, and hard to repeat. This actor streamlines **phone number extraction from WeChat** by using your keyword set and country targeting, while writing structured output that’s ready for analysis and outreach.

#### What If Results Are Fewer Than Expected?

If you see fewer phone numbers than expected, try broader keyword combinations or adjust country targeting. You can also increase `maxPhoneNumbers` (within its limits) to collect more results per run.

#### How Do I Control How Much Data Is Collected?

Use `maxPhoneNumbers` to cap the number of phone numbers found. This directly affects how long the run may take and how large your output will be.

#### What Are Common Use Cases for WeChat Contact Scraping?

Common use cases include **OSINT phone number discovery**, **email and phone enrichment**, **social media phone scraping**, and building lead lists for **data scraping for marketing** and outreach campaigns.

#### How Can I Get Support or Request Custom Changes?

For custom scraping needs or support, contact <scrapidocontact@gmail.com>.

### 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": [
    "contact",
    "business"
  ],
  "country": "United States (+1)",
  "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": [
        "contact",
        "business"
    ],
    "phoneTypes": [
        "Mobile"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapido/wechat-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": [
        "contact",
        "business",
    ],
    "phoneTypes": ["Mobile"],
}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/wechat-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/ge1r8Qh0k9NsJggVc/builds/iE58g5PHtGwgYT8qt/openapi.json
