# YouTube Channel Email Scraper - Creator Contact Extractor (`tenfoldfleet/youtube-channel-email-scraper`) Actor

Find the business email of YouTube channels without login or CAPTCHA (public emails only): from the channel description and its linked websites, plus subscribers, country, links and socials. Search by keyword or @handle. $4 per 1,000 channels with an email, others free. No sign-in-only emails.

- **URL**: https://apify.com/tenfoldfleet/youtube-channel-email-scraper.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** Lead generation, Agents, MCP servers
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 channel with emails

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does YouTube Channel Email Scraper do?

**YouTube Channel Email Scraper** finds the **public business email of YouTube channels**. It reads the email a creator writes in the channel description on [YouTube](https://www.youtube.com), then opens the **websites linked on the channel** (homepage plus contact, business, about, impressum and press pages, and Linktree-style link-in-bio pages) and collects the emails published there. Each result also has the channel's **subscribers, country, video and view counts, join date, websites and social links**.

Give it channel **@handles** or URLs, or find channels with **keyword search** ("vegan cooking", "web design tutorial") and filter them by subscriber count. It works like a **YouTube email extractor API**: plain HTTP, **no login, no cookies, no CAPTCHA solving** and no YouTube API key.

**Public emails only.** Many channels also have an email behind YouTube's "Sign in to see email address" button. This scraper never signs in, so it can't read those. Every row tells you whether such an email exists (`hasHiddenBusinessEmail`), so you know where a manual lookup would pay off.

You pay only for channels where an email is found: **$4 per 1,000 channels with an email**. Channels without an email, channels that can't be found and websites that fail are **free**, and keyword search is free too.

### Why use a YouTube channel email scraper?

- 🤝 **Influencer marketing and sponsorships**: build an outreach list of creators in your niche with their business email, subscriber count and country.
- 📈 **Lead generation**: find agencies, coaches, shops and SaaS founders who run a YouTube channel, with the email from their own website.
- 🎙️ **Podcast and guest booking**: collect contact emails of creators to invite to your show or event.
- 🧾 **Enrich a list you already have**: paste channel URLs from a spreadsheet and get their emails, websites and socials back.
- 🧠 **AI agents and pipelines**: use it as an MCP tool through the [Apify MCP server](https://mcp.apify.com) to answer "find the contact email of these YouTube channels".

It runs on the Apify platform, so you get an **API**, scheduling, webhooks and integrations with Make, Zapier, n8n, HubSpot and Google Sheets.

### What data can it extract?

| Field | Example |
|---|---|
| `email` | `business@mkbhd.com` (the best email: the channel's own website domain first, then Gmail-style inboxes, then agencies) |
| `emails`, `emailCount` | all public emails found, up to 20 |
| `emailSources` | where each email was found: `description`, a video URL, or the website page URL |
| `hasHiddenBusinessEmail` | `true` when the channel also has a sign-in-only email this scraper can't read |
| `channelName`, `channelHandle`, `channelUrl`, `channelId` | `Marques Brownlee`, `@mkbhd`, `https://www.youtube.com/@mkbhd`, `UCBJycsmduvYEL83R_U4JriQ` |
| `subscriberCount`, `subscriberCountText` | `21400000`, `21.4M subscribers` |
| `videoCount`, `viewCount` | `1857`, `5753540410` |
| `country`, `joinedDate` | `United States`, `2008-03-21` |
| `description` | full channel description |
| `websites`, `linkInBio` | linked websites (not social networks), a Linktree-style page |
| `socialLinks` | `{ "instagram": "...", "x": "...", "tiktok": "...", "discord": "..." }` |
| `links` | every link on the channel's About panel with its title |
| `websitesCrawled`, `pagesCrawled` | how many linked sites and pages were read |
| `source`, `sourceInput` | `channel` or `search`, and the input or keyword it came from |

### How to scrape YouTube channel emails

1. Click **Try for free**.
2. Add channels (`@mkbhd`, `https://www.youtube.com/@LinusTechTips`, `/channel/UC...` URLs) and/or **search keywords**.
3. For keyword search, set **Max channels to check per keyword** (default 50) and the **subscriber range** (default: at least 1,000 subscribers).
4. Keep **Find emails on the channel's websites** on (it finds about 3 times more emails than descriptions alone). Turn on **Also scan the 3 newest video descriptions** for a few more.
5. Click **Start**, then download the emails as **JSON, CSV, Excel or HTML**, or read them through the API.

#### Call it from the API

```bash
curl -X POST "https://api.apify.com/v2/acts/tenfoldfleet~youtube-channel-email-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchKeywords": ["vegan cooking"], "maxChannelsPerKeyword": 50}'
```

### How much does it cost to find YouTube channel emails?

- **$4 per 1,000 channels with an email** ($0.004 per channel, however many emails it has), plus $0.00005 per run start.
- **Free**: channels without a public email, channels that don't exist or are terminated, failed websites, and keyword search itself.
- Optional: turn on **Also return channels without an email** to get those rows too (subscribers, country, links, socials, `hasHiddenBusinessEmail`) at $0.50 per 1,000.

Set **Max results in total** or a maximum cost per run and the scraper stops there.

**What hit rate to expect:** it depends on the niche and channel size. Roughly 1 in 4 channels found by keyword search has a public email; large channels publish one more often. In our test runs with the default 1,000-subscriber minimum, 40-50% of the checked channels had one. With 50 channels per keyword, expect around 12-25 emails.

### Input

```json
{
    "channels": ["@mkbhd", "@LinusTechTips"],
    "searchKeywords": ["vegan cooking", "home workout"],
    "maxChannelsPerKeyword": 50,
    "minSubscribers": 1000,
    "maxSubscribers": 0,
    "crawlLinkedWebsites": true,
    "scanVideoDescriptions": false,
    "includeChannelsWithoutEmail": false,
    "maxItems": 0
}
```

### Output

One row per channel with an email. Download it as JSON, CSV, Excel or HTML.

```json
{
    "channelId": "UCBJycsmduvYEL83R_U4JriQ",
    "channelName": "Marques Brownlee",
    "channelHandle": "@mkbhd",
    "channelUrl": "https://www.youtube.com/@mkbhd",
    "email": "business@mkbhd.com",
    "emails": ["business@mkbhd.com"],
    "emailSources": [{ "email": "business@mkbhd.com", "source": "description" }],
    "emailCount": 1,
    "hasHiddenBusinessEmail": true,
    "subscriberCount": 21400000,
    "subscriberCountText": "21.4M subscribers",
    "videoCount": 1857,
    "viewCount": 5753540410,
    "joinedDate": "2008-03-21",
    "country": "United States",
    "websites": [],
    "linkInBio": null,
    "socialLinks": { "x": "http://twitter.com/MKBHD", "instagram": "http://instagram.com/MKBHD", "reddit": "http://reddit.com/r/MKBHD", "discord": "http://discord.gg/MKBHD" },
    "websitesCrawled": 0,
    "source": "channel",
    "sourceInput": "@mkbhd"
}
```

### Tips

- **Bigger channels publish emails more often.** Raise **Min subscribers** to 10,000 for a higher hit rate, or set **Max subscribers** to 100,000 to find micro-influencers.
- **Use several narrow keywords** ("vegan meal prep", "vegan baking") rather than one broad one: each keyword returns its own channels, and duplicates are removed.
- **`emailSources`** shows where each email came from, so you can tell a creator's own inbox from a management agency's.
- **`hasHiddenBusinessEmail`** marks channels with a sign-in-only email. If a channel has no public email but this is `true`, the creator does take business inquiries.

### Use it with AI agents (MCP)

Give Claude, ChatGPT, Cursor or any MCP client this Actor as a tool through Apify's MCP server: add `https://mcp.apify.com?tools=tenfoldfleet/youtube-channel-email-scraper` as a remote MCP server and sign in with your Apify account. The agent fills in the input, runs the Actor and reads the results itself; you pay the same per-event price as a normal run.

### FAQ

#### Can it get the email behind "Sign in to see email address"?

No. That email is only shown to signed-in users after a CAPTCHA, and this scraper never signs in or solves CAPTCHAs. It returns public emails only and flags channels that have a hidden one with `hasHiddenBusinessEmail`.

#### Where do the emails come from?

From the channel description, from the websites and link-in-bio pages the channel links to (homepage plus up to 3 contact, business, about, impressum or press pages per site), and, if you turn it on, from the descriptions of the 3 newest videos. Placeholder addresses (you@email.com) and site-builder or platform addresses (Tilda, Wix, Shopify, Linktree) are filtered out, and links to app stores, online shops, course platforms and link shorteners are skipped.

#### Do I pay for channels without an email?

No. By default they aren't returned or charged. Search, missing channels and failed websites are free as well.

#### Does it need a YouTube API key or a proxy?

No API key. YouTube requests go through Apify's datacenter proxy by default; linked websites are fetched directly.

#### Is it legal to scrape YouTube channel emails?

This Actor only collects emails that creators and businesses publish themselves, on YouTube or on their own websites. Personal data is protected by the GDPR in the European Union and by other laws around the world. Don't scrape personal data without a legitimate reason, and check your local rules (for example on cold email) before you contact anyone. If you're unsure, consult a lawyer. See also Apify's blog post on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### More tools from Tenfold Fleet

| Actor | Output |
|---|---|
| [ALDI Australia Scraper - AU Products, Unit Prices & Catalogue](https://apify.com/tenfoldfleet/aldi-australia-scraper) | product |
| [Alibaba Image Search - Reverse Lookup of Suppliers by Photo](https://apify.com/tenfoldfleet/alibaba-image-search) | matched product |
| [AliExpress Keyword Scraper - Exact Sold Counts by Search Term](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | product |
| [Amazon Product Scraper - Details, Prices & Search by ASIN](https://apify.com/tenfoldfleet/amazon-product-scraper) | product |
| [ATS Jobs Scraper - Greenhouse, Lever, Ashby & 5 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | job posting |
| [Backlinks Checker - Referring Domains, Anchors & Domain Rank](https://apify.com/tenfoldfleet/backlinks-checker) | backlink |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | video or comment |
| [Businesses Without Websites - Local Leads with Phone & Rating](https://apify.com/tenfoldfleet/businesses-without-websites) | lead |
| [Contact Details Scraper - One Lead Record per Company Website](https://apify.com/tenfoldfleet/company-contact-finder) | website with contacts |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | ad |
| [Google AI Overviews Checker - Citations & Domain Tracker](https://apify.com/tenfoldfleet/google-ai-overviews-checker) | keyword checked |
| [Google Jobs Scraper - Salary, Apply Links & Posting Dates](https://apify.com/tenfoldfleet/google-jobs-scraper) | job listing |
| [Google Keyword Planner Alternative - Ideas, Bids & Volume](https://apify.com/tenfoldfleet/google-keyword-planner) | keyword idea |
| [Google Maps Extractor - Business Leads, Phones & Websites](https://apify.com/tenfoldfleet/google-maps-extractor) | place |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | article |
| [Google Travel Hotel Rate Tracker - OTA Prices for Every Night](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker) | offer |
| [Google Trends Scraper - Interest, Regions & Related Queries](https://apify.com/tenfoldfleet/google-trends-scraper) | keyword |
| [Keyword Ideas & Related Keywords - Difficulty, Volume & CPC](https://apify.com/tenfoldfleet/keyword-ideas) | keyword idea |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | keyword with data |
| [Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sites](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | unique remote job |
| [SEEK Job Scraper - Australia, NZ, Jobstreet & JobsDB](https://apify.com/tenfoldfleet/seek-job-scraper) | job listing |
| [SEO Audit Tool - Technical On-Page SEO Checker & Score](https://apify.com/tenfoldfleet/seo-audit-tool) | page audit |
| [SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gap](https://apify.com/tenfoldfleet/seo-competitor-keywords) | keyword |
| [Shopify Inventory Scraper - SKUs, Variants & In-Stock Status](https://apify.com/tenfoldfleet/shopify-products-scraper) | product |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | shopify store |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | url |
| [Technology Detector - Wappalyzer & BuiltWith Alternative](https://apify.com/tenfoldfleet/tech-stack-detector) | website |
| [URL to Markdown - Web Page to LLM-Ready Text for AI Agents](https://apify.com/tenfoldfleet/url-to-markdown) | page |
| [Website Traffic Checker - Bulk Domain Traffic Estimate](https://apify.com/tenfoldfleet/website-traffic-checker) | domain with traffic data |
| [Woolworths Product Scraper - AU Shelf Prices, Specials & GTINs](https://apify.com/tenfoldfleet/woolworths-product-scraper) | product |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | job posting |
| [YouTube Livestream & Channel Scraper - Videos, Likes & Stats](https://apify.com/tenfoldfleet/youtube-channel-scraper) | video |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | comment |
| [YouTube Shorts Analytics Scraper - Views, Likes & Hashtags](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | short |
| [YouTube Captions Downloader - Transcript & Subtitles Scraper](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | transcript |

# Actor input Schema

## `channels` (type: `array`):

YouTube channels to get the public email of: @handles (@mkbhd), channel URLs (https://www.youtube.com/@mkbhd, /channel/UC..., /c/..., /user/...) or UC... channel IDs. Every channel you list is checked, the subscriber filter below does not apply to it.

## `searchKeywords` (type: `array`):

Find channels by keyword, like YouTube's channel search: "vegan cooking", "web design tutorial", "home workout". Searching is free; you pay only for channels with an email. About 1 in 4 channels found this way has a public email.

## `maxChannelsPerKeyword` (type: `integer`):

How many channels to check for each keyword (after the subscriber filter). Only channels where an email is found are returned and charged, so expect about a quarter of this number as results.

## `minSubscribers` (type: `integer`):

Skip keyword-search channels with fewer subscribers. Bigger channels publish a business email more often. 0 = no minimum.

## `maxSubscribers` (type: `integer`):

Skip keyword-search channels with more subscribers, e.g. 100000 to find micro-influencers. 0 = no maximum.

## `crawlLinkedWebsites` (type: `boolean`):

Open the websites linked on the channel (homepage plus up to 3 contact, business, about or press pages, and a Linktree-style link-in-bio page) and collect the emails published there. Finds about 3 times more emails than the description alone. Same price.

## `scanVideoDescriptions` (type: `boolean`):

Look for an email in the descriptions of the channel's 3 newest videos too. A bit slower. Same price.

## `includeChannelsWithoutEmail` (type: `boolean`):

Off: you get (and pay for) only channels with at least one email. On: channels without an email are returned too, at $0.50 per 1,000, with subscribers, country, links, socials and the hasHiddenBusinessEmail flag.

## `maxItems` (type: `integer`):

Stop after this many result rows across all inputs. 0 = no limit (the run's max cost still applies).

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

Apify datacenter proxy works for YouTube. YouTube calls retry through a small amount of residential proxy only if datacenter IPs are blocked. Linked websites are fetched directly.

## Actor input object example

```json
{
  "channels": [
    "@mkbhd",
    "@LinusTechTips"
  ],
  "maxChannelsPerKeyword": 50,
  "minSubscribers": 1000,
  "maxSubscribers": 0,
  "crawlLinkedWebsites": true,
  "scanVideoDescriptions": false,
  "includeChannelsWithoutEmail": false,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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 = {
    "channels": [
        "@mkbhd",
        "@LinusTechTips"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/youtube-channel-email-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 = {
    "channels": [
        "@mkbhd",
        "@LinusTechTips",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/youtube-channel-email-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 '{
  "channels": [
    "@mkbhd",
    "@LinusTechTips"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call tenfoldfleet/youtube-channel-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tenfoldfleet/youtube-channel-email-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/5OCkg7Tjl5jqLLExo/builds/IrpdymVL7MCAC0LwZ/openapi.json
