# TikTok Email Finder & Scraper: Creator Emails by Username (`s_actors/tiktok-email-scraper`) Actor

Find TikTok creator and influencer emails by username, niche keyword or a brand's following list. Reads the bio, the bio link website and Linktree pages, checks the mail server (MX); Instagram, YouTube and other socials, followers. Pay only for creators with an email.

- **URL**: https://apify.com/s_actors/tiktok-email-scraper.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** Lead generation, Social media, AI
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.43 / 1,000 creator 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### TikTok Email Finder & Scraper: Creator Emails by Username

Find the **emails of TikTok creators and influencers** for outreach: paste **usernames**, type a **niche keyword** ("fitness coach", "skincare") or name a **brand to get the creators it follows**. For every account the Actor reads the email in the **bio**, opens the **bio link** (website and its contact page, or a **Linktree / Beacons / Stan / hoo.be** page), checks that each email's domain has a **mail server (MX)**, and adds **Instagram, YouTube, X, WhatsApp** and other profiles plus exact followers. **You pay only for creators with an email.**

```json
{ "keywords": ["fitness coach"], "profiles": ["@alixearle"], "followingOf": ["@gymshark"], "minFollowers": 10000 }
```

No TikTok login, no cookies, no browser extension. Use it as a **TikTok email finder by username**, an influencer lead generator, or a **TikTok email scraper API** for your CRM.

#### What you get

One row per creator. Real results, October 2026:

| username | followerCount | email | emailSource | emailMailServer | website / link in bio | foundBy |
|---|---|---|---|---|---|---|
| alixearle | 8,724,714 | alixearleteam@unitedtalent.com | bio | ✅ | hoo.be/alixearle | input |
| noahbeck | 32,646,506 | noahbeck@underscoretalent.com | website | ✅ | linktr.ee/noahbeck | input |
| xdanii_s | 50,255 | movebydani@gmail.com | bio | ✅ | movebydani.com | keyword: fitness coach |
| make_it_hiit | 22,971 | make.it.hiit@gmail.com | website | ✅ | makeithiit.com/coaching | keyword: fitness coach |
| alistairalmond | 659,697 | alistair.almond@engagepartnerships.uk | bio | ✅ | | following of @gymshark |

Measured hit rate: **12 of 32** "fitness coach" creators, **13 of 15** "skincare" creators and **10 of 25** creators followed by @gymshark had an email, half of them found only on the bio link page.

| Field | Description |
|---|---|
| `email` | The best email: the one in the bio first, otherwise the creator's own site domain or a business / booking / management address |
| `emailSource` | `bio` (written on TikTok) or `website` (bio link website, contact page or link-in-bio page) |
| `emailMailServer` | `true` when the email's domain has a mail server (MX), `null` when DNS did not answer |
| `emails`, `bioEmails`, `websiteEmails` | Every valid email found, and where |
| `invalidEmails` | Emails on domains without a mail server (never used as `email`) |
| `phones` | International phone numbers written in the bio (+1..., +44...) |
| `website`, `linkInBio`, `bioLink` | The creator's website, link-in-bio page and the raw bio link |
| `instagram`, `youtube`, `x`, `facebook`, `linkedin`, `telegram`, `whatsapp`, `twitch`, `socialLinks` | Profiles from the bio, the link-in-bio page and the website |
| `followerCount`, `followingCount`, `likeCount`, `videoCount` | Exact profile counts |
| `verified`, `isSeller`, `businessCategory`, `isOrganization`, `language` | Verified badge, TikTok Shop seller, business account category, organization account, app language |
| `username`, `nickname`, `bio`, `profileUrl`, `avatarUrl`, `userId`, `secUid` | The profile |
| `foundBy`, `checkedAt` | How the account was found (`input`, `keyword: ...`, `following of @...`, `video author: ...`) and when |

#### How it works

1. Add **accounts** (`charlidamelio`, `@charlidamelio`, `tiktok.com/@user`, or a video link to check its author), **keywords**, and/or **brands** whose following list to check
2. Set the **limit** per keyword or list and the **follower range**
3. Run and export the **Leads** table to CSV, Excel or your CRM

| Input | What it does |
|---|---|
| **Niche keywords** | Creators of TikTok's own topic page for the word (~60-80 per word); **Go deeper with related words** continues with TikTok's search suggestions ("fitness coach female", "online fitness coach"...) |
| **TikTok accounts** | Usernames, profile links or video links; each one is checked, the filter does not apply |
| **Accounts they follow** | The accounts a brand or creator follows, newest first: for a brand, its athletes, ambassadors and partner creators |
| **Followers of an account** | The account's latest followers (mostly private people for big accounts: use **Min followers**) |
| **Max accounts per keyword or list** | Default 100, `0` = everything TikTok shows (up to 10,000 per list) |
| **Min / Max followers** | Keep micro-influencers, skip celebrities |
| **Only accounts with an email** | On by default; off = also accounts with only a website or socials (free) |
| **Read the bio link** | Website + contact page, Linktree and other link-in-bio pages; off = bio only |
| **Check the mail server (MX)** | DNS check of every email domain |
| **Only new accounts since the previous run** | Schedule a keyword to collect only new creators |

