# Wechat Phone Number Scraper (`scrapebridge/wechat-phone-number-scraper`) Actor

📱 Wechat Phone Number Scraper extracts verified WeChat phone numbers from targeted sources with speed and precision. 🚀 Perfect for lead generation, B2B outreach, and market research. 🔒 Efficient, reliable, and easy to use.

- **URL**: https://apify.com/scrapebridge/wechat-phone-number-scraper.md
- **Developed by:** [Scrape Bridge](https://apify.com/scrapebridge) (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.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 ⚡

Trying to build a Wechat contact pipeline but getting stuck copying phone numbers one-by-one from scattered profiles and bios? **Wechat Phone Number Scraper** helps you scrape Wechat phone numbers using your keywords and a targeted country code—so outreach lists scale fast. It’s a Wechat number extractor designed for lead generation, sales prospecting, and data-driven research. If you want a Wechat contact scraper that turns public Wechat profile content into structured data quickly, this actor is for you. In one run, you can collect up to thousands of potential matches (with practical stop limits) and get the results written to your dataset as they’re found.

---

### See the Data: Sample Output

Here's a real record from a single run:

```json
{
  "platform": "Wechat",
  "keyword": "marketing",
  "title": "Marketing",
  "description": "No data",
  "url": "https://example.com/wechat-profile",
  "phone_number": "+447700900123",
  "country": "United Kingdom",
  "dial_code": "+44",
  "status": "success",
  "error_message": null
}
````

Here’s what the actor outputs to the dataset (the dataset view is titled **Scraped Phone Numbers**):

| Field | Type | What It Tells You |
|---|---|---|
| `platform` | string | Confirms the source platform as **Wechat** for easier downstream filtering. |
| `keyword` | string | Which keyword triggered this record, useful for campaign-level analysis and ROI reporting. |
| `title` | string | The title text found in the source content for quick context during review. |
| `description` | string | The raw text context extracted from the source; helps you verify relevance. |
| `url` | string | The page link associated with the extracted phone number (so you can validate later). |
| `phone_number` | string | The extracted phone number in international (E.164) format for clean imports. |
| `country` | string | The selected country name used for targeting and normalization. |
| `dial_code` | string | The dial code corresponding to the selected country to support formatting and matching. |
| `status` | string | Indicates success/error state for easier monitoring (include this for operational clarity). |
| `error_message` | string | Contains details if something goes wrong (otherwise `null`). |
| `keyword` / `country` | string | Combined, these let you segment results by your targeting strategy. |

Export your full dataset as JSON, CSV, or Excel from the Apify dashboard.

***

### Setting It Up

Drop this into your `input.json` and you're ready to go:

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

| Parameter | Required | What It Does |
|---|---|---|
| `keywords` | ✅ | Provide the terms used to focus the Wechat phone number scraping on relevant bios and profile content. |
| `location` | ⬜ | Optionally narrow results to a specific place (for example, “London”); leave empty for global search. |
| `country` | ✅ | Select the country to target for phone numbers; this drives dialing normalization. |
| `maxPhoneNumbers` | ⬜ | Stop after this many phone numbers are found—use it to control runtime and cost during testing or production runs. |

***

### What It Does

This actor searches publicly available Wechat profile content and extracts phone numbers that match your targeting inputs, then writes structured rows to your Apify dataset as it goes.

#### Scrape Wechat phone numbers using your keywords

You provide a list of `keywords`, and the actor uses them to find matching profile content for the phone number extraction workflow. This makes it easy to run different campaigns without changing code.

#### Country-targeted normalization for cleaner results

By selecting `country`, the actor targets a specific dialing region and outputs `phone_number` in a standardized format alongside `country` and `dial_code`. This helps keep your Wechat user data scraper output consistent for CRM import or deduping.

#### Real-time dataset writing for bulk extraction

Each match is pushed to the dataset as it’s discovered, so you can monitor progress and start analyzing without waiting for the entire run to finish. This is ideal for a wechat phone number database build where timeliness matters.

#### Built-in caps to keep runs predictable

Use `maxPhoneNumbers` to set a hard stop on how many phone numbers you want in a run. For marketers and analysts, this makes it straightforward to test keyword sets and scaling strategies without runaway scraping.

#### Handles empty or low-yield runs with practical guidance

If results are fewer than expected, the input schema guidance suggests trying broader keywords or adjusting country settings—helping you tune your wechat number extractor workflow rather than guessing blindly.

Overall, **Wechat Phone Number Scraper** gives you a straightforward path to scrape wechat phone numbers at scale with clean, integration-ready output.

***

### Why Wechat Phone Number Scraper?

There are plenty of ways to pull data from public web sources—here's why **Wechat Phone Number Scraper** stands out.

#### Structured output built for lead workflows

Results are written into a consistent dataset schema with `phone_number`, `url`, `country`, and `dial_code`, so your wechat contact scraper output is ready for review, enrichment, and import.

#### Predictable run behavior with `maxPhoneNumbers`

You can cap the extraction volume using `maxPhoneNumbers`, which helps control runtime for iterative keyword testing—whether you’re using a wechat phone number tool for outreach or research.

#### Easy keyword + country targeting

The actor is designed around your `keywords` and country selection, which makes this wechat phone number finder workflow simple to operate for non-technical teams as well as analysts.

***

### Real-World Use Cases

Here's how different teams put Wechat Phone Number Scraper to work:

**Sales Teams**\
A sales manager needs a focused Wechat outreach list for a specific market. They run the actor with a keyword set tied to their ICP and select the right country dialing target, then export the dataset for CRM import and deduping. The result is a faster start to outreach because the wechat messaging phone number lookup is handled in bulk.

**Marketing Agencies**\
An agency running multiple lead-gen campaigns wants repeatable extraction runs per client niche. They test different `keywords`, cap output using `maxPhoneNumbers`, and review `description` and `url` context before sending data to clients. This turns a wechat contact list scraper workflow into a measurable campaign asset.

**Freelance Researchers**\
A researcher is building a public-contact dataset for a report and needs consistent fields for analysis. They run Wechat Phone Number Scraper with location and country targeting, then compile results using `phone_number`, `dial_code`, and `country`. It’s a wechat user data scraper that reduces manual cleanup time.

**Data Engineers & Automation Specialists**\
A developer integrates the actor into an existing pipeline that refreshes contact datasets on schedule. They trigger runs via the Apify API, consume the dataset programmatically, and push normalized fields into downstream storage. The wechat number extractor output is easy to validate because each row includes `url` context.

**Lead Gen Operations**\
A team wants to grow a contact database but keep the process controlled. They repeatedly run with different keyword bundles and set `maxPhoneNumbers` to keep runs within budget and time windows, building a wechat phone number database incrementally.

***

### How to Run It

No code required. Here's how to get your first results in under 5 minutes:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and find **Wechat Phone Number Scraper**.
2. **Enter your inputs** — set `keywords`, choose `country`, and optionally add `location` and `maxPhoneNumbers`.
3. **Configure proxy settings (if you want)** — enable proxy support for more reliable scraping on larger tasks.
4. **Start the run** — watch the live log to see progress while the actor pushes results to the dataset.
5. **Open the Dataset tab** — view the **Scraped Phone Numbers** table as records are collected.
6. **Export your data** — download as JSON, CSV, or Excel directly from the dataset.
7. **Iterate quickly** — if you need more wechat phone number harvesting tool results, broaden keywords or adjust country targeting and rerun.

The whole setup takes under 5 minutes — results start appearing within seconds of launch.

***

### Export & Integration Options

Once your data is collected, **Wechat Phone Number Scraper** fits directly into your existing workflow.

You can export your dataset as JSON, CSV, or Excel from the Apify dataset tab, which is helpful for spreadsheets, analyst review, and bulk import. For teams using Airtable or Google Sheets, you can connect via Apify’s native integrations or route results through automation tools like Zapier/Make to push rows where you need them.

If you build pipelines, you can access results programmatically via the Apify API, and you can trigger downstream steps using webhooks when the run completes. For recurring collection, schedule runs to refresh your wechat phone number database automatically.

***

### Pricing

Wechat Phone Number Scraper runs on Apify, which includes a **free tier** — no credit card needed to start. Free tier usage includes $5 platform credits on sign-up, typically enough for several real test runs. For heavier workloads, you can upgrade to Apify plans designed for larger scraping tasks and sustained operations. Pay-as-you-go billing applies per Actor compute unit (CU), and you only pay for platform compute—check the Apify pricing page for current details.

Start free at [apify.com](https://apify.com) — scale up when you need to.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Proxy support for scraping reliability | Built-in proxy support helps maintain access on larger tasks. |
| Partial run continuation | Results are written incrementally as they’re found, so you don’t lose everything when you stop. |
| Output volume control | `maxPhoneNumbers` stops extraction after the requested number of matches. |
| Error visibility | Errors are captured in the output with `error_message` (and a `status` field for clarity). |

**Limitations:** This actor extracts phone numbers from publicly available Wechat profile content. It can’t access login-gated or private sources, and results vary depending on how much phone-number information is published in the bios and profiles that match your targeting.

For enterprise-scale needs or custom configurations, reach out and we'll help.

***

### Frequently Asked Questions

#### Is there a free plan?

Yes—Apify offers a free tier so you can run small tests before scaling up. Larger tasks may require a paid Apify plan depending on usage and output volume.

#### Do I need to log in or create an account on Wechat?

No. The actor is built to work with publicly available web data, so you don’t need a login session or account credentials.

#### How accurate is the extracted phone number data?

The actor extracts phone numbers from the publicly available text it processes and outputs `phone_number` in a standardized format. Accuracy depends on what phone numbers the source content actually contains.

#### How many results can I get per run?

You control the maximum results with `maxPhoneNumbers`. If you don’t set it, the actor can still apply plan-based restrictions and stop conditions.

#### How fresh is the data?

Data freshness depends on what’s currently visible on the public pages at the time of your run. If you need updated contact lists, schedule repeated runs using Apify’s scheduling features.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor works with **publicly available data**. You are responsible for ensuring your use of the collected data complies with applicable privacy laws (including GDPR/CCPA), platform terms, and local regulations.

#### Can I export to Google Sheets or Excel?

Yes. Export your dataset from the Apify dashboard and import it into Google Sheets or Excel as needed. You can also automate transfers using no-code integrations like Zapier/Make.

#### Can I schedule this to run automatically?

Yes. You can use Apify scheduling to run it automatically on a recurring basis and keep your Wechat phone number database refreshed.

#### Can I access results via the API?

Yes. You can trigger runs and pull results programmatically via the Apify API, which is convenient for developers and automation pipelines.

#### What happens when the actor encounters an error?

When errors occur, the actor continues in a best-effort manner and outputs records with failure context via `status` and `error_message`. You’ll also be able to monitor progress from the run logs and dataset results.

***

### Get Help & Use Responsibly

Got a question about Wechat Phone Number Scraper or a feature you'd like added? Reach out at <dataforleads@gmail.com> — we’re happy to help with practical usage questions and improvements like smarter keyword targeting workflows or better output filtering support.

**publicly available data** only. The actor does **not** access private accounts, login-gated pages, or password-protected content. You are responsible for complying with GDPR, CCPA, and the relevant platform Terms of Service when using the collected data. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

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

## Actor input object example

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

# 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"
    ]
};

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

# Run the Actor and wait for it to finish
run = client.actor("scrapebridge/wechat-phone-number-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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"
  ]
}' |
apify call scrapebridge/wechat-phone-number-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapebridge/wechat-phone-number-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Wechat Phone Number Scraper",
        "description": "📱 Wechat Phone Number Scraper extracts verified WeChat phone numbers from targeted sources with speed and precision. 🚀 Perfect for lead generation, B2B outreach, and market research. 🔒 Efficient, reliable, and easy to use.",
        "version": "0.1",
        "x-build-id": "Fws8vdjEJ97fKaAcr"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapebridge~wechat-phone-number-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapebridge-wechat-phone-number-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapebridge~wechat-phone-number-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapebridge-wechat-phone-number-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapebridge~wechat-phone-number-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapebridge-wechat-phone-number-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "keywords",
                    "country"
                ],
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Enter keywords to search for (e.g., 'Target Keyword').",
                        "default": [
                            "marketing",
                            "founder"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Filter by location (e.g., 'London', 'California'). Leave empty for global search."
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "Afghanistan (+93)",
                            "Albania (+355)",
                            "Algeria (+213)",
                            "Andorra (+376)",
                            "Angola (+244)",
                            "Antigua And Barbuda (+1-268)",
                            "Argentina (+54)",
                            "Armenia (+374)",
                            "Australia (+61)",
                            "Austria (+43)",
                            "Azerbaijan (+994)",
                            "Bahamas (+1-242)",
                            "Bahrain (+973)",
                            "Bangladesh (+880)",
                            "Barbados (+1-246)",
                            "Belarus (+375)",
                            "Belgium (+32)",
                            "Belize (+501)",
                            "Benin (+229)",
                            "Bhutan (+975)",
                            "Bolivia (+591)",
                            "Bosnia And Herzegovina (+387)",
                            "Botswana (+267)",
                            "Brazil (+55)",
                            "Brunei (+673)",
                            "Bulgaria (+359)",
                            "Burkina Faso (+226)",
                            "Burundi (+257)",
                            "Cambodia (+855)",
                            "Cameroon (+237)",
                            "Canada (+1)",
                            "Cape Verde (+238)",
                            "Central African Republic (+236)",
                            "Chad (+235)",
                            "Chile (+56)",
                            "China (+86)",
                            "Colombia (+57)",
                            "Comoros (+269)",
                            "Congo (Democratic Republic) (+243)",
                            "Congo (Republic) (+242)",
                            "Costa Rica (+506)",
                            "Croatia (+385)",
                            "Cuba (+53)",
                            "Cyprus (+357)",
                            "Czech Republic (+420)",
                            "Denmark (+45)",
                            "Djibouti (+253)",
                            "Dominica (+1-767)",
                            "Dominican Republic (+1-809)",
                            "East Timor (+670)",
                            "Ecuador (+593)",
                            "Egypt (+20)",
                            "El Salvador (+503)",
                            "Equatorial Guinea (+240)",
                            "Eritrea (+291)",
                            "Estonia (+372)",
                            "Eswatini (+268)",
                            "Ethiopia (+251)",
                            "Fiji (+679)",
                            "Finland (+358)",
                            "France (+33)",
                            "Gabon (+241)",
                            "Gambia (+220)",
                            "Georgia (+995)",
                            "Germany (+49)",
                            "Ghana (+233)",
                            "Greece (+30)",
                            "Grenada (+1-473)",
                            "Guatemala (+502)",
                            "Guinea (+224)",
                            "Guinea-Bissau (+245)",
                            "Guyana (+592)",
                            "Haiti (+509)",
                            "Honduras (+504)",
                            "Hungary (+36)",
                            "Iceland (+354)",
                            "India (+91)",
                            "Indonesia (+62)",
                            "Iran (+98)",
                            "Iraq (+964)",
                            "Ireland (+353)",
                            "Israel (+972)",
                            "Italy (+39)",
                            "Jamaica (+1-876)",
                            "Japan (+81)",
                            "Jordan (+962)",
                            "Kazakhstan (+7)",
                            "Kenya (+254)",
                            "Kiribati (+686)",
                            "Korea, North (+850)",
                            "Korea, South (+82)",
                            "Kuwait (+965)",
                            "Kyrgyzstan (+996)",
                            "Laos (+856)",
                            "Latvia (+371)",
                            "Lebanon (+961)",
                            "Lesotho (+266)",
                            "Liberia (+231)",
                            "Libya (+218)",
                            "Liechtenstein (+423)",
                            "Lithuania (+370)",
                            "Luxembourg (+352)",
                            "Madagascar (+261)",
                            "Malawi (+265)",
                            "Malaysia (+60)",
                            "Maldives (+960)",
                            "Mali (+223)",
                            "Malta (+356)",
                            "Marshall Islands (+692)",
                            "Mauritania (+222)",
                            "Mauritius (+230)",
                            "Mexico (+52)",
                            "Micronesia (+691)",
                            "Moldova (+373)",
                            "Monaco (+377)",
                            "Mongolia (+976)",
                            "Montenegro (+382)",
                            "Morocco (+212)",
                            "Mozambique (+258)",
                            "Myanmar (+95)",
                            "Namibia (+264)",
                            "Nauru (+674)",
                            "Nepal (+977)",
                            "Netherlands (+31)",
                            "New Zealand (+64)",
                            "Nicaragua (+505)",
                            "Niger (+227)",
                            "Nigeria (+234)",
                            "North Macedonia (+389)",
                            "Norway (+47)",
                            "Oman (+968)",
                            "Pakistan (+92)",
                            "Palau (+680)",
                            "Panama (+507)",
                            "Papua New Guinea (+675)",
                            "Paraguay (+595)",
                            "Peru (+51)",
                            "Philippines (+63)",
                            "Poland (+48)",
                            "Portugal (+351)",
                            "Qatar (+974)",
                            "Romania (+40)",
                            "Russia (+7)",
                            "Rwanda (+250)",
                            "Saint Kitts And Nevis (+1-869)",
                            "Saint Lucia (+1-758)",
                            "Saint Vincent And The Grenadines (+1-784)",
                            "Samoa (+685)",
                            "San Marino (+378)",
                            "Sao Tome And Principe (+239)",
                            "Saudi Arabia (+966)",
                            "Senegal (+221)",
                            "Serbia (+381)",
                            "Seychelles (+248)",
                            "Sierra Leone (+232)",
                            "Singapore (+65)",
                            "Slovakia (+421)",
                            "Slovenia (+386)",
                            "Solomon Islands (+677)",
                            "Somalia (+252)",
                            "South Africa (+27)",
                            "South Sudan (+211)",
                            "Spain (+34)",
                            "Sri Lanka (+94)",
                            "Sudan (+249)",
                            "Suriname (+597)",
                            "Sweden (+46)",
                            "Switzerland (+41)",
                            "Syria (+963)",
                            "Taiwan (+886)",
                            "Tajikistan (+992)",
                            "Tanzania (+255)",
                            "Thailand (+66)",
                            "Togo (+228)",
                            "Tonga (+676)",
                            "Trinidad And Tobago (+1-868)",
                            "Tunisia (+216)",
                            "Turkey (+90)",
                            "Turkmenistan (+993)",
                            "Tuvalu (+688)",
                            "Uganda (+256)",
                            "Ukraine (+380)",
                            "United Arab Emirates (+971)",
                            "United Kingdom (+44)",
                            "United States (+1)",
                            "Uruguay (+598)",
                            "Uzbekistan (+998)",
                            "Vanuatu (+678)",
                            "Vatican City (+39-06)",
                            "Venezuela (+58)",
                            "Vietnam (+84)",
                            "Yemen (+967)",
                            "Zambia (+260)",
                            "Zimbabwe (+263)"
                        ],
                        "type": "string",
                        "description": "Select the country to target for phone numbers.",
                        "default": "United Kingdom (+44)"
                    },
                    "maxPhoneNumbers": {
                        "title": "Max Phone Numbers",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration.",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
