# Instagram Phone Number Scraper (`scraperoka/instagram-phone-number-scraper`) Actor

📱 Instagram Phone Number Scraper extracts phone numbers from Instagram profiles for faster lead sourcing. ✅ Automate outreach, boost sales & streamline research. 🚀 Ideal for marketers, recruiters & B2B teams.

- **URL**: https://apify.com/scraperoka/instagram-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 $0.01 / 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

### Instagram Phone Number Scraper 📞

**Instagram Phone Number Scraper** helps you scrape phone numbers from Instagram using your chosen keywords and country dial code—so you can build targeted contact lists without doing manual profile-by-profile research. Whether you’re an Instagram leads scraper, marketer, recruiter, or data analyst, this Instagram phone number scraper simplifies “find and collect phone numbers from Instagram” workflows by automating collection at scale. With the right inputs, it enables fast lead sourcing and enrichment—saving you hours of manual work.

Whether you’re looking for an **Instagram email and phone scraper** experience or specifically an **Instagram user phone number finder**, this actor is designed to extract phone numbers relevant to your keywords and validate them against your selected country dial code.

---

### Why choose Instagram Phone Number Scraper?

| Feature | Benefit |
| --- | --- |
| ✅ **Keyword-driven discovery** | Uses your keywords to focus results on the Instagram bios, profiles, and posts most likely to contain phone numbers |
| ✅ **Country dial-code targeting** | Filters and validates phone numbers using your selected country region to reduce irrelevant matches |
| ✅ **Resilient scraping engine** | Includes built-in retries and fallbacks for reliability when results are limited or blocked |
| ✅ **Structured, usable dataset output** | Saves results to a clean JSON dataset with fields like `phone_number`, `country`, `dial_code`, and `url` |
| ✅ **Scales with limits you control** | Use `maxPhoneNumbers` to stop once enough leads are collected and avoid unnecessarily long runs |
| ✅ **Proxy configuration support** | Works with your `proxyConfiguration` and lets you choose an `engine` for different reliability/cost tradeoffs |

---

### Key features

- 🔎 **Keyword-based phone number extraction:** Pulls phone numbers associated with your keywords from Instagram bios, profiles, and posts  
- 🌍 **Country-aware phone validation:** Uses your selected country region to format matches consistently and keep results relevant to your target market  
- 🛡️ **Reliability with retries and fallbacks:** Includes retries and alternate handling when pages don’t return results as expected  
- 💾 **Real-time data saving:** Each discovered phone number is pushed immediately to the dataset, reducing data loss risk on long runs  
- 📊 **Clean lead-ready output rows:** Produces a consistent record per phone number with context like `keyword`, `title`, `description`, and source `url`  
- 🔄 **Duplicate prevention:** Keeps a `seen_numbers` set so the same `phone_number` isn’t pushed repeatedly  
- ⚙️ **Configurable scraping limits:** Stop conditions are enforced via `maxPhoneNumbers` to control collection size and runtime  
- 🧩 **Built for automation pipelines:** Output is ready to export as JSON/CSV from Apify for CRM, outreach lists, or analysis

---

### Input

Provide input via an `input.json` file. Example structure:

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

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `keywords` | ✅ | A list of keywords to search for on Instagram (e.g. `marketing`, `founder`). The scraper uses these keywords to find relevant Instagram bios, profiles, and posts. |
| `platform` | ❌ | Select platform. The only supported option is `Instagram` (default: `Instagram`). |
| `country` | ✅ | Select a country to scrape related phone numbers. This determines the country dial code used to target and validate phone numbers (default: `United Kingdom (+44)`). |
| `maxPhoneNumbers` | ❌ | Maximum number of phone numbers to collect. The actor stops once the limit is reached. This helps control runtime (minimum `1`, maximum `10000`, default `20`). |
| `engine` | ❌ | Choose scraping engine. `cost-effective` uses residential proxies with async requests, while `legacy` uses a different approach that is described as more reliable but slower and more expensive (default: `legacy`). |
| `proxyConfiguration` | ❌ | Configure proxies for this Actor. Use Apify’s proxy configuration interface for your setup. |

***

### Output

The actor saves each discovered phone number as a JSON record in the dataset.

Example output row:

