YouTube Channel Email Scraper: Influencer Contacts Finder
Pricing
$15.00 / 1,000 channel with emails
YouTube Channel Email Scraper: Influencer Contacts Finder
YouTube channel email finder for influencer contacts: $0.015 per channel with a public email, free when none is found. Give channel URLs or a keyword; get each youtuber's email, website, Instagram, TikTok and X. No login, no CAPTCHA.
Pricing
$15.00 / 1,000 channel with emails
Rating
0.0
(0)
Developer
Data Gleaner
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
YouTube Channel Email Scraper and Influencer Contact Finder
Get the public email of any YouTube channel, plus website, Instagram, TikTok and X, for influencer outreach. $0.015 per channel with an email; channels without one are free.
Give it channels (URLs, @handles, IDs, or a video or Shorts link) or a niche keyword such as fitness coach. Each channel comes back as one row with its public emails, website and social profiles, the page each email was found on, and subscriber, video and country stats for filtering. No login, no YouTube API key, no CAPTCHA. Unlike hidden-email scrapers, it returns only what the creator published openly, so a miss costs nothing. The fields are the same on every row, so AI agents and lead-generation pipelines can use it as well as people.
What it finds
Every contact the channel shows publicly: emails written in the description, the links listed in the About section (Instagram, TikTok, X, Facebook, LinkedIn, Twitch, Discord, a website, a Linktree and so on), and the emails, socials and any phone on the creator's own website or link-in-bio page. It uses plain HTTP: no browser.
It does not reveal the hidden "View email address" button. That button sits behind a CAPTCHA and a sign-in, and this Actor never touches it. For each channel it reports whether the button exists (hasBusinessEmailButton: true marks a channel with a hidden business email that this Actor does not reveal), so you can see which creators have an address you would have to request by hand.
Phone numbers are a rare bonus, not something to rely on. Creators almost never publish a phone number, so phones is empty for most channels (0 of 5 in a platform test run). When a channel does publish one in its description, About links or followed pages, it is returned as a valid E.164 number. Plan on emails, websites and social profiles as the reliable output.
Use cases
- Influencer marketing and creator outreach lists, built by niche keyword.
- Agencies enriching a list of channels with the contact route each creator already published.
- Sponsorship, affiliate and PR prospecting: filter by subscriber range and country, keep only channels with an email.
- An AI agent or enrichment pipeline that needs "the youtuber's contact email" for a list of channels, paying only for hits.
- Finding the creator's other platforms (Instagram, TikTok, X) from their YouTube channel.
How it works
- A channel input is turned into the channel's About page. A keyword is searched on YouTube (channels only) and paged until
maxChannelsPerKeyword. - The About data (description, links, subscribers, videos, views, joined date, country) is read from the page's own JSON.
- Emails (and the occasional phone) are read from the description. Links are classified into socials, link-in-bio pages and websites.
- With
followLinkson (default), up to 3 pages per channel are visited: link-in-bio pages first, then the creator's website, then its contact page if no email was found. Emails on those pages are kept only when they plausibly belong to the creator (the site's own domain, a free mailbox, or a name the channel itself uses); addresses of site builders, store platforms, link-in-bio services and payment processors are dropped.
Input
| Field | Meaning |
|---|---|
channels | Channel URLs, @handles or UC... IDs. A video or Shorts link also works and stands for the channel that uploaded it. |
datasetId | Optional. Dataset of another Actor's run; its channels are added to channels. See "Run it after YouTube Scraper or any scraper". |
datasetField, maxDatasetItems | Field that holds the channel when it is not a usual one; cap on distinct channels read from the dataset (default 1000). |
searchKeywords | Find channels by keyword, e.g. fitness coach. |
maxChannelsPerKeyword | Channels taken per keyword (default 20, max 500). |
minSubscribers, maxSubscribers | Subscriber range. YouTube rounds public counts to 3 significant digits. |
country | ISO code or name from the About page. Channels with no country listed are skipped when set. |
joinedAfter, joinedBefore | Keep channels created on or after / before this date (YYYY-MM-DD), e.g. to find new creators. Channels with no join date are kept. |
searchCountry | Two-letter country code that localizes keyword search (default US). Does not filter channels by their own country; use country. |
searchLanguage | Interface language for keyword search (default en; e.g. de, pt-BR). |
followLinks | Visit up to 3 website / link-in-bio pages per channel (default true). |
onlyWithEmail | Output only channels with a public email (default false). Channels without one are free either way. |
maxConcurrency, delaySecs, requestTimeoutSecs, respectRobotsTxt, proxyConfiguration | Pacing and network options. No proxy by default. |
Leave everything empty to run five sample channels (about 10 seconds).
{"searchKeywords": ["fitness coach"],"maxChannelsPerKeyword": 30,"minSubscribers": 1000,"maxSubscribers": 500000,"onlyWithEmail": true}
Run it after YouTube Scraper or any scraper
Works with the results of YouTube Scraper, YouTube Channel Scraper and similar Actors. Open the source Actor's Integrations tab, add this Actor (datagleaner/youtube-channel-contacts) and set its input to:
{"datasetId": "{{resource.defaultDatasetId}}"}
Every time the source run succeeds, this Actor reads its results and takes the channel of each item (channelUrl, aboutChannelInfo.channelUrl, channelId, channelUsername, handle, or the video url as a last resort; the first one present). A channel counts once however many of its videos are in the dataset. Each distinct channel is looked up (at most maxDatasetItems, default 1000), together with any channels or keywords you give directly. Billing is the same: one event per channel with a public email, free when none is found.
The same works from code, for one finished run:
run = client.actor("datagleaner/youtube-channel-contacts").call(run_input={"datasetId": "SOURCE_DATASET_ID"})
If the channel sits in a field with another name, set datasetField (dots reach into nested objects). The status message tells how many items were read, how many distinct channels they hold and how many had none, or that the dataset could not be read. It also works as an integration: open the source Actor's Integrations tab, choose Add integration and pick this Actor, and the dataset is passed automatically.
Output
One row per channel. Fields that were not found are empty, never invented.
{"channelId": "UCBJycsmduvYEL83R_U4JriQ","handle": "@mkbhd","title": "Marques Brownlee","url": "https://www.youtube.com/@mkbhd","subscribers": 21400000,"videos": 1856,"views": 5752184125,"joinedAt": "2008-03-21","country": "United States","countryCode": "US","description": "MKBHD: Quality Tech Videos ...","thumbnailUrl": "https://yt3.googleusercontent.com/...","isVerified": true,"email": "business@mkbhd.com","emailType": "business","hasEmail": true,"emails": [{"email": "business@mkbhd.com", "type": "business", "source": "description", "foundOn": "https://www.youtube.com/@mkbhd"}],"phones": [],"links": [{"title": "Instagram", "url": "http://instagram.com/MKBHD", "source": "about"}],"socials": {"x": "https://x.com/MKBHD", "instagram": "https://www.instagram.com/MKBHD", "discord": "https://discord.gg/MKBHD"},"website": null,"instagramUrl": "https://www.instagram.com/MKBHD","tiktokUrl": null,"xUrl": "https://x.com/MKBHD","facebookUrl": null,"linkedinUrl": null,"hasBusinessEmailButton": true,"pagesFollowed": 0,"status": "ok","input": "@mkbhd","scrapedAt": "2026-10-08T15:25:52+00:00"}
email is the best address (business and collaboration mailboxes first, shop support last) and emailType is business, general or support; emails lists all of them, best first. instagramUrl, tiktokUrl, xUrl, facebookUrl and linkedinUrl repeat the matching socials entries as flat columns. The dataset has two views: "Channel contacts" and "All emails". emails[].source is description, about-link, link-in-bio or website; foundOn is the exact page. A channel that cannot be read (not found, blocked) gets a row with status: "error" and an error message, and is not charged.
Pricing
Pay per answer, one event:
channel-with-email: $0.015 for each channel where at least one public email was found.- A channel with no email is free. It is still returned, with its links, socials and stats, so you can see why.
- A channel that cannot be read (
status: "error") is free.
Worked example. You search a niche and get 1,000 channels, 30% of which show a public email: 300 x $0.015 = $4.50. The 700 channels without an email cost nothing. Turn on onlyWithEmail to leave them out of the dataset; the price is the same.
Compared with $0.12 per email. Hidden-email YouTube scrapers in the Store charge about $0.12 per email ($120 per 1,000). Here a found email costs $0.015, an eighth of that, and a miss costs nothing. The difference is what you get: those tools try to retrieve the address behind the CAPTCHA button; this Actor returns only what the creator published openly, so fewer channels have an email, but every address comes with the page it was found on.
Set a maximum total charge on the run and the Actor stops cleanly when it is reached.
What to expect
Measured on test runs: about 45% of a mixed sample of 20 channels had a public email, and about 20 to 30% of a 30-channel "fitness coach" search. Small channels rarely publish one. Phone numbers are rare: none of 5 channels in a platform test run returned one. Around 60% of channels have the hidden business-email button, so many creators can only be reached through it; those rows still carry their links and socials.
Limits
- Subscriber counts are YouTube's rounded public numbers (for example 21.4M, 33K).
- Only the first 3 pages per channel are followed, and only the channel's own links. Social platforms are listed, never scraped.
- Link-in-bio pages that render entirely with JavaScript may show fewer links.
- Search returns what YouTube returns for the keyword; very deep paging may repeat or end early.
- Heavy runs from one IP can be rate limited by YouTube; lower
maxConcurrencyor add a proxy.
Use with Python
# pip install apify-clientfrom apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("datagleaner/youtube-channel-contacts").call(run_input={"searchKeywords": ["fitness coach"],"maxChannelsPerKeyword": 5, # at most 5 x $0.015 = $0.075})for item in client.dataset(run.default_dataset_id).iterate_items():print(item.get("title"), item.get("subscribers"), [e["email"] for e in item.get("emails", [])])
Use with JavaScript / Node.js
// npm install apify-clientimport { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('datagleaner/youtube-channel-contacts').call({channels: ['@mkbhd', '@aliabdaal'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {console.log(item.title, (item.emails || []).map((e) => e.email), item.socials);}
Use it from n8n, Make, Zapier or an AI agent
Actor ID: datagleaner/youtube-channel-contacts
Minimal input:
{"searchKeywords": ["fitness coach"],"maxChannelsPerKeyword": 5}
Each tool below runs this Actor with your own Apify API token.
-
n8n: add the Apify node (
@apify/n8n-nodes-apify). On n8n Cloud you install it from the community node registry. Choose Run an Actor and get dataset, set Actor todatagleaner/youtube-channel-contactsand paste the input above. -
Make: use the Apify app's Run an Actor module, then Get Dataset Items to read the results. Watch Actor Runs can trigger a scenario when a run finishes.
-
Zapier: use the Apify action Run Actor, then the search Fetch dataset items. The trigger Finished Actor run starts a Zap when a run ends.
-
AI agents (MCP): connect to
https://mcp.apify.com?tools=datagleaner/youtube-channel-contacts. In Claude Code:claude mcp add --transport http apify "https://mcp.apify.com?tools=datagleaner/youtube-channel-contacts"Then run
/mcpto sign in to Apify in your browser. Then ask in plain words, for example: "Find 20 YouTube channels about home workouts with 10K to 200K subscribers in the US, and give me each creator's public email, Instagram and website as a table." -
LangChain (Python):
# pip install langchain-apify, then set APIFY_TOKEN in your environmentimport jsonfrom langchain_apify import ApifyActorsTooltool = ApifyActorsTool("datagleaner/youtube-channel-contacts")result = tool.invoke({"run_input": json.loads('{"searchKeywords": ["fitness coach"], "maxChannelsPerKeyword": 5}')})
FAQ
How do I find a YouTube channel's email address? Give the channel URL or @handle to this Actor. It reads the email written in the channel description and About links, then checks the creator's website and link-in-bio page, and returns each address with the page it came from.
Does it get the "business email" behind the "View email address" button? No. That button needs a sign-in and a CAPTCHA, and this Actor never touches it. hasBusinessEmailButton tells you which channels have one.
Can I find YouTube influencers by niche and get their contacts? Yes. Put a keyword in searchKeywords, set minSubscribers, maxSubscribers and country, and turn on onlyWithEmail to keep only creators with a public email.
Do I need a YouTube API key or login? No.
Which channel formats does it accept? https://www.youtube.com/@name, @name, youtube.com/channel/UC..., /c/name, /user/name, a bare channel ID, or a video, Shorts, live or embed link (resolved to the channel that uploaded it).
Related Actors
- YouTube Search Scraper: find the videos and channels first. Search YouTube by keyword (with date, length and sort filters) and pass the
channelUrlvalues from its results to this Actor. - YouTube Shorts & Channel Scraper: a channel's videos, Shorts and live streams with views, plus subscribers, country and join date. Use it to rank or vet the channels before you look up their contacts.
- Link in Bio Email Finder: for creators whose email is behind a Linktree, Taplink or AllMyLinks page rather than in the channel description.
- Website Contact Details Scraper: emails, phones and social profiles from a creator's or brand's own website, one row per site.
- Team Page Contacts: named people, titles and LinkedIn profiles from a company's team page, for channels run by a company.
Responsible use
This Actor reads public pages only. Email addresses (and the rare phone number) can be personal data. You are responsible for lawful use, including consent and opt-out rules for outreach (GDPR, CAN-SPAM and local law) and for respecting the terms of the platforms you use the data on.