# Facebook Phone Number Scraper (`scraperoka/facebook-phone-number-scraper`) Actor

📞 Facebook Phone Number Scraper extracts verified phone numbers from Facebook profiles & pages for lead generation. ✅ Fast, targeted, and GDPR-conscious. Perfect for B2B sales, marketing, and outreach. 🚀 Build your contact list smarter!

- **URL**: https://apify.com/scraperoka/facebook-phone-number-scraper.md
- **Developed by:** [Scraperoka](https://apify.com/scraperoka) (community)
- **Categories:** Lead generation, Social media, Automation
- **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

### Linkedin Phone Number Scraper 🎯 — Extract Phone Numbers from Public LinkedIn Profiles in Bulk

Manually collecting phone numbers from hundreds of LinkedIn profiles wastes hours you don’t have. **Linkedin Phone Number Scraper** automates extraction of phone numbers from publicly available LinkedIn bios, profiles, and posts using your keywords and country dial code. This **Linkedin Phone Number Scraper** for contact scraping is ideal for marketers, recruiters, and growth teams, helping you build targeted lists with thousands of records in minutes (depending on your limits).

---

### What You Get: Sample Output

Here's a sample record from a single run:

```json
{
  "platform": "Facebook",
  "keyword": "marketing",
  "title": "Example company profile title",
  "description": "Contact info includes +1 415 555 0134 and other text from the LinkedIn page.",
  "url": "https://www.linkedin.com/in/example-profile/",
  "phone_number": "+14155550134",
  "country": "United Kingdom",
  "dial_code": "+44",
  "proxyGroups": ["legacy"],
  "status": "success",
  "error_message": null
}
````

| Field | Type | What It Tells You |
|---|---|---|
| `platform` | string | The platform label attached to each result row |
| `keyword` | string | The keyword that led to the page where the phone number was found |
| `title` | string | The page title associated with the listing/result |
| `description` | string | The text content where the phone number was detected |
| `url` | string | The source link for the record (where the phone number came from) |
| `phone_number` | string | The normalized phone number in E.164 format for easy importing |
| `country` | string | The selected country used to contextualize the results |
| `dial_code` | string | The dial code used as part of targeting |
| `proxyGroups` | array | The proxy configuration group(s) used for the run |
| `status` | string | A high-level success indicator for the row |
| `error_message` | string | null | Error details when something goes wrong for that record |

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

***

### Why Linkedin Phone Number Scraper?

There are a lot of ways to pull data from LinkedIn for outreach — here’s what sets **Linkedin Phone Number Scraper** apart when you need phone numbers fast and in a structured format.

#### Keyword-driven contact scraping

Linkedin Phone Number Scraper uses your `keywords` to focus on relevant LinkedIn bios, profiles, and posts so the output is grounded in the terms you care about (not generic guesses). This pairs well with targeted lists for LinkedIn lead scraper phone numbers and LinkedIn contact details scraper workflows.

#### Country dial code filtering for better targeting

You can select a `country` (and therefore dial code) to steer extraction toward the region you want. This helps when you’re building LinkedIn lead generation phone numbers for a specific market.

#### Clean, deduplicated phone number output

Phone numbers are collected, normalized, and deduplicated during the run so you don’t waste time cleaning the dataset. Results are pushed into your Apify dataset as structured records, making it easier to use downstream in CRMs or spreadsheets.

#### Built-in resilience for longer runs

The actor is designed with run-time safeguards and retry-style handling to help maintain progress when scraping is temporarily blocked or returns sparse results. This makes Linkedin Phone Number Scraper more dependable for bigger keyword lists and higher phone-number collection limits.

***

### Configuring Your Run

Drop this into your `input.json` to get started:

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

| Parameter | Required | What It Does |
|---|---|---|
| `keywords` | ✅ | A list of keywords to search for (for example: marketing, founder). These guide which LinkedIn bios, profiles, and posts are considered for phone number extraction. |
| `platform` | ⬜ | Selects the platform to scrape. The only available option in this actor is `Linkedin`. |
| `country` | ✅ | Select a country to scrape related phone numbers. This selection determines the dial-code context used for extraction. |
| `maxPhoneNumbers` | ⬜ | Maximum number of phone numbers to collect. The scraper stops once this limit is reached (higher limits may take longer). |
| `engine` | ⬜ | Choose scraping engine: `cost-effective` (residential proxies with async requests) or `legacy`. Use this to trade off reliability vs speed/cost. |
| `proxyConfiguration` | ⬜ | Configure proxies for this Actor using Apify’s proxy editor. |

***

### Core Capabilities

#### Extracts phone numbers from LinkedIn bios, profiles, and posts

Linkedin Phone Number Scraper finds phone numbers from publicly available content on LinkedIn, including bios, profiles, and posts connected to your chosen `keywords`. It’s built specifically for LinkedIn phone number scraper use cases where you need phone data, not just profile links.

#### Keyword + region targeting for lead lists

By combining `keywords` with a selected `country`, the actor helps you focus on the people and businesses most likely to match your outreach region. This improves list relevance for LinkedIn contact scraper and LinkedIn phone number finder workflows.

#### Deduplication and normalized phone formatting

The actor outputs phone numbers in E.164 format and avoids re-adding duplicates during the same run. This makes your Linkedin data scraper for phone numbers easier to import directly into outreach tools.

#### Stops cleanly at your collection limits

Use `maxPhoneNumbers` to control how much output you want from a run. If you only need a quick test dataset, set a low limit; if you’re building a larger target list, increase it (noting that higher limits can take longer).

#### Dataset-first output for automation

Each found phone number is pushed into the Apify dataset as a structured row with source context (like `url`, `title`, and `description`). This is ideal for automation pipelines that depend on consistent fields for exports, enrichment, and analytics.

Overall, Linkedin Phone Number Scraper helps you move from discovery to outreach-ready datasets with minimal manual effort.

***

### Who Gets the Most Out of This

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

**Sales Development Representatives** — use it to turn a keyword list into prospecting phone numbers for specific regions, so calling and follow-up starts faster without hand-copying. The output gives you phone numbers alongside the source context to help validate quickly.

**Growth and Marketing Teams** — combine LinkedIn lead generation phone numbers with campaign targeting, building a phone-first outreach list that complements email and other channels. When you iterate on keywords, you can refresh your segments with new lists repeatedly.

**Recruiters and Talent Sourcing Leads** — scrape LinkedIn business contact scraper style contact data for roles and organizations by using role- or company-related keywords and then filtering by country. This speeds up outreach sequences when you need to call candidates or hiring contacts.

**Data Analysts and Researchers** — collect structured datasets of LinkedIn contact details scraper outputs to analyze coverage, deduplicate numbers, and study which keywords correlate with richer public contact information. Phone normalization makes it easier to merge with other sources.

**Automation & Integration Developers** — call Linkedin Phone Number Scraper via Apify runs and pipe results into data workflows (spreadsheets, CRMs, or downstream enrichment). The consistent dataset rows are integration-friendly for repeated, scheduled lead generation.

***

### Step-by-Step: How to Use It

No coding needed. Here's how to run **Linkedin Phone Number Scraper** from start to finish:

1. **Open** the actor on Apify — visit [console.apify.com](https://console.apify.com) and start the run from the actor page.
2. **Enter your inputs** — set `keywords` and `country` first, then optionally adjust `maxPhoneNumbers`, `engine`, and `platform`.
3. **Configure proxy settings** — use `proxyConfiguration` to match your environment and reliability needs for contact scraping at scale.
4. **Hit Run** and watch the live log — follow progress and ensure results are being pushed to the dataset as the run proceeds.
5. **View results** in the dataset tab — check extracted phone numbers and their source context (`url`, `title`, `description`).
6. **Export** as JSON, CSV, or Excel — download directly from Apify once the run completes.

The whole process takes under 5 minutes to set up.

***

### Integrations & Export Options

Once your data is collected, **Linkedin Phone Number Scraper** plugs directly into your existing workflow.

Export formats supported via the Apify dataset: **JSON, CSV, and Excel** (download from the dataset tab). You can then import into Sheets, a CRM, or any internal tooling that accepts these formats.

For automation, you can integrate with Apify’s platform capabilities: **API access** to pull results programmatically, **webhooks** to trigger downstream actions when the run completes, and no-code automation via **Zapier / Make**. You can also set **scheduled runs** so your LinkedIn lead scraper phone numbers output stays fresh automatically.

For deeper setup details, refer to the Apify docs: https://apify.com/docs/api

***

### Pricing & Free Trial

Linkedin Phone Number Scraper runs on the Apify platform, which offers a **free tier** — no credit card required to get started. You can start with a small test dataset using low `maxPhoneNumbers`, then scale once you’re confident in your keyword and country targeting.

For real usage, billing is pay-as-you-go based on Apify’s compute model, and you can choose from Apify subscription plans depending on workload. Start for free at [apify.com](https://apify.com) and scale when you’re ready.

***

### Reliability & Performance

| What We Handle | How |
|---|---|
| Scraping reliability | Includes retry-style resilience when results are sparse or requests are temporarily blocked |
| Proxy support | Supports proxy configuration for stable extraction runs |
| Data completeness | Pushes each extracted result into the dataset with source context |
| Output control | Respects `maxPhoneNumbers` so runs stop when your limit is reached |
| Phone normalization | Outputs phone numbers in standardized E.164 format |

Limitations: Linkedin Phone Number Scraper works on publicly available LinkedIn content related to your keywords, so results depend on what phone numbers are actually published. If public contact data is limited for your target segment, you may need broader keywords or different regions.

For enterprise-scale runs, contact us to discuss custom configurations.

***

### Frequently Asked Questions

#### Is there a free plan or trial?

Yes, Apify offers a **free tier** for getting started. You can run small tests (with a lower `maxPhoneNumbers`) to validate keyword and country targeting before scaling.

#### Do I need to log in to LinkedIn to use this?

No. Linkedin Phone Number Scraper is designed to scrape phone numbers from publicly available LinkedIn content—no login is required for typical usage.

#### How accurate is the data?

Accuracy depends on what’s publicly posted on the relevant LinkedIn bios, profiles, and posts. The actor extracts phone numbers present in the publicly available text it processes, and returns phone numbers in normalized E.164 format.

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

You control results with `maxPhoneNumbers`. The scraper stops once this limit is reached, so you can plan runs for quick tests or larger batch exports.

#### How often is the data updated / how fresh is it?

The data is captured when the actor runs. If you need fresh phone numbers, schedule repeated runs and use consistent inputs (`keywords` and `country`) to keep your datasets up to date.

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

You should use the results responsibly. The actor works on **publicly available data**, but it’s ultimately your responsibility to comply with GDPR, CCPA, platform Terms of Service, and any applicable local regulations when using or storing contact data.

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

Yes. You can export your dataset as JSON, CSV, or Excel from the Apify dashboard and then import into Google Sheets or other tools. This also works well for LinkedIn email and phone number scraper style workflows where you later enrich and map fields.

#### Can I run this on a schedule automatically?

Yes. Apify supports scheduled runs, so you can automate repeated LinkedIn phone number extraction to refresh prospecting lists without manual reruns.

#### Can I access this via API?

Yes. You can run the actor and access the results programmatically using Apify’s API. See: https://apify.com/docs/api

#### What happens if the actor hits an error?

The actor is built to be resilient, and results are pushed into your dataset as they’re found. If something fails, you’ll see run logs and error details, and you can re-run with adjusted inputs (for example, broader `keywords` or a different `engine`).

***

### Need Help or Have a Request?

Got a question about **Linkedin Phone Number Scraper** or want a new feature added? Reach out at <dataforleads@gmail.com>. We welcome ideas like better batch handling or notifications when a run finishes.

***

### Disclaimer & Responsible Use

*Linkedin Phone Number Scraper is the fastest, most reliable way to extract publicly posted LinkedIn phone numbers — start your free run today.*

This actor collects **publicly available data** from LinkedIn. It does not access private profiles, login-gated content, or password-protected pages. You’re responsible for complying with GDPR, CCPA, platform ToS, and any applicable local regulations when using or storing the results. For data removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# Actor input Schema

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

A list of keywords to search for. (Example: John, marketing, etc.)

## `platform` (type: `string`):

Select platform.

## `country` (type: `string`):

Select a country to scrape related phone numbers.

## `maxPhoneNumbers` (type: `integer`):

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

## `engine` (type: `string`):

Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE\_SERP proxy with traditional selectors - more reliable but slower and more expensive.

## `proxyConfiguration` (type: `object`):

Configure proxies for this Actor.

## Actor input object example

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

# 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("scraperoka/facebook-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("scraperoka/facebook-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 scraperoka/facebook-phone-number-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Facebook Phone Number Scraper",
        "description": "📞 Facebook Phone Number Scraper extracts verified phone numbers from Facebook profiles & pages for lead generation. ✅ Fast, targeted, and GDPR-conscious. Perfect for B2B sales, marketing, and outreach. 🚀 Build your contact list smarter!",
        "version": "0.1",
        "x-build-id": "ioS1CBk4F8Voafpra"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~facebook-phone-number-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-facebook-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/scraperoka~facebook-phone-number-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-facebook-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/scraperoka~facebook-phone-number-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-facebook-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": "A list of keywords to search for. (Example: John, marketing, etc.)",
                        "default": [
                            "marketing",
                            "founder"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "platform": {
                        "title": "Platform",
                        "enum": [
                            "Linkedin"
                        ],
                        "type": "string",
                        "description": "Select platform.",
                        "default": "Linkedin"
                    },
                    "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 a country to scrape related phone numbers.",
                        "default": "United Kingdom (+44)"
                    },
                    "maxPhoneNumbers": {
                        "title": "Max Phone Numbers",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of phone numbers to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.",
                        "default": 20
                    },
                    "engine": {
                        "title": "Engine",
                        "enum": [
                            "cost-effective",
                            "legacy"
                        ],
                        "type": "string",
                        "description": "Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE_SERP proxy with traditional selectors - more reliable but slower and more expensive.",
                        "default": "legacy"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Configure proxies for this Actor."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