```json
[
  {
    "platform": "Instagram",
    "keyword": "marketing",
    "title": "Example profile/post title",
    "description": "Example Instagram text where a phone number was found",
    "url": "https://example.com/source-url",
    "phone_number": "+447700900123",
    "country": "United Kingdom",
    "dial_code": "+44",
    "proxyGroups": ["group-1", "group-2"]
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `platform` | string | The platform value written to the dataset (`Instagram`). |
| `keyword` | string | The keyword currently used for discovery in this run. |
| `title` | string | Title text associated with the source where the number was found. |
| `description` | string | Text content from the source that contained the phone number. |
| `url` | string | The source URL where the phone number was found. |
| `phone_number` | string | The extracted and validated phone number in E.164 format. |
| `country` | string | Country name used for validation/targeting. |
| `dial_code` | string | Dial code used as the targeting hint for the country. |
| `proxyGroups` | array | Proxy configuration groups used during scraping (as recorded in each row). |

Note: The dataset grows as phone numbers are discovered; each row is pushed as soon as it’s found.

***

### How to use Instagram Phone Number Scraper (via Apify Console)

1. **Open Apify Console**\
   Log in at [console.apify.com](https://console.apify.com) and go to the **Actors** section.

2. **Find Instagram Phone Number Scraper**\
   Search for **Instagram Phone Number Scraper** and open the actor page to view its **Input** and **Output** tabs.

3. **Add your discovery keywords**\
   In the **INPUT** form (or via `input.json`), set `keywords` to terms you want to find on Instagram (for example, business-related terms for the Instagram contact scraper workflow).

4. **Choose your target country dial code**\
   Select `country` (e.g. `United Kingdom (+44)`). This strongly influences which phone numbers are considered valid.

5. **Optional: control how many leads you collect**\
   Set `maxPhoneNumbers` to decide when the actor should stop. This is useful for an Instagram phone number list scraper approach where you want a fixed-sized output.

6. **Optional: choose the scraping engine**\
   Select `engine` as either `legacy` or `cost-effective`, depending on your preference for reliability vs speed/cost characteristics (as described in the input schema).

7. **Optional: configure proxies**\
   Adjust `proxyConfiguration` if you have specific proxy requirements. Built-in proxy support helps keep scraping stable when results are limited.

8. **Run & monitor logs**\
   Start the run and watch the live logs for progress. The actor pushes each discovered number immediately into the dataset.

9. **Open dataset results & export**\
   After completion, open the **OUTPUT** dataset and export it (JSON/CSV available from Apify UI) to feed your CRM, outreach tools, or analysis.

No coding required—get Instagram phone numbers from public Instagram content in minutes with this SEO-optimized Instagram leads scraper.

***

### Advanced features & SEO optimization

- 🔧 **Engine selection for your use case:** Tune `engine` between `legacy` and `cost-effective` depending on whether you prioritize reliability or cost/speed for your Instagram email and phone scraper workflow.
- ⏱️ **Runs are time-sensitive by design:** Larger searches and higher `maxPhoneNumbers` can take longer, so it’s best to scale inputs gradually.
- 🧠 **Focused targeting:** The actor uses your keywords and country dial code to find phone numbers that are more likely relevant for your Instagram business contact scraper needs.
- 💾 **Dataset-first approach:** Results are pushed as they’re found, which works well for long-running Instagram phone number extractor jobs.

***

### Best use cases

- 📈 **Lead generation teams building outreach lists:** Collect phone numbers tied to Instagram bios, profiles, and posts for faster prospecting and follow-ups.
- 🧭 **Market researchers analyzing regional outreach potential:** Filter by country dial code to study phone-based availability in specific regions using an Instagram contact information extractor workflow.
- 📣 **Agencies running campaign pipelines:** Build an Instagram database phone number scraper list for client campaigns and quick segmentation.
- 👥 **Sales teams enriching CRM records:** Use an Instagram account phone number scraper tool to add phone fields alongside other collected profile metadata you already have.
- 🧪 **Compliance-aware data teams testing collection coverage:** Validate extracted numbers against a chosen country region to improve data quality before downstream processing.
- 💻 **Developers integrating into automation:** Feed dataset exports into your ETL jobs or CRM pipelines as part of an Instagram direct message phone scraper lead flow.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `keywords`: array of strings
  - ✅ `platform`: string (only `Instagram` is available)
  - ✅ `country`: one of the provided country options like `United Kingdom (+44)`
  - ✅ `maxPhoneNumbers`: integer (`1` to `10000`)
  - ✅ `engine`: `cost-effective` or `legacy`
  - ✅ `proxyConfiguration`: object (Apify proxy configuration)

- **Proxy Support**
  - ✅ Uses `proxyConfiguration` input
  - ✅ Supports selecting `engine` to adjust proxy-based scraping behavior (as described in the input schema)

- **Retry Mechanism**
  - ✅ Includes retries and fallbacks for resilience when results are limited

- **Dataset Structure**
  - ✅ Each pushed dataset row is a JSON object with fields including `platform`, `keyword`, `title`, `description`, `url`, `phone_number`, `country`, `dial_code`, `proxyGroups`

- **Rate Limits & Performance**
  - ⚠️ Runtime can increase with large searches and higher `maxPhoneNumbers` (you may need longer run time settings in Apify for very large jobs)

- **Limitations**
  - ❌ Not all Instagram sources will contain phone numbers
  - ❌ Results depend on publicly available phone numbers and the match quality of your `keywords` and `country` dial code

***

### FAQ

#### What does Instagram Phone Number Scraper extract?

✅ It extracts phone numbers from publicly available Instagram content, focused on Instagram bios, profiles, and posts related to your provided `keywords`, and then validates/targets them using your selected `country` dial code.

#### Is platform support limited?

✅ Yes. The only supported `platform` option in the input schema is `Instagram`.

#### How do I control how many phone numbers I get?

✅ Use `maxPhoneNumbers`. The actor stops once the limit is reached, which is useful when building a fixed-size Instagram phone number list scraper output.

#### Why might results be low?

✅ If results are low, it’s usually because the discovered content doesn’t contain phone numbers for your chosen `keywords` and dial code. In that case, try broader/more related keywords and increase `maxPhoneNumbers`.

#### What phone number format do I receive?

✅ The dataset field `phone_number` is the extracted number formatted in E.164 style (stored as a string like `+447700...`).

#### Can I customize scraping behavior for reliability or cost?

✅ Yes. Use the `engine` field to choose between `legacy` and `cost-effective` as described in the input schema, and configure `proxyConfiguration` if needed.

#### Do I need to log in to run it?

✅ No special login is part of the input schema shown here; you run it through Apify Console and provide the actor inputs.

#### Is this only for marketers and sales teams?

✅ No. It’s also useful for data analysts and researchers who need structured outputs for downstream analysis, enrichment, or lead coverage studies—making it a practical Instagram contact scraper for multiple roles.

***

### Support & feature requests

Have questions about Instagram Phone Number Scraper or want to improve an Instagram phone number search tool workflow? 💡 Share your feedback and ideas—especially if you need additions like better exports, more targeting controls, or CRM-ready formatting.

- 💡 **Feature Requests:** Examples include CSV-friendly output options, additional filtering controls, or enrichment fields for easier Instagram leads scraper pipelines.
- 📧 **Contact:** For support or feature requests, email us at <dataforleads@gmail.com>.

Your feedback helps shape what we build next for the most comprehensive Instagram phone number scraper experience.

***

### *Instagram Phone Number Scraper* — Final thoughts

*If you want a practical, SEO-optimized way to scrape Instagram phone numbers, this Instagram Phone Number Scraper is built for speed, structure, and scale.* Try your first run with focused `keywords` and the right `country` dial code to start building an actionable phone leads dataset.

***

### Disclaimer

**This actor only accesses publicly accessible sources**. It does not access private profiles, authenticated data, or password-protected pages.

You are responsible for ensuring your use complies with applicable laws and regulations (including GDPR and CCPA where relevant), as well as spam rules and Instagram/platform policies.

If you need data removal, contact us at <dataforleads@gmail.com>. Please use this tool responsibly, ethically, and for legitimate purposes only.

# 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": "Instagram",
  "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/instagram-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/instagram-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/instagram-phone-number-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Phone Number Scraper",
        "description": "📱 Instagram Phone Number Scraper extracts phone numbers from Instagram profiles for faster lead sourcing. ✅ Automate outreach, boost sales & streamline research. 🚀 Ideal for marketers, recruiters & B2B teams.",
        "version": "0.1",
        "x-build-id": "fQA13nhDvuLAMw6gq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scraperoka~instagram-phone-number-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scraperoka-instagram-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~instagram-phone-number-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scraperoka-instagram-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~instagram-phone-number-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scraperoka-instagram-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": [
                            "Instagram"
                        ],
                        "type": "string",
                        "description": "Select platform.",
                        "default": "Instagram"
                    },
                    "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
