Youtube Instant Email Scraper
Pricing
from $60.00 / 1,000 channel-parsed-results
Youtube Instant Email Scraper
[Instant response] [Passes most reCAPTCHA] Extract YouTube email addresses from channel ID or handle.
Pricing
from $60.00 / 1,000 channel-parsed-results
Rating
1.0
(2)
Developer
EndSpec
Maintained by CommunityActor stats
3
Bookmarked
853
Total users
29
Monthly active users
15 days ago
Last modified
Categories
Share
Youtube Instant Email Finder: Get a YouTube Channel's Contact Email Instantly
Find the public contact email for any YouTube channel — pass a handle or a channel ID, get an email back in seconds.
Simple Input-Output Example
Input (specify either channelHandle or id):
{"channelHandle": "@mrbeast"}
Output:
{"status": "success","email": "contact@mrbeastbusiness.com","found": true}
Important Notes:
- Results are returned in a single run — a run takes about 15 seconds
- One channel per run — pass either
channelHandleorid, not a list - Handles must start with
@(@mrbeast, notmrbeast) - Actor passes through most reCAPTCHAs, but not all
- A channel with no public email still returns
status: "success"withemail: ""andfound: false— and is charged - If the actor returns a
status: "error"row, you are not charged - All data comes from public sources only
- Need websites, socials and link-in-bio platforms too? Use YouTube Channel Contacts Extractor
- Contact: contact@endspec.net
Full Actor Documentation
Overview
Youtube Instant Email Finder is an Apify Actor that finds the publicly available contact email address for a YouTube channel. Give it a channel handle (@mkbhd) or a channel ID (UC_x5XG1OV2P6uZZ5FSM9Ttw) and it returns the channel's public contact email as a clean, three-field dataset row you can export to JSON, CSV, or Excel.
It is built for one job and does it fast: YouTube channel email lookup, one channel at a time, with a predictable output shape that is easy to wire into a CRM, a spreadsheet, or an outreach sequence. Many YouTube channels put a business email behind a reCAPTCHA on their About page; this Actor passes most of those challenges — though not all.
What this Actor does not do: it does not return social profiles, websites, subscriber counts, video lists, or any other channel metadata — only the contact email. It does not accept a list of channels in a single run. For a richer contact profile (emails plus socials plus URLs), see YouTube Channel Contacts Extractor.
What You Can Do
- Find a YouTube channel's contact email: Retrieve the public business/contact email a creator has published on their channel
- Look up by handle: Use the familiar
@channelnameformat straight from a YouTube URL - Look up by channel ID: Use the stable
UC…ID when you have it — IDs never change, handles can - Get past most reCAPTCHA gates: Reach emails that are hidden behind YouTube's contact-email challenge
- Build outreach lists: Run the Actor per channel and collect the results from the Apify dataset
- Integrate cleanly: A flat
{status, email, found}row is trivial to map into a CRM, sheet, or automation step
Data Availability
All data returned by this Actor is publicly available information. It returns only the contact email that a creator has chosen to publish on their own YouTube channel. The Actor does not access private, hidden, or login-gated data, and it does not guess, generate, or infer email addresses that a creator has not made public.
If a creator has not published a contact email, the Actor returns a successful row with an empty email and found: false. That is a real, meaningful answer — not a failure.
Actor Input Parameters
The Actor accepts the following input parameters:
channelHandle
• Type: string
• Required: Optional*
• Default: none (the input form is prefilled with @mrbeast as a starting example)
• Description: YouTube channel handle. Must start with @.
e.g., @mrbeast, @mkbhd, @theAIsearch
id
• Type: string
• Required: Optional*
• Default: none
• Description: YouTube channel ID. This is the UC… string found in youtube.com/channel/UC… URLs.
e.g., UC_x5XG1OV2P6uZZ5FSM9Ttw
* Neither field is individually required, but at least one of the two must be provided.
Important Notes:
- At least one parameter is required — provide
channelHandleorid. An input with neither returns the error rowEither 'id' or 'channelHandle' parameter is required in input. - Handles must start with
@—@mkbhdworks,mkbhddoes not. A handle without the@produces the generic error rowSomething went wrong with the Actor. You will not be charged for this operation.rather than a result. This is the single most common input mistake. idtakes precedence — if bothidandchannelHandleare supplied, onlyidis used andchannelHandleis ignored entirely (it is not used as a fallback if the ID fails).- One channel per run — there is no array input. To process many channels, start one run per channel (see Best Practices).
- Channel IDs start with
UC— an identifier that is not a validUC…channel ID will not resolve to a channel; you will get a successful row withfound: false. - No API key input — you do not supply any credentials. There is no key field, and none is needed.
Input Examples
Example 1: Look Up by Channel Handle
{"channelHandle": "@mkbhd"}
When to use: The common case. You have the @username from a YouTube URL, a video page, or a spreadsheet of creators.
Example 2: Look Up by Channel ID
{"id": "UC_x5XG1OV2P6uZZ5FSM9Ttw"}
When to use: When you have the UC… ID from a YouTube URL, an export, or the YouTube Data API. Prefer this when you have it — IDs are permanent, while handles can be changed by the creator.
Example 3: Both Parameters Present (ID Wins)
{"id": "UC_x5XG1OV2P6uZZ5FSM9Ttw","channelHandle": "@theAIsearch"}
Result: The Actor uses id and ignores channelHandle completely. Do not rely on channelHandle as a backup — if the ID is wrong, the run does not retry with the handle.
Example 4: Handle Missing the @ (Returns an Error)
{"channelHandle": "mkbhd"}
Result: No lookup is performed. The Actor emits:
{"status": "error","error": "Something went wrong with the Actor. You will not be charged for this operation."}
Add the @ and rerun. You are not charged for this.
Output Structure
The Actor writes exactly one row to the Apify dataset per run. You can view it in the Apify console's Overview table and export it as JSON, CSV, Excel, XML, or RSS, or pull it through the Apify API.
There are two possible row shapes.
Successful Row
{"status": "success","email": "string","found": true}
Field Descriptions:
status
• Type: string
• Value: "success"
• Description: The lookup completed. Note that this says nothing about whether an email exists — check found for that.
email
• Type: string
• Description: The channel's public contact email. If the channel has more than one public email, the first one is returned. If no email was found, this is an empty string (""), never null.
found
• Type: boolean
• Description: true if an email address was returned, false if the lookup completed but no public email was available. This is the field to branch on in your code.
Error Row
{"status": "error","error": "string"}
Field Descriptions:
status
• Type: string
• Value: "error"
• Description: The run did not complete a lookup.
error • Type: string • Description: A human-readable message explaining what happened. It is always one of exactly three fixed messages:
Either 'id' or 'channelHandle' parameter is required in input.The actor is overloaded. Please wait a bit before requesting again. You will not be charged for this operationSomething went wrong with the Actor. You will not be charged for this operation.
Note: error rows do not contain email or found keys, and successful rows do not contain an error key. When a run emits an error row, the run itself is also marked as failed in the Apify console — the row is still written to the dataset and is retrievable as normal.
Output Examples
Example 1: Email Found
{"status": "success","email": "info@kingsandgenerals.net","found": true}
The channel published a public contact email and the Actor retrieved it. This run is charged.
Example 2: No Email Found (Still a Success)
{"status": "success","email": "","found": false}
The lookup ran and completed, but the channel has no public contact email available — or the email was behind a reCAPTCHA that could not be passed on this attempt. This is the normal, expected result for a large share of channels. This run is charged, because the lookup was performed and answered.
Example 3: Missing Input Parameters
{"status": "error","error": "Either 'id' or 'channelHandle' parameter is required in input."}
You submitted an input with neither channelHandle nor id. Nothing was looked up and you are not charged.
Example 4: Actor Overloaded (Internal Rate Limit)
{"status": "error","error": "The actor is overloaded. Please wait a bit before requesting again. You will not be charged for this operation"}
Too many lookups hit our service in a short window. Wait a short while and rerun the same input. You are not charged. This is the row to detect and retry on if you are running the Actor in a loop.
Example 5: Generic Failure
{"status": "error","error": "Something went wrong with the Actor. You will not be charged for this operation."}
The catch-all row. Most often this means a malformed input (for example a channelHandle without the @ prefix); it can also mean a transient failure on our side. Check the @ first, then retry once. You are not charged.
Use Cases
For Marketers and Agencies
Influencer outreach lists. Sponsored-content and influencer campaigns die on missing contact details. Resolve a shortlist of channels to real, public business emails before your sequence goes out, so your open rate is not gated by bad addresses.
Example Workflow:
- Build a shortlist of channel handles in your niche (from YouTube search, a competitor's mentions, or an existing sheet)
- Start one Actor run per handle
- Export all datasets to CSV and filter on
found: true - Import the emails into your outreach tool and send the campaign
- Re-run the
found: falserows quarterly — creators add contact emails over time
For Businesses and Sales Teams
Partner and sponsorship prospecting. Identify creators whose audience overlaps your product, then get a real inbox to pitch — rather than a comment or a DM that never gets read.
Example Workflow:
- Collect candidate channels during market or competitor research
- Run the Actor for each channel to retrieve its contact email
- Push
found: trueresults into your CRM as new leads, tagged with the channel handle - Route to a rep for a personalized sponsorship or partnership pitch
For Researchers and Analysts
Contactability studies. Measure what share of channels in a category publish a public contact email at all — the found boolean makes this a one-column analysis.
Example Workflow:
- Define a sample of channels (by category, size, or region)
- Run the Actor across the sample, one run per channel
- Aggregate the datasets and compute the
found: truerate - Compare across segments, and re-measure periodically to track the trend
For Developers
Enrichment step in a pipeline. A flat {status, email, found} row means no parsing logic and no schema surprises — call the Actor via the Apify API and map the result straight into your own model.
Example Workflow:
- Trigger a run via the Apify API whenever a channel is added to your system
- Read the single dataset row from the run
- Branch on
status, then onfound - Store the email; queue
status: "error"rows for a retry with backoff
Best Practices and Tips
Choosing Your Input
- Prefer
idwhen you have it. Channel IDs are permanent; handles can be changed by the creator, silently breaking a saved workflow. - Always include the
@on handles. This is the number one cause of unexpected error rows. - Do not pass both fields "just in case."
idwins outright and the handle is never used as a fallback, so a wrong ID plus a correct handle still fails.
Running at Scale
- One run = one channel. For a batch, start one run per channel via the Apify API, a scheduled task, or your orchestration tool of choice.
- Do not fire runs all at once. The service has a finite request budget; hammering it produces
The actor is overloadedrows rather than results. Space runs out and you will finish a batch faster than by retrying a wall of overload errors. - Retry overload rows with backoff. They are free and they are transient — waiting and rerunning the identical input is the correct response.
Interpreting Results
- Check
statusfirst, thenfound.status: "success"withfound: falseis a completed lookup, not a failure — do not retry it in a tight loop; the answer will not change on the second attempt. emailis"", nevernull, when nothing was found. Code accordingly.- Only the first email is returned. If a channel publishes several addresses, you get one of them, not all of them.
- Re-check periodically, not constantly. Contact emails change slowly; a monthly or quarterly refresh of a list is plenty.
Data Usage
- Verify before you send. Public emails go stale. Validate deliverability in your sending tool.
- Follow anti-spam law. CAN-SPAM, GDPR, PECR and their equivalents apply to whatever you send. A public address is not consent to be marketed to.
- Honor opt-outs immediately. If a creator asks to be removed from your list, remove them.
- Keep it business-legitimate. These are working inboxes belonging to real people.
Cost, Performance, and Limits
Pricing model: pay per event. The Actor charges a single event, channel-parsed-successfully, when a lookup completes.
When you are charged:
- A lookup that completes and returns a
status: "success"row — whether or not an email was found. Afound: falseanswer costs the same as afound: trueanswer, because the work is identical.
When you are not charged:
- Any
status: "error"row — missing parameters, overload, or a generic failure. All three are free. - Some channel-not-found lookups also complete without a charge.
Performance:
- A run takes roughly 15 seconds. The Actor deliberately paces itself after each lookup to stay within its request budget; this pacing dominates the runtime.
- The Actor is lightweight — a single request, no browser, no crawling — so Apify compute usage per run is small. Runtime is near-constant and does not vary with channel size.
Limits:
- One channel per run. No batch or array input.
- One email per result. The first public address, not the full set.
- Finite request budget. Our service capacity is not unlimited. Concurrent bursts will hit the internal rate limit and return the free
The actor is overloadedrow. If demand justifies it, we will raise this ceiling — tell us at contact@endspec.net if you are hitting it. - reCAPTCHA is not always beaten. Most challenges are passed; some are not. An unpassed challenge looks identical to "no email published":
found: false.
Data Sources and Legality
This Actor returns only publicly available information — the contact email that a creator has themselves chosen to publish on their public YouTube channel. It does not access private data, does not require or use a YouTube login, and does not extract anything that is not already visible to any member of the public viewing the channel.
Extracting publicly available data is generally lawful in many jurisdictions, but you are responsible for how you collect and use it. In particular:
- An email address of an identifiable person is personal data under the GDPR and comparable regimes. Having it does not by itself give you a lawful basis to process or market to it — establish one before you send.
- Unsolicited commercial email is regulated (CAN-SPAM, GDPR/PECR, CASL, and others). Comply with the rules that apply to you and your recipients.
- Review YouTube's Terms of Service and confirm your intended use is consistent with them.
- Honor removal and opt-out requests promptly.
Nothing here is legal advice. If your use case is sensitive or high-volume, consult your own counsel.
FAQ
Q: Why did I get found: false for a channel that clearly has an email on its About page?
A: Two likely reasons. Either the email is gated behind a reCAPTCHA that was not passed on this attempt, or the address is not exposed in a machine-readable way on the channel. Retrying once is reasonable; if it persists, the answer is unlikely to change.
Q: I get found: false — am I still charged?
A: Yes. A completed lookup that answers "this channel has no public email available" performed the same work as one that returns an address. You are only exempt from charges on status: "error" rows.
Q: My handle doesn't work. What's wrong?
A: Nine times out of ten, the missing @. @mkbhd works; mkbhd returns the generic error row. If the @ is there and it still fails, look the channel ID up and pass id instead.
Q: Can I process multiple channels in one run?
A: No. The Actor is single-channel by design — one identifier in, one row out. To process a batch, start one run per channel through the Apify API or a scheduled task, and space the runs out.
Q: What does The actor is overloaded mean, and what should I do?
A: You (or the service as a whole) briefly exceeded the available request budget. It is free, it is temporary, and rerunning the identical input after a short wait is the correct fix. If you hit it routinely, email us — we will look at raising the ceiling.
Q: Why is my run marked as "failed" when the dataset has a row in it?
A: When the Actor emits a status: "error" row, it also exits with a failure status so that failures are visible in monitoring and in the Apify console. The error row is written to the dataset first and is fully retrievable. Read the row's error field to see what happened.
Q: Why does a run take about 15 seconds?
A: The Actor paces itself after each lookup to stay inside its request budget. It is a deliberate throttle, not a slow scrape — it keeps the service reliable for everyone rather than melting under bursts.
Q: The channel has several emails published. Which one do I get?
A: The first one found. There is no way to request the full set from this Actor.
Q: Do I need a YouTube API key or any credentials?
A: No. There is no key field in the input and you do not need to supply anything beyond the channel handle or ID.
Q: Can I use this Actor commercially?
A: Yes. The data is public. Your use of it — especially for outreach — must comply with applicable privacy and anti-spam law; see Data Sources and Legality.
Q: How often should I re-run the same channel?
A: Contact emails change slowly. Monthly or quarterly is ample for maintaining a list. Re-running the same channel minutes apart will return the same answer.
Q: I need social profiles and website URLs too, not just the email.
A: Use YouTube Channel Contacts Extractor, which returns emails, social profiles, and website URLs for a channel. Note that it does not solve reCAPTCHA — this Actor does, for most challenges. Many users run both.
Support
Questions? Something not working? We want to hear about it.
Email: contact@endspec.net
Response time: we respond within 24 hours on business days.
What to include in your message:
- A description of the problem or question
- The Apify run ID (the fastest way for us to diagnose anything)
- The exact input JSON you used
- The
statusanderrorvalues from the dataset row you got back - What you expected instead
You can also report issues through the Issues tab on this Actor's Apify page.
If you are hitting The actor is overloaded regularly, or you need higher throughput or batch input, tell us — demand is what drives us to raise those limits.
Related Actors
- YouTube Channel Contacts Extractor — emails, social media profiles, and website URLs for a YouTube channel. Richer output, but does not solve reCAPTCHA.
- LinkedIn Instant Profile Search — find LinkedIn profiles by name, job title, or company for B2B lead generation.
- Instagram Instant Media Scraper — pull public media and profile data from Instagram accounts.