#### Why this Actor

| | |
|---|---|
| 🤝 **A brand's creators in one click** | `followingOf: ["@gymshark"]` lists the athletes and partner creators the brand follows, with their emails: ready-made competitor research for influencer marketing |
| 🔎 **Keyword search that goes deep** | TikTok's topic pages plus its own search suggestions, so one niche gives hundreds of relevant creators |
| 🌐 **Emails behind the bio link** | Linktree, Beacons, Stan, komi, hoo.be, bio.site and the creator's own website with its contact page |
| ✅ **Checked emails** | Mail server (MX) check; sponsor shop links with the creator's discount code are skipped, so you don't get a brand's support@ address |
| 💰 **$1.79 per 1,000 creators with an email** | Accounts without an email, not found or failed are free |

#### Pricing

Pay per creator returned with an email, no subscription needed. Apify Scale and Business plans pay less:

| Event | Free and Starter plans | Scale plan | Business plan |
|---|---|---|---|
| Run start | $0.001 | $0.001 | $0.001 |
| Creator with email | $0.00179 | $0.00161 | $0.00143 |

| Task | Cost |
|---|---|
| 100 creators checked for "fitness coach" (~40 with an email) | ~$0.07 |
| 1,000 creators with an email | ~$1.79 |
| Weekly "only new creators" for 5 keywords, ~50 new emails a week | ~$0.36 per month |

#### Ready-made tasks

Open it, change the usernames, and run:

