Find public business and contact emails explicitly displayed by YouTube channels. Export source-attributed emails together with channel metadata, outbound websites, social profiles, and clear no-contact or failure statuses.
Use this YouTube email scraper and YouTube contact scraper for creator outreach, partnership research, sponsorship prospecting, and contact-list enrichment from channels you already know. It works as a YouTube creator email finder or YouTube influencer email finder only for addresses displayed on public pages. It does not log in, reveal CAPTCHA-protected addresses, or infer email addresses.
Example input
{
"channelUrls": [
"https://www.youtube.com/@rebeccazamolo",
"@imjennim",
"UCTgwcoeGGKmZ3zzCXN2qo_A"
],
"maxChannels": 3,
"onlyWithEmail": false,
"includePublicLinkedWebsites": false,
"includePhones": false
}
Example output
{
"input": "@imjennim",
"channelUrl": "https://www.youtube.com/@imjennim/about",
"channelId": "UCgWfS_47YPVbKx5EK4FLm4A",
"handle": "@imjennim",
"title": "Jenn Im",
"description": "Business Inquiries: jenn@rare.global ...",
"subscriberCountText": "3.23M subscribers",
"subscriberCount": 3230000,
"videoCountText": "794 videos",
"videoCount": 794,
"viewCountText": "1,555,888 views",
"viewCount": 1555888,
"country": "United States",
"joinedDateText": "Joined Feb 28, 2010",
"verified": false,
"externalLinks": [],
"socialLinks": [],
"websiteLinks": [],
"emails": [{
"value": "jenn@rare.global",
"sourceUrl": "https://www.youtube.com/@imjennim/about",
"sourceType": "channel_about",
"confidence": "high"
}],
"phones": [],
"contactStatus": "FOUND_PUBLIC_CONTACT",
"hiddenEmailUnsupported": false,
"pagesChecked": 0,
"pagesSkipped": 0,
"errorCode": null,
"errorMessage": null,
"scrapedAt": "2026-08-13T12:11:26.764Z"
}
Input settings
| Field | Type | Description |
|---|---|---|
channelUrls |
string[] | YouTube channel URLs, About URLs, @handles, bare handles, or UC... channel IDs. |
maxChannels |
integer | Maximum unique channels to process (1–500). |
onlyWithEmail |
boolean | Save only rows containing at least one public email. |
includePublicLinkedWebsites |
boolean | Also inspect a bounded number of publicly linked website pages for displayed contacts. |
maxExternalPagesPerChannel |
integer | Maximum linked website pages checked per channel (0–10). |
contactPageKeywords |
string[] | Optional paths such as contact, about, or press considered during website inspection. |
includePhones |
boolean | Also collect explicitly displayed public phone numbers. |
proxyConfiguration |
object | Optional Apify Proxy configuration. Direct requests are used by default. |
Duplicate inputs are normalized and processed once. Valid rows are saved progressively, so one unavailable channel does not discard successful siblings.
Who is it for?
- Creator partnership and sponsorship teams building source-auditable outreach lists.
- Agencies researching public contact routes for known channels.
- Sales and market-research teams enriching channel lists with public metadata.
- Developers and AI-agent builders who need structured JSON through API or MCP.
Input recipes
Creator outreach list
Set onlyWithEmail to true and submit up to 100 known channel handles. Every retained email includes its public source URL.
Channel metadata audit
Set onlyWithEmail to false to retain channels without public contacts and compare metadata and outbound profiles.
Public website contact enrichment
Enable includePublicLinkedWebsites, keep maxExternalPagesPerChannel low, and optionally enable includePhones. Website availability and robots/access policies may vary.
API usage
curl -X POST "https://api.apify.com/v2/acts/anna%2Fyoutube-channel-email-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channelUrls":["@imjennim"],"maxChannels":1}'
JavaScript:
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/youtube-channel-email-scraper').call({ channelUrls: ['@imjennim'], maxChannels: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/youtube-channel-email-scraper').call(run_input={'channelUrls': ['@imjennim'], 'maxChannels': 1})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
MCP and AI agents
Connect the Apify MCP server at:
https://mcp.apify.com/?tools=fetch_cat/youtube-channel-email-scraper
Add it to Claude Code:
claude mcp add --transport http apify https://mcp.apify.com/?tools=fetch_cat/youtube-channel-email-scraper
Or use this MCP configuration:
{"mcpServers":{"apify":{"type":"http","url":"https://mcp.apify.com/?tools=fetch_cat/youtube-channel-email-scraper"}}}
Example prompts: “Find publicly displayed emails for these five YouTube handles and return source URLs” or “Compare metadata for these channels and retain rows without email.” Keep tokens and contact data out of prompts or logs that do not need them.
Tips and limits
- Start with a few known channels, then expand the batch.
- Channel pages change over time; absent metadata is returned as
null, not guessed. - Some business emails are protected behind login or CAPTCHA. Those are intentionally not revealed.
- External website checks are opt-in, bounded, and can be slower or unavailable.
- Use public contact details responsibly and comply with applicable privacy, anti-spam, platform, and marketing laws.
- The Actor discovers contacts from supplied channels; it does not search YouTube by keyword.
Support
For reproducible issues, open the Actor's Issues tab and include a redacted input, run ID, expected behavior, and actual behavior. Never post private credentials or non-public contact data.