# Target Phone Number Scraper - Country Filter & Carrier Data (`code-beat/target-phone-number-scraper-fast-and-reliable`) Actor

🎯 Target Phone Number Scraper extracts vendor and seller contact numbers at scale with country filters, carrier lookup & line-type detection. ✅ Validated output. 🛒 Built for retail suppliers & CPG vendor outreach.

- **URL**: https://apify.com/code-beat/target-phone-number-scraper-fast-and-reliable.md
- **Developed by:** [Code Beat](https://apify.com/code-beat) (community)
- **Categories:** Lead generation, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Target Phone Number Scraper

**Target Phone Number Scraper** helps you replace slow manual research with fast, structured phone number extraction from public Target profiles, bios, and posts. It’s built for marketers, analysts, and researchers who need a reliable lead generation scraper for targeted phone number finder workflows, contact number scraper tasks, and business phone lookup projects — so you can uncover more relevant leads with less effort 📞

### What is Target Phone Number Scraper? 🔍

**Target Phone Number Scraper** is an Apify automation actor that collects phone numbers from publicly available Target content based on your keywords and country selection. It returns structured records with the matching keyword, title, description, URL, phone number, country, and dial code. Whether you're a sales professional, recruiter, or marketer, this contact scraping tool gives you a practical way to build a phone data extraction workflow without doing everything by hand. It’s a useful Target contact finder for automated Target scraping at scale.

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

This actor takes your keywords, optional location filter, and selected country, then processes public Target pages and saves matching phone numbers into a clean dataset. It supports phone number harvesting for multiple keywords in one run and stops when your chosen limit is reached.

- 🔍 **Searches** Target content using your keywords and optional location filter
- 📞 **Extracts** publicly available phone numbers from matching public pages
- 🌍 **Targets** the country you select for more relevant phone data extraction
- 📊 **Structures** the output as clean JSON records for easy analysis
- 💾 **Limits** results with `maxPhoneNumbers` so you can control run size and duration

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

Here’s a realistic example of what the scraped dataset may look like after a run. Each record is ready to export and use in your lead generation workflows.

```json
{
  "keyword": "marketing",
  "title": "Emma Thompson",
  "description": "Brand strategist and consultant working with local businesses. Reach out for collaborations and media inquiries.",
  "url": "https://www.target.com/profile/emma-thompson",
  "phone_number": "+44 7700 900123",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

Export the results from the Apify dataset tab as JSON or CSV for reporting, outreach, or enrichment.

### Capabilities of Target Phone Number Scraper 🛠️

| Capability | What It Means for You |
|---|---|
| ✅ **Keyword Search** | Find Target profiles and posts that match the audience you care about |
| ✅ **Location Filter** | Narrow results to a specific city, region, or country when needed |
| ✅ **Country Targeting** | Improve relevance by focusing on the country connected to your phone lookup campaign |
| ✅ **Result Cap (`maxPhoneNumbers`)** | Keep runs controlled by stopping after the number of results you want |
| ✅ **Proxy Support** | Built-in proxy support helps keep scraping reliable on larger runs |
| ✅ **Real-Time Output** | Results are pushed to the dataset as they’re found, so you don’t have to wait until the end |
| ✅ **Resume Support** | Progress is saved during the run, helping reduce data loss if a task is interrupted |
| ✅ **Structured Dataset** | Output is organized for easy filtering, exporting, and analysis |
| ✅ **Public Web Data Only** | Focuses on publicly available sources, making it suitable for responsible phone contact collection |

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

#### Required Input Fields

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | `["marketing","founder"]` | Keywords used to find relevant Target profiles, bios, and posts. |
| `location` | String | No | `""` | Optional location filter. Leave it empty for a broader search. |
| `country` | String | ✅ Yes | `United Kingdom (+44)` | Selects the country to target for phone number extraction. |
| `maxPhoneNumbers` | Integer | No | `20` | Stops the run after this many unique phone numbers are found. |

#### Required Output Fields

| Field | Label | Format | Description |
|---|---|---|---|
| `keyword` | Keyword | text | The keyword that produced the result. |
| `title` | Title | text | The title or name associated with the matched Target content. |
| `description` | Description | text | Text captured from the public content around the phone number. |
| `url` | Url | link | The page URL where the phone number was found. |
| `phone_number` | Phone Number | text | The extracted phone number in text form. |
| `country` | Country | text | The selected country for the run. |
| `dial_code` | Dial Code | text | The phone dial code associated with the selected country. |

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

1. **Open** the actor in your Apify Console.
2. **Enter keywords** that match your target audience or niche.
3. **Choose a country** to improve result relevance.
4. **Set an optional location** if you want a more focused contact scraping tool run.
5. **Adjust the result cap** with `maxPhoneNumbers` if you want tighter control over output volume.
6. **Start the run** and monitor progress in the logs.
7. **Download the dataset** as JSON or CSV once the phone lead mining task completes.

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

- 🎯 **Sales Prospecting** — Build a targeted business phone lookup list for outreach campaigns
- 📣 **Campaign Targeting** — Create a more focused audience list for promotions and follow-up
- 🤝 **Recruitment** — Find public phone contact collection opportunities for candidate research
- 🔬 **Market Research** — Support researcher workflows with structured phone data extraction
- ⚙️ **Lead Generation Automation** — Run repeatable prospect phone scraper tasks for ongoing lead flow

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

- 📞 **Targeted Results** — Uses your keywords and country settings to improve relevance
- 🔄 **Built for Reliability** — Includes retries, fallbacks, and progress saving for resilience
- 💾 **Incremental Saving** — Results are stored as the run progresses, helping protect output if the task is interrupted
- ⚡ **Fast Enough for Bulk Work** — Designed for bulk extraction with smart filters and controlled limits

### Search Limits and Capacity 📈

- Set `maxPhoneNumbers` anywhere from 1 to 10,000 per run
- Large runs may take longer, especially when you use broader keywords or larger result caps
- The actor saves results to the dataset as it finds them, so exports are available throughout the run
- Built-in proxy support helps with reliability during larger phone number extraction jobs

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

This actor works with publicly available data only, meaning it does not access private profiles, logins, or restricted content. As with any web phone number crawler, you are responsible for making sure your use follows applicable laws, privacy rules, and Target’s terms. Use it for legitimate research, outreach, and analysis only. For data-removal or compliance inquiries, please contact <codebeatapi@gmail.com>.

### Ending Note ✉️

Stop spending hours on manual phone number harvesting. The **Target Phone Number Scraper** gives you a cleaner, faster way to collect public phone data in a structured format — perfect for marketers, analysts, and researchers who want reliable results without unnecessary busywork.

### FAQ — Target Phone Number Scraper ❓

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

It accepts your keywords and country choice, processes public Target content, and stores any matching phone numbers in your Apify dataset as structured records.

#### What Types of Target Content Can I Target?

You can target public profiles, bios, and post content that contain phone numbers. The actor is designed for public web data only.

#### How Did the Target Phone Number Scraper Perform in Our Tests?

It is designed for structured phone number extraction from publicly available sources and uses smart filtering, retries, and progress saving to improve reliability across runs.

#### Why Use a Target Phone Number Scraper Instead of Manual Research?

Manual lookup is slow and inconsistent. This actor helps you scale phone data extraction, improve targeting, and turn public Target content into usable lead lists much faster.

#### How Much Does Target Phone Number Scraper Cost?

Your cost depends on how you run the actor in Apify and the amount of data processed. Use `maxPhoneNumbers` to control the size of each run and keep results focused.

#### Top Benefits of the Target Phone Number Scraper

You get faster lead generation, structured output, flexible keyword targeting, country filtering, and a workflow that supports contact scraping tool use cases without manual copying and pasting.

#### What Are the Disadvantages of Scraping Target?

Results depend on how much public phone data is available for your chosen keywords and country. Broader searches may return more records, while narrow filters can reduce volume.

#### How to Choose the Best Target Phone Number Scraper

Look for clean structured output, reliable limits, country targeting, and a tool that works with publicly available sources. If you need help, contact <codebeatapi@gmail.com>.

### Support & Feedback

Have a question or found an issue with the Target Phone Number Scraper?

- 🐞 **Bug Reports:** Please contact the team directly
- ✨ **Custom Solutions & Feature Requests:** Share your needs and use case
- 📧 **Email:** <codebeatapi@gmail.com>

### Country & Time Targeting

**Target Country** did two jobs already: it supplies the dial code the search
looks for, and it is the region numbers are parsed against. It now does a third

- Google is asked to answer as if searching from that country (`gl`). Turn on
  **Strict country filter** to also restrict results to pages Google attributes to
  it (`cr=countryXX`); that is much tighter and returns noticeably fewer results.

**Result Language** restricts results to one language (`hl` + `lr`).

**Time Range** limits results to a publication window - past hour, 24 hours,
week, month, year, or an explicit *Custom range* via **Custom range: from** /
**to** in `YYYY-MM-DD` form. Selecting *Custom range* without either date falls
back to no time filter rather than silently searching all of time.

### Region resolution

| Field | Meaning |
| --- | --- |
| `regionAmbiguous` | `true` when the number was printed without a country code and the same national digits are valid in more than one country |
| `phoneIsMobile` | `true`/`false` where the numbering plan can tell, empty where it genuinely cannot (US, Canada, Mexico) |
| `phoneCallingCode` | The country's international calling code, as a number |
| `phoneCountryName` | Full country name, falling back to the two-letter code rather than guessing |

`regionAmbiguous` is the important one. A number written as `020 7946 0958` is
only a UK number because the run targeted the UK - the country shown is a
reading, not a fact, and this column tells you which rows those are.

# Actor input Schema

## `scrapeMode` (type: `string`):

Find New Numbers (default) searches About.Me by keyword. Validate My List skips searching entirely and instead runs the numbers you paste into Phone List (below) through the same deliverability checks.

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

Enter keywords to search for (e.g., 'Target Keyword'). Only used in Find New Numbers mode.

## `location` (type: `string`):

Filter by location (e.g., 'London', 'California'). Leave empty for global search. Only used in Find New Numbers mode.

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

Select the country to target for phone numbers. Only used in Find New Numbers mode.

## `phoneList` (type: `array`):

Paste the phone numbers you want checked for deliverability (any format - the selected Country is used as the default region for numbers without a country code). Only used when Scrape Mode is set to "Validate My List".

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

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration. Only used in Find New Numbers mode.

## `minQualityScore` (type: `number`):

Drop any number whose quality score (0.0-1.0) falls below this. Leave at 0 for no filter.

## `requireStrictValid` (type: `boolean`):

Drop numbers that fail strict validity (correct length/format for the region) - mainly relevant in Validate My List mode, since search results are already strictly valid by construction.

## `excludeTollFree` (type: `boolean`):

Drop numbers identified as toll-free.

## `excludePremiumRate` (type: `boolean`):

Drop numbers identified as premium-rate.

## `requireCountryMatch` (type: `boolean`):

Drop numbers whose own detected region does not match the Country you selected (e.g. shared dial codes like +1 covering the US, Canada, and Caribbean nations).

## `strictCountry` (type: `boolean`):

Restrict Google to pages it attributes to the country you selected (cr=countryXX), rather than only preferring them. Much tighter targeting, noticeably fewer results.

## `searchLanguage` (type: `string`):

Restrict results to one language. Leave on "Any language" for no filter.

## `timeRange` (type: `string`):

Only return pages Google indexed within this window. A number published last month is far more likely to still be answered than one last seen years ago.

## `customDateFrom` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## `customDateTo` (type: `string`):

Only used when Time Range is "Custom range". Format: YYYY-MM-DD.

## Actor input object example

```json
{
  "scrapeMode": "Find New Numbers",
  "keywords": [
    "seller",
    "store"
  ],
  "country": "United States (+1)",
  "phoneList": [],
  "maxPhoneNumbers": 20,
  "minQualityScore": 0,
  "requireStrictValid": false,
  "excludeTollFree": false,
  "excludePremiumRate": false,
  "requireCountryMatch": false,
  "strictCountry": false,
  "searchLanguage": "",
  "timeRange": "Any time",
  "customDateFrom": "",
  "customDateTo": ""
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "seller",
        "store"
    ],
    "phoneList": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("code-beat/target-phone-number-scraper-fast-and-reliable").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": [
        "seller",
        "store",
    ],
    "phoneList": [],
}

# Run the Actor and wait for it to finish
run = client.actor("code-beat/target-phone-number-scraper-fast-and-reliable").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "seller",
    "store"
  ],
  "phoneList": []
}' |
apify call code-beat/target-phone-number-scraper-fast-and-reliable --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,code-beat/target-phone-number-scraper-fast-and-reliable"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/7tFsag6b44Urn2a9s/builds/kER0EQlTCqRGlpXko/openapi.json
