# YouTube Phone Number Scraper - Keyword Search, Verified Numbers (`scrapido/youtube-phone-number-scraper`) Actor

📞 YouTube Phone Number Scraper finds creator contact numbers via keyword and location search. ✅ Validated results with country code, line type and carrier. 🎥 Great for sponsorship outreach & creator sourcing calls.

- **URL**: https://apify.com/scrapido/youtube-phone-number-scraper.md
- **Developed by:** [Scrapido](https://apify.com/scrapido) (community)
- **Categories:** Lead generation, Social media, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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

### YouTube Phone Number Scraper 📱

**YouTube Phone Number Scraper** helps marketers, recruiters, and sales pros replace hours of manual contact hunting with automated phone-number discovery from YouTube bios, profiles, and post content. It also supports **YouTube email and phone scraping** use cases—so you can build outreach lists faster via **YouTube outreach list building**.

### 🌟 Key Features of YouTube Phone Number Scraper

| Feature | Benefit |
|---|---|
| ✅ **Targeted Keyword Search** | Find phone numbers tied to the YouTube topics you care about |
| ✅ **Location Filtering** | Narrow results to a specific city or region while scraping YouTube contact details |
| ✅ **Country Dial Code Targeting** | Focus on the country you select to improve relevance of extracted numbers |
| ✅ **Max Phone Numbers Control** | Stop after your chosen volume to manage run length and costs |
| ✅ **Bulk-Friendly Export to Dataset** | Collect results in a structured Apify dataset for fast downstream analysis |
| ✅ **Real-Time Data Pushing** | Each match is pushed as it’s found so long runs don’t lose progress |
| ✅ **Resume Support** | Continues from previously saved progress for large lead generation from YouTube |

### 📥 Input — YouTube Phone Number Scraper Parameters

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

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `keywords` | Array | ✅ Yes | — | Search terms used to find relevant YouTube profiles and content where phone numbers may appear |
| `location` | String | No | `""` | Optional city or region filter (e.g., London or California). Leave empty for global search |
| `country` | String | ✅ Yes | `United Kingdom (+44)` | Country targeting used for extracting YouTube channel phone number matches with the selected dial code |
| `maxPhoneNumbers` | Integer | No | `20` | Stop scraping after this many phone numbers are found (higher values can increase scraping duration) |

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

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

```json
{
  "keyword": "marketing",
  "title": "Acme Growth — Marketing & Partnerships",
  "description": "We help brands scale with growth marketing. Partnerships and collaborations are welcome.",
  "url": "https://www.youtube.com/@acmegrowth",
  "phone_number": "+447911123456",
  "country": "United Kingdom",
  "dial_code": "+44"
}
```

| Field | Type | Description |
|---|---|---|
| `keyword` | String | The search term that surfaced this YouTube contact for phone extraction |
| `title` | String | The YouTube profile or business title associated with the contact data |
| `description` | String | The profile bio or post summary text where the phone number was found |
| `url` | String | Direct link to the YouTube profile |
| `phone_number` | String | Extracted phone number in E.164 format |
| `country` | String | Target country name used for phone extraction |
| `dial_code` | String | Dial code corresponding to the selected target country |

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

1. **Open the Actor** — Launch **YouTube Phone Number Scraper** from the Apify console.
2. **Enter Keywords** — Add terms that match your niche (for example, “marketing” or “founder”) to power YouTube contact scraper results.
3. **Choose a Country** — Select where you want the YouTube channel contact details to come from using the dial code.
4. **Optional: Add Location** — Use a city or region to improve targeting for lead generation from YouTube.
5. **Set Max Phone Numbers** — Pick a cap (default is 20) to control run scope and timeline.
6. **Run & Monitor Logs** — Watch the actor’s progress as it saves results.
7. **Export Results** — Download the dataset and use it for YouTube outreach list building and outreach workflows.

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

🎯 **YouTube Outreach List Building** — Create faster prospecting lists using YouTube business contact data\
📣 **Lead Generation from YouTube** — Combine phone extraction with your outbound strategy\
🤝 **Channel Contact Mining** — Find relevant contact details for partnerships and collaborations\
🔬 **Data Mining & Research** — Analyze who is publicly sharing YouTube contact info by region\
📊 **CRM Enrichment** — Add YouTube contact scraper results to your database for follow-up

### Disclaimer

This actor only accesses **publicly available data** on YouTube. It does not scrape private profiles, authenticated content, or password-protected pages. Users are responsible for ensuring their use complies with YouTube’s Terms of Service and applicable privacy and anti-spam regulations (e.g., GDPR/CCPA where relevant). This tool is intended for legitimate purposes such as lead generation, research, and marketing in compliance with local regulations. For data-removal requests, contact 📧 <scrapidocontact@gmail.com>.

### 🆘 Support & Feedback

Have a question or found an issue with the **YouTube Phone Number Scraper**? We're here to help.

- 🐞 **Bug Reports:** Open a ticket in the repository's Issues section
- ✨ **Custom Solutions & Feature Requests:** Reach out to our team
- 📧 **Email:** <scrapidocontact@gmail.com>

Your feedback shapes the roadmap — we read every message.

### Multiple Phone Type

**Phone Types** replaces the old single Number Type choice: select as many kinds
of line as you want and the run collects all of them.

| Type | Kept when the number is |
| --- | --- |
| Mobile | A confirmed mobile |
| Landline | A confirmed fixed line |
| Toll-Free | A freephone number |
| VoIP | An internet-telephony number |
| Premium-Rate | A premium-rate number |
| Shared-Cost | A shared-cost number |

Leave it empty for every type. Each number is checked against its *real* line
type before being kept, so the filter is enforced rather than merely requested.
Numbers on ranges where mobile and landline genuinely cannot be told apart (the
US, Canada and Mexico) are kept rather than silently dropped - discarding them
would quietly lose good leads.

### Outreach links

| Field | Meaning |
| --- | --- |
| `telLink` | A clickable `tel:` link, so a row can be dialled straight from a spreadsheet or CRM |
| `whatsappLink` | A `wa.me` chat link, or empty for a confirmed landline or a number that failed validation |
| `whatsappCapable` | Whether the number is on a line WhatsApp can run on |

`whatsappCapable` is a plain yes/no you can filter on. It never claims the
person actually uses WhatsApp - only that the number is of a kind that could.
Switch the links off with **Include WhatsApp links**; the capability flag is
still reported.

# Actor input Schema

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

Enter keywords to search for (e.g., 'Target Keyword').

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

Filter by location (e.g., 'London', 'California'). Leave empty for global search.

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

Select the country to target for phone numbers.

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

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration.

## `numberType` (type: `string`):

Restrict results to a specific line type, classified offline via libphonenumber. Any keeps every valid match.

## `phoneTypes` (type: `array`):

Which kinds of line to collect. Pick as many as you like - each number is checked against its real line type before it is kept. Leave empty for every type. Numbers on ranges where mobile and landline cannot be told apart (the US, Canada and Mexico) are always kept rather than silently dropped.

## `includeWhatsappLinks` (type: `boolean`):

Add a ready-made wa.me chat link for numbers on a line WhatsApp can run on. The link means the number is in a form WhatsApp accepts - not proof that an account exists.

## Actor input object example

```json
{
  "keywords": [
    "marketing",
    "founder"
  ],
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20,
  "numberType": "Any",
  "phoneTypes": [
    "Mobile"
  ],
  "includeWhatsappLinks": true
}
```

# 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": [
        "marketing",
        "founder"
    ],
    "phoneTypes": [
        "Mobile"
    ]
};

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

# Run the Actor and wait for it to finish
run = client.actor("scrapido/youtube-phone-number-scraper").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": [
    "marketing",
    "founder"
  ],
  "phoneTypes": [
    "Mobile"
  ]
}' |
apify call scrapido/youtube-phone-number-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapido/youtube-phone-number-scraper"
        }
    }
}

```

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/YcY8RtzyppVSsaz79/builds/XgeDuTp8aWBS7zqsV/openapi.json
