# TikTok Commenters Lead List - Emails & Followers (`seemuapps/tiktok-commenters-lead-list`) Actor

Turn everyone commenting on TikTok videos into one deduplicated lead list with follower counts, bio, bio link and emails. Filter by keyword or audience size.

- **URL**: https://apify.com/seemuapps/tiktok-commenters-lead-list.md
- **Developed by:** [Seemu Scraping](https://apify.com/seemuapps) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 lead with profile data

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Commenters Lead List - Emails & Followers

Turn the people commenting on TikTok videos into a ready-to-use lead list. Paste video URLs - or just creator usernames to use their latest videos - and get every commenter combined into one de-duplicated list, with what they said, how often they commented, and their follower count, bio, bio link and any email address in their bio. Filter by keywords like "price", "link" or "where to buy" to keep only buyers with real purchase intent. No login required.

Export straight to CSV, Excel or Google Sheets, or push it into your CRM.

### What you get

One row per unique commenter:

- **username**, **nickname**, **profileUrl**, **avatarUrl**, **verified**
- **commentText**, **commentLikes**, **commentedAt**, **commentVideoUrl** - their most-liked (matching) comment
- **commentCount** - how many comments they left across all the videos you scanned
- **matchedKeywords** - which of your keywords they used
- **sourceVideoUrls** - every scanned video they commented on
- With **Enrich profiles** on: **followers**, **following**, **likes**, **videoCount**, **isPrivate**, **bio**, **bioLink** and **emails** found in the bio

Repeat commenters come first, then the most-liked comments, so your warmest leads are at the top.

### Why this instead of a comment scraper?

A comment scraper gives you thousands of raw comments - one row per comment, the same person repeated many times, and no idea who they are. This actor gives you **people**: one row per commenter, merged across all your videos, filtered to the comments that matter, and enriched with follower count, bio, website and email so you can qualify and reach out straight away.

### Use cases

- **Lead generation** - people asking "price?", "link?" or "where can I buy this?" under your product videos or a competitor's are ready to buy
- **Competitor audience mining** - see who engages with a rival brand's latest videos and which of them are creators or businesses
- **Influencer and UGC sourcing** - set **Minimum followers** to find creators with a real audience hanging out in a niche's comments
- **Superfan identification** - commenters active across several of your videos are sorted to the top
- **Giveaway and campaign follow-up** - export everyone who commented on a campaign video in one click
- **Customer research** - read what an audience asks for and build a list of who asked

### How to use

1. Paste one or more **Video URLs** (full links, short share links or video IDs), and/or enter **creator usernames** and choose how many **Recent videos per creator** to scan.
2. Optionally add a **Keyword filter** - only commenters whose comment contains one of the words are kept (case-insensitive, partial match, so "buy" also matches "buying").
3. Leave **Enrich profiles** on to add followers, bio, bio link and email to every lead, or turn it off for a cheaper comment-only list.
4. Optionally set **Minimum followers** to keep only commenters with an audience.
5. Set **Max leads** (default 200) and run. The scan stops as soon as enough leads are found.

### Output format

Each dataset record:

```json
{
  "username": "keithlukemason",
  "nickname": "Keith Mason",
  "profileUrl": "https://www.tiktok.com/@keithlukemason",
  "userId": "6801154079298094085",
  "avatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/...",
  "verified": true,
  "commentText": "The Goat & MR BEAST",
  "commentLikes": 66037,
  "commentedAt": "2026-09-18T20:32:44.000Z",
  "commentVideoUrl": "https://www.tiktok.com/@mrbeast/video/7686940133609786655",
  "commentCount": 3,
  "matchedKeywords": [],
  "sourceVideoUrls": [
    "https://www.tiktok.com/@mrbeast/video/7686940133609786655",
    "https://www.tiktok.com/@mrbeast/video/7683649763480309022"
  ],
  "enriched": true,
  "followers": 928000,
  "following": 286,
  "likes": 4000000,
  "videoCount": 1838,
  "isPrivate": false,
  "bio": "Official TikTok of Keith Mason. SportsMan, Actor, Author",
  "bioLink": "https://linktr.ee/keithmason",
  "emails": [],
  "scrapedAt": "2026-10-01T05:33:13.123Z"
}
```

### Free plan limits

To keep the actor available to everyone, free runs are limited to:

- **50 leads per run** (and up to 300 comments read per video)
- **1 run every 30 minutes**
- **3 runs per day**

If you hit a limit, the run finishes with a message explaining what happened and nothing is charged. Upgrade to a paid Apify plan to remove these limits.

### Pricing

You pay per result, with no monthly fee:

- **Comments page** - each page of comments read (about 30-40 comments)
- **Commenter lead** - each lead returned without profile data
- **Enriched lead** - each lead returned with followers, bio, bio link and emails
- **Follower check** - each profile checked that falls below your **Minimum followers** (only when that filter is set)

Without filters, a 200-lead list needs only a handful of comment pages, so you pay almost entirely per lead. Keyword filters read more comments to find matches, so they use more comment pages. Set a maximum cost per run in the run options to cap your spend.

### Tips

- Short, common buying words work best as keywords: **price**, **link**, **where**, **buy**, **how much**, **need**, **ship**.
- Big videos surface their most popular comments first, and those commenters skew towards verified creators - great for influencer sourcing.
- Emails only appear when a commenter wrote one in their TikTok bio. Most people link a website or link-in-bio page instead - check **bioLink**.
- Raise **Max comments per video** to dig deeper into long comment sections.

### FAQ

**Does it include replies to comments?**
It reads top-level comments - the people starting the conversation. Replies are not included.

**Why do some leads have no follower count?**
A few accounts can't be viewed on the web (age-restricted or limited by TikTok). They are still returned with their comment, but without profile data, and billed as a commenter lead rather than an enriched lead.

**Is there a limit on how many comments can be read?**
You can read tens of thousands of comments per video. TikTok hides some comments (spam-filtered or folded), so the number read can be lower than the count shown on the video.

**Can I run it on a schedule?**
Yes. Run it daily on your own or a competitor's username to catch new buyers as they comment.

# Actor input Schema

## `videos` (type: `array`):

TikTok video URLs (or video IDs), one per line, up to 100. Short share links (vm.tiktok.com) work too. Commenters are combined and de-duplicated across all videos.

## `usernames` (type: `array`):

Optional. TikTok usernames or profile URLs (up to 25). The actor scans the comments on each creator's most recent videos.

## `videosPerCreator` (type: `integer`):

How many of each creator's most recent videos to scan when usernames are given.

## `keywordFilter` (type: `array`):

Optional. Only keep commenters whose comment contains at least one of these words or phrases (case-insensitive, partial match). Great for buying intent, e.g. price, link, where, how much, buy.

## `enrichProfiles` (type: `boolean`):

Look up every commenter's profile to add followers, following, total likes, video count, bio, bio link and any email address written in the bio. Turn off for a cheaper, comment-only lead list.

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

Optional. Only keep commenters with at least this many followers - useful for finding creators and influencers in the comments. Turns on profile enrichment. 0 keeps everyone.

## `excludeVideoAuthors` (type: `boolean`):

Leave out the creator's own replies in their comment section (when the author is known from the URL or username).

## `maxCommentsPerVideo` (type: `integer`):

Stop reading a video's comments after this many top-level comments. The scan also stops early once enough leads are found.

## `maxItems` (type: `integer`):

Maximum number of unique commenters to return. 0 means no limit (every commenter up to the per-video comment limit).

## Actor input object example

```json
{
  "videos": [
    "https://www.tiktok.com/@mrbeast/video/7689134313044184351"
  ],
  "videosPerCreator": 5,
  "keywordFilter": [],
  "enrichProfiles": true,
  "minFollowers": 0,
  "excludeVideoAuthors": true,
  "maxCommentsPerVideo": 1000,
  "maxItems": 200
}
```

# Actor output Schema

## `results` (type: `string`):

One record per unique commenter: username, nickname, profileUrl, verified, commentText, commentLikes, commentedAt, commentCount, matchedKeywords, sourceVideoUrls, plus followers, following, likes, videoCount, isPrivate, bio, bioLink and emails when enriched.

# 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 = {
    "videos": [
        "https://www.tiktok.com/@mrbeast/video/7689134313044184351"
    ],
    "keywordFilter": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("seemuapps/tiktok-commenters-lead-list").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 = {
    "videos": ["https://www.tiktok.com/@mrbeast/video/7689134313044184351"],
    "keywordFilter": [],
}

# Run the Actor and wait for it to finish
run = client.actor("seemuapps/tiktok-commenters-lead-list").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 '{
  "videos": [
    "https://www.tiktok.com/@mrbeast/video/7689134313044184351"
  ],
  "keywordFilter": []
}' |
apify call seemuapps/tiktok-commenters-lead-list --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,seemuapps/tiktok-commenters-lead-list"
        }
    }
}
```

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/fU4ZT7yy6J3S1EaKY/builds/9V0EsOCr2e9LOZA9V/openapi.json
