Youtube Instant Email Scraper avatar

Youtube Instant Email Scraper

Pricing

from $60.00 / 1,000 channel-parsed-results

Go to Apify Store
Youtube Instant Email Scraper

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

EndSpec

Maintained by Community

Actor stats

3

Bookmarked

853

Total users

29

Monthly active users

15 days ago

Last modified

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 channelHandle or id, not a list
  • Handles must start with @ (@mrbeast, not mrbeast)
  • Actor passes through most reCAPTCHAs, but not all
  • A channel with no public email still returns status: "success" with email: "" and found: 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 @channelname format 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 channelHandle or id. An input with neither returns the error row Either 'id' or 'channelHandle' parameter is required in input.
  • Handles must start with @ — @mkbhd works, mkbhd does not. A handle without the @ produces the generic error row Something 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.
  • id takes precedence — if both id and channelHandle are supplied, only id is used and channelHandle is 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 valid UC… channel ID will not resolve to a channel; you will get a successful row with found: 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 operation
  • Something 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:

  1. Build a shortlist of channel handles in your niche (from YouTube search, a competitor's mentions, or an existing sheet)
  2. Start one Actor run per handle
  3. Export all datasets to CSV and filter on found: true
  4. Import the emails into your outreach tool and send the campaign
  5. Re-run the found: false rows 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:

  1. Collect candidate channels during market or competitor research
  2. Run the Actor for each channel to retrieve its contact email
  3. Push found: true results into your CRM as new leads, tagged with the channel handle
  4. 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:

  1. Define a sample of channels (by category, size, or region)
  2. Run the Actor across the sample, one run per channel
  3. Aggregate the datasets and compute the found: true rate
  4. 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:

  1. Trigger a run via the Apify API whenever a channel is added to your system
  2. Read the single dataset row from the run
  3. Branch on status, then on found
  4. Store the email; queue status: "error" rows for a retry with backoff

Best Practices and Tips

Choosing Your Input

  • Prefer id when 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." id wins 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 overloaded rows 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 status first, then found. status: "success" with found: false is a completed lookup, not a failure — do not retry it in a tight loop; the answer will not change on the second attempt.
  • email is "", never null, 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. A found: false answer costs the same as a found: true answer, 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 overloaded row. 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 status and error values 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.