# TikTok Followers Scraper 🎵 Follower & Following Lists (`gatherworks/tiktok-followers-scraper`) Actor

Export any TikTok creator's followers and the accounts they follow. Handle, name, bio, verification and audience size for every account, with duplicates removed. Paste handles. Export to JSON, CSV or Excel. No login, no API key.

- **URL**: https://apify.com/gatherworks/tiktok-followers-scraper.md
- **Developed by:** [GatherWorks](https://apify.com/gatherworks) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 accounts

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## TikTok Followers Scraper 🎵 Follower & Following Lists

**Export who follows a TikTok creator, and who they follow back. Handle, name,
bio, audience size and verification for every account.**

**No account, no cookies, no API key.** Paste handles and run.

***

### 🔍 What is the TikTok Followers Scraper?

Give it creator handles. For each one it returns the accounts in their
audience — one row per account, and nothing else unless you ask for it:

- 👥 their followers, twenty at a time, as deep as you ask
- 🔄 the accounts they follow — usually a much shorter and more revealing list
- 🔢 every account with its own follower count, so you can find the notable names
- ✅ verification marked, so a shortlist of real accounts is one filter away

### ⚡ What can it do?

- **👥 Take many creators at once** and keep each audience labelled by whose it is.
- **🔄 Pull followers, following, or both.**
- **🔢 Filter by audience size** — find the accounts in a million-follower
  audience that themselves have a following.
- **✅ Keep verified accounts only**, for a shortlist of names worth contacting.
- **🔀 Deduplicated** — the same account never appears twice in one list.
- **📄 Export anywhere.** JSON, CSV, Excel — the dataset is yours.

#### 🎯 Who they follow is the more useful list

A creator's followers tell you about their reach. The accounts they *follow* tell
you who they rate, who they collaborate with, and which brands they already watch
— usually a few hundred rows rather than millions, and far denser in signal. Both
are one switch each.

### ⚡ Speed and accuracy

**Speed.** Measured on a real run: **40 accounts in 3 seconds**.

**Accuracy.** Accounts are de-duplicated by ID, so paging overlap never
double-counts. Counts are numbers, not display text. Every account row carries
`ofCreator`, so a multi-creator run stays sortable. A handle that does not
resolve is reported and skipped rather than returned empty.

### 📊 What data does it return?

One row per account (`rowType: "follower"` or `"following"`) — that is the whole
of a default run. Switch on the **creator add-on** to get a row per seed handle
(`rowType: "creator"`) as well:

| Field | Notes |
|---|---|
| 🏷️ `ofCreator` | Whose audience this account belongs to |
| 🏷️ `handle`, `displayName` | The account |
| 🔗 `profileUrl` | Direct link |
| 📝 `bioText` | Their bio |
| 🔗 `externalUrl` | The link in their bio, normalised to an absolute URL — `null` when they have not set one |
| 🔢 `followersCount`, `followsCount`, `videosCount` | Their own numbers |
| ⚖️ `followerRatio` | Followers divided by following |
| ✅ `isVerified`, 🚩 `isPrivate` | Account state |

#### 🚫 What it does **not** return

- **A complete follower list for a very large account.** These lists page, and
  you choose how deep to go; millions of rows is not a realistic export.
- **Email addresses or contact details.** They are not published.
- **Anything from a private account.**
- **Who follows whom beyond the creator you asked about.**

### 💰 How much does it cost?

You pay per event, for what the run actually produces — never for runtime, and
never on a subscription.

Standard rate: **💵 $0.0017 per account**. The creator you searched is an add-on
at **💵 $0.0034**, and is off unless you switch it on:

| Run | Cost |
|---|---|
| 🟩 10 creators, 200 followers each *(the default run)* | 💵 $3.40 |
| 🟨 1 creator, 500 followers | 💵 $0.85 |
| 🟧 10 creators, followers and following, 500 each | 💵 $17.00 |

**A handle that does not resolve is free.** So is an account your filters remove.
**A month you do not run it costs nothing at all** — there is no plan to keep alive.

#### What you get for that

| | Included here |
|---|---|
| 🔢 Each account's own follower count | ✅ |
| 🔄 Followers and following, separately labelled | ✅ |
| ✅ Verified-only and audience-size filters | ✅ free |
| 🔀 Duplicates removed within each list | ✅ free |
| 💳 Minimum spend | none |

### 🚀 How do I use it?

1. Paste the **handles** whose audience you want.
2. Choose **followers**, **following**, or both — followers are on by default,
   and at least one of the two must be on.
3. Set **maximum accounts per creator** to control cost.
4. Optionally switch on **also return the creator you searched** — the add-on
   that adds one row per seed handle. It is **off by default**.
5. Optionally filter to verified accounts or a minimum audience size.
6. Run, then export as JSON, CSV or Excel.

### ⚙️ Input

| Field | Notes |
|---|---|
| 👤 `usernames` | Handles, @handles or profile URLs |
| 👥 `includeFollowers` | Collect their followers — on by default |
| 🔄 `includeFollowing` | Collect the accounts they follow — off by default |
| 👤 `includeSeedCreator` | Also return the creator you searched. **Add-on — off by default** |
| 🔢 `maxAccountsPerCreator` | Cap per creator, per list |
| 🔢 `minFollowers` | Keep only accounts above this audience size |
| ✅ `verifiedOnly` | Keep only verified accounts |
| 🚧 `maxScanned` | How many accounts your filters may skip before stopping. Default **1600** |

```json
{
  "usernames": ["khaby.lame"],
  "includeFollowers": true,
  "includeFollowing": false,
  "includeSeedCreator": false,
  "maxAccountsPerCreator": 200,
  "minFollowers": 1000
}
```

### 📄 Output example

A real follower row — what a default run returns, captured from a live run:

```json
{
  "rowType": "follower",
  "ofCreator": "khaby.lame",
  "handle": "oppoa5x815",
  "displayName": "BSK?gar.",
  "profileUrl": "https://www.tiktok.com/@oppoa5x815",
  "followersCount": 37,
  "followsCount": 760,
  "videosCount": 6,
  "totalLikes": 34,
  "followerRatio": 0.05,
  "isVerified": false,
  "regionCode": "ID"
}
```

With the **creator add-on** on, each seed handle also gets a row of its own:

```json
{
  "rowType": "creator",
  "handle": "khaby.lame",
  "displayName": "Khabane lame",
  "followersCount": 162700000,
  "isVerified": true
}
```

### ❓ Frequently asked questions

**Do I need a TikTok account?** No. No account, no cookies, no API key.

**Can I export all 162 million followers of a huge account?** No, and you would
not want to pay for it. These lists page; set a depth that matches what you are
actually looking for, and use the follower filter to keep the accounts that matter.

**Why is "following" more useful?** It is short, deliberate, and shows who the
creator rates — collaborators, brands and peers.

**Are contact details included?** No. Only what accounts publish on their profile.

### 🏷️ Pricing

Pay per event — you are charged for output, not for platform time.

| Event | Price | Covers |
|---|---|---|
| 👥 `account` — **primary** | 💵 $0.0017 | One follower or followed account returned. **The only charge a default run makes** |
| 👤 `creator` — **add-on** | 💵 $0.0034 | A row for the creator whose list you collected. Only when `includeSeedCreator` is on |
| ▶️ `apify-actor-start` | 💵 $0.00005 | Starting one run, charged once per GB of memory |
| 🔢 Follower counts and verification | ✅ **free** | On every account row |
| 🔎 Filtering | ✅ **free** | Filtered-out accounts are not charged for |
| ❌ Handles that do not resolve | ✅ **free** | Reported, never charged |

**The add-on is off by default.** Leave it off and you are charged the
`account` rate and nothing else — the price on the card is the price of the run.

#### 🏅 Rates by tier

The prices above are the standard rate. Higher Apify plans are billed at the
discounted tiers below, automatically:

| Event | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|
| 👥 `account` | 💵 $0.0017 | 💵 $0.0015 | 💵 $0.0012 | 💵 $0.0010 |
| 👤 `creator` | 💵 $0.0034 | 💵 $0.0029 | 💵 $0.0025 | 💵 $0.0020 |
| ▶️ `apify-actor-start` | 💵 $0.00005 | 💵 $0.00005 | 💵 $0.00005 | 💵 $0.00005 |

#### 🛑 You are never billed past your limit

Set a maximum charge on the run and the Actor stops when it reaches it, with
every creator collected up to that point complete and saved. Filtered-out
accounts are never stored and never billed.

**🚧 A selective filter stops rather than running away.** Set one and your
filters may skip at most **maxScanned** accounts per list before the Actor stops
and returns what it found, saying so in the log. The effective limit is never
more than eight times your accounts-per-creator setting, so raise that to search
deeper.

# Actor input Schema

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

Whose audience to export. <code>tiktok</code>, <code>@tiktok</code> and a full profile URL all work.

## `includeFollowers` (type: `boolean`):

Collect the accounts that follow this creator. On by default.

## `includeFollowing` (type: `boolean`):

Collect the accounts this creator follows — often a much shorter and more revealing list.

## `includeSeedCreator` (type: `boolean`):

Adds one row per creator whose list you collected — their own follower count, bio and verification. <b>Off by default</b>: the follower and following rows are what most runs are for. Billed as an add-on when switched on.

## `maxAccountsPerCreator` (type: `integer`):

Caps how many accounts are returned for each creator and each list. Cost scales linearly with this number.

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

Keep only accounts with at least this many followers — useful for finding the notable names in a large audience.

## `verifiedOnly` (type: `boolean`):

Keep only accounts carrying a verified badge.

## `maxScanned` (type: `integer`):

Only applies when a verified-only or minimum-follower filter is set. Caps how many accounts those filters may reject before the Actor stops and returns what it found, so a selective filter cannot walk an entire follower list. Accounts it keeps do not count towards this, and the effective limit is never more than eight times the accounts-per-creator limit.

## Actor input object example

```json
{
  "usernames": [
    "khaby.lame"
  ],
  "includeFollowers": true,
  "includeFollowing": false,
  "includeSeedCreator": false,
  "maxAccountsPerCreator": 200,
  "verifiedOnly": false,
  "maxScanned": 1600
}
```

# Actor output Schema

## `accounts` (type: `string`):

One row for every account in a creator's audience, plus a row per creator when the creator add-on is switched on.

# 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 = {
    "usernames": [
        "khaby.lame"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("gatherworks/tiktok-followers-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 = { "usernames": ["khaby.lame"] }

# Run the Actor and wait for it to finish
run = client.actor("gatherworks/tiktok-followers-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 '{
  "usernames": [
    "khaby.lame"
  ]
}' |
apify call gatherworks/tiktok-followers-scraper --silent --output-dataset

```

## MCP server setup

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