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

📞 WeChat Phone Number Scraper — collect verified WeChat business 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/wechat-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

### Wechat Phone Number Scraper 🔍

**Wechat Phone Number Scraper** helps you find publicly available phone numbers from Wechat profiles, bios, and posts using your chosen keywords and country targeting. It’s designed for marketers, recruiters, sales pros, analysts, and researchers who want faster WeChat lead generation, a more efficient WeChat contact extractor, and scalable WeChat contact discovery without manual browsing. 🚀

### 🌟 Key Features of Wechat Phone Number Scraper

| Feature | Benefit |
|---|---|
| ✅ **Keyword-Based Search** | Use your own keywords to focus on the most relevant WeChat profiles and posts. |
| ✅ **Country Targeting** | Select a country to improve WeChat mobile number extraction with the right dialing context. |
| ✅ **Optional Location Filter** | Narrow results by city, region, or other location text for more precise WeChat user lookup tool results. |
| ✅ **Result Limit Control** | Set a maximum number of phone numbers to keep runs focused and cost-efficient. |
| ✅ **Public Data Collection** | Scrapes data from publicly available sources on Wechat for practical WeChat data mining. |
| ✅ **Incremental Dataset Saving** | Results are pushed as they are found, helping protect long runs from data loss. |
| ✅ **Built-In Resilience** | Includes retries and fallbacks for more reliable scraping on larger jobs. |
| ✅ **Resume Support** | Can continue from saved progress, which is useful for bigger WeChat contact list scraping tasks. |

### 📥 Input — Wechat Phone Number Scraper Parameters

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["marketing","founder"]` | Keywords used to find relevant Wechat profiles and posts. |
| `location` | String | No | `""` | Optional location filter such as a city or region. Leave empty if you want broader results. |
| `country` | String | ✅ Yes | `United Kingdom (+44)` | Country used for phone number targeting and dialing context. |
| `maxPhoneNumbers` | Integer | No | `20` | Maximum number of phone numbers to collect before stopping the run. |

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

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

```json
{
  "keyword": "founder",
  "title": "Sophie Williams",
  "description": "Founder building products for small businesses. Contact: +44 7700 900123",
  "url": "https://wechat.com/sophie.williams",
  "phone_number": "+447700900123",
  "country": "United Kingdom (+44)",
  "dial_code": "+44"
}
```

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that led to this result. |
| `title` | Title | text | The profile or result title associated with the phone number. |
| `description` | Description | text | Publicly available text from the profile or post content. |
| `url` | Url | link | The link to the public result page. |
| `phone_number` | Phone Number | text | The phone number found in the result, formatted as a text value. |
| `country` | Country | text | The selected target country for the run. |
| `dial_code` | Dial Code | text | The dialing code associated with the selected country. |

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

1. **Open the Actor** — Find **Wechat Phone Number Scraper** in the Apify Store and open its page.
2. **Enter Keywords** — Add the terms you want to use for WeChat user data extraction and contact discovery.
3. **Choose a Country** — Select the country that matches the phone numbers you want to target.
4. **Set an Optional Location** — Add a location if you want more focused WeChat public profile scraping.
5. **Adjust the Limit** — Set the maximum number of phone numbers to collect in one run.
6. **Run the Actor** — Start the task and monitor progress in the live logs.
7. **Review the Dataset** — Export your scraped results from the dataset once the run finishes.

*No coding required. Results are ready in minutes.* ✨

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

- 🎯 **WeChat Lead Generation** — Build targeted contact lists from publicly available Wechat data.
- 📣 **Outreach Research** — Find phone numbers tied to relevant profiles for sales and partnership outreach.
- 🔬 **Market Research** — Discover contacts and public profile signals for audience analysis.
- 🧩 **Contact Enrichment** — Add phone number details to existing research or CRM records.
- 📊 **WeChat Contact Discovery** — Speed up manual research with structured, searchable results.

### Disclaimer

This actor only accesses publicly available data on Wechat. It does not access private accounts, password-protected content, or restricted information. Users are responsible for making sure their use complies with applicable laws, platform policies, and privacy requirements. Use it only for legitimate purposes such as research, lead generation, and compliant outreach. For data-removal requests, contact 📧 <insightflowofficial@gmail.com>.

### 🆘 Support & Feedback

Have a question or need help with the **Wechat Phone Number Scraper**? We’re here to help. 💬

- 🐞 **Bug Reports:** Send us the details of the issue so we can investigate.
- ✨ **Custom Solutions & Feature Requests:** Share what you’d like to see next.
- 📧 **Email:** <insightflowofficial@gmail.com>

Your feedback helps improve the tool for marketers, data analysts, and researchers.

### 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": [
    "contact",
    "business"
  ],
  "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": [
        "contact",
        "business"
    ]
};

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

# Run the Actor and wait for it to finish
run = client.actor("insightflow/wechat-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": [
    "contact",
    "business"
  ]
}' |
apify call insightflow/wechat-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/wechat-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/XJKdJPIH9II9kPhNp/builds/pr1Lwm3VR9u0PMsNd/openapi.json