| Task | What you get |
|---|---|
| [TikTok Email Finder by Username](https://apify.com/s_actors/tiktok-email-scraper/examples/tiktok-email-finder-by-username) | Emails and socials of a list of TikTok usernames |

#### FAQ

**Where do the emails come from?** Only from what creators publish: their TikTok bio, their bio link (website, its contact page, or a link-in-bio page such as Linktree) and the website that page links to. The Actor never guesses addresses and never reads TikTok's in-app "Email" button, which needs a logged-in phone app.

**How many creators have an email?** It depends on the niche: about 40% of fitness creators, most beauty and skincare creators with management, few celebrities. Creators with 10,000-500,000 followers publish one most often.

**Can I find the email of any TikTok user by username?** Only if the user published one. Private people rarely do; creators and businesses usually do. Accounts without an email are free.

**What does `emailMailServer` mean?** The email's domain has a mail server (MX record), so mail can be delivered there. It does not prove the mailbox exists; use an email verifier before large campaigns.

**How does the keyword search work?** TikTok keeps topic pages (`tiktok.com/discover/<word>`) with popular videos for millions of words. The Actor takes the creators of those videos. When a word has no page, or with **Go deeper**, it uses TikTok's own search suggestions for more words.

**Do I need a TikTok account or cookies?** No. The Actor reads public profiles the way the TikTok website shows them to a visitor.

#### Use with the API and AI agents

Run it via the [Apify API](https://docs.apify.com/api/v2) from Python, Node.js or any HTTP client, or connect it to Claude, ChatGPT and other AI agents through the [Apify MCP server](https://mcp.apify.com): "Find emails of skincare creators on TikTok with 10k to 100k followers". Send the leads to Google Sheets, HubSpot or your outreach tool with an Apify integration or webhook.

#### Other tools

| Tool | What it does |
|---|---|
| [TikTok Profile Scraper](https://apify.com/s_actors/tiktok-profile-scraper) | All videos of TikTok profiles: plays, likes, dates, exact followers, new-video alerts, MP4 download |
| [TikTok Followers Scraper](https://apify.com/s_actors/tiktok-followers-scraper) | Followers and following lists of TikTok accounts with exact follow time, new followers and unfollows |
| [TikTok Comments Scraper](https://apify.com/s_actors/tiktok-comments-scraper) | Comments and replies of TikTok videos and profiles, keyword filter, commenter contacts |
| [TikTok Viral Videos & Explore Scraper](https://apify.com/s_actors/tiktok-explore-scraper) | Viral TikTok videos from the Explore page in any country and 21 categories, creator contacts |
| [TikTok Video Scraper](https://apify.com/s_actors/tiktok-video-scraper) | Stats of TikTok videos: plays, likes, shares, saves, hashtags, place, views growth between runs |
| [TikTok Shop Scraper](https://apify.com/s_actors/tiktok-shop-scraper) | TikTok Shop products, prices, sold counts and stock by SKU, shops and search |
| [YouTube Channel Email Scraper](https://apify.com/s_actors/youtube-channel-email-scraper) | Emails of YouTube channels from About pages, video descriptions and linked websites |
| [Facebook Email Scraper](https://apify.com/s_actors/facebook-email-scraper) | Emails and contact details of Facebook pages and their websites, MX-checked |

#### Is it legal?

The Actor reads only public profiles and public web pages, without logging in. Emails of people are personal data: use them in line with GDPR, CAN-SPAM and other privacy and anti-spam laws (a legitimate reason to contact, a clear opt-out, no bulk unsolicited mail where the law forbids it).

# Actor input Schema

## `keywords` (type: `array`):

One per line: a niche or topic such as fitness coach, skincare, real estate agent, vegan recipes (or a tiktok.com/discover/... link). The Actor takes the creators of TikTok's own topic page for the word and, when it runs out, of related words from TikTok's search suggestions, then looks up each creator's email.

## `profiles` (type: `array`):

One per line: usernames (charlidamelio or @charlidamelio), profile links (tiktok.com/@user) or video links (the video's author is checked). Every account you add is checked, the follower filter does not apply.

## `followingOf` (type: `array`):

One per line: a brand or creator (@gymshark). The Actor checks the accounts it follows, newest first: for a brand these are usually its athletes, ambassadors and partner creators.

## `followersOf` (type: `array`):

One per line: an account (@username) whose followers to check, newest first. Followers of big accounts are mostly private people without contacts; use the follower filter to keep creators only.

## `maxProfilesPerSource` (type: `integer`):

How many new accounts each keyword, following list or followers list adds (after the follower filter). One keyword gives ~60-80 creators per TikTok topic page; more come from related words. 0 = as many as TikTok shows (up to 10 000). Accounts you list one by one are always checked.

## `useSuggestions` (type: `boolean`):

When a keyword's topic page runs out before the limit, continue with related words from TikTok's search suggestions (fitness coach → fitness coach female, online fitness coach...), up to 12 words per keyword.

## `minFollowers` (type: `integer`):

Skip found accounts with fewer followers (keywords and lists only). Example: 1000 for micro-influencers and up.

## `maxFollowers` (type: `integer`):

Skip found accounts with more followers (keywords and lists only). Example: 100000 to skip celebrities, who rarely answer cold email.

## `onlyWithEmail` (type: `boolean`):

Keep only accounts with an email in the dataset. Off: also list the accounts without one (with their website, Instagram, YouTube and other links), free of charge.

## `scanWebsites` (type: `boolean`):

Open the link in the bio: a website (home page and its contact page) or a link-in-bio page such as Linktree, Beacons, Stan, komi or hoo.be (and the website it links to). Finds emails that are not in the bio, plus Instagram, YouTube and other profiles. Off: only the bio, faster.

## `checkMailServer` (type: `boolean`):

Check that every email's domain receives mail (MX records over DNS). Emails on domains without a mail server go to invalidEmails and are never the main email.

## `onlyNewProfiles` (type: `boolean`):

Skip accounts that earlier runs with this option already returned (remembered in your key-value store tiktok-email-seen). Schedule a keyword daily or weekly to collect only new creators.

## `maxConcurrency` (type: `integer`):

Accounts checked at the same time. 5 is fast and gentle; more can make TikTok slow down.

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

Used only when TikTok refuses direct requests: datacenter proxy by default.

## `debugLog` (type: `boolean`):

Log every retry of TikTok requests.

## Actor input object example

```json
{
  "keywords": [
    "fitness coach"
  ],
  "profiles": [
    "noahbeck",
    "@alixearle"
  ],
  "maxProfilesPerSource": 30,
  "useSuggestions": true,
  "onlyWithEmail": true,
  "scanWebsites": true,
  "checkMailServer": true,
  "onlyNewProfiles": false,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "debugLog": false
}
```

# Actor output Schema

## `leads` (type: `string`):

Email, where it was found, mail server check, followers, website, Instagram and YouTube of every account.

## `profiles` (type: `string`):

Bio, all emails, profile stats and every social profile.

## `csv` (type: `string`):

Every field of every row as CSV.

## `all` (type: `string`):

Every field of every row.

# 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 = {
    "keywords": [
        "fitness coach"
    ],
    "profiles": [
        "noahbeck",
        "@alixearle"
    ],
    "maxProfilesPerSource": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/tiktok-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 = {
    "keywords": ["fitness coach"],
    "profiles": [
        "noahbeck",
        "@alixearle",
    ],
    "maxProfilesPerSource": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/tiktok-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 '{
  "keywords": [
    "fitness coach"
  ],
  "profiles": [
    "noahbeck",
    "@alixearle"
  ],
  "maxProfilesPerSource": 30
}' |
apify call s_actors/tiktok-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/tiktok-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/gNDT3VyEQnoKi9uJe/builds/5YEtzyqi1ilfY5TN6/openapi.json
