# TikTok Followers Scraper (`automation-lab/tiktok-followers-scraper`) Actor

Extract TikTok followers and following lists from any public profile. Returns username, display name, follower count, and profile URL for each account.

- **URL**: https://apify.com/automation-lab/tiktok-followers-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media
- **Stats:** 292 total users, 18 monthly users, 99.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 follower/following scrapeds

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 for Public Profile Audience Lists

Extract complete follower and following lists from any public TikTok profile. Get usernames, bios, follower counts, video counts, verified status, and profile metadata — no login required.

Pay-per-event pricing: **$0.005 run start + $0.01 per follower/following profile** at FREE tier, dropping to **$0.002 start + $0.004 per profile** at DIAMOND tier.

***

### Best first run: one public profile, small follower limit

Start with one public TikTok profile and a small max follower/following limit. This confirms the profile is accessible, shows the exact follower fields you receive, and lets you estimate cost before scaling to larger audience exports.

**Pricing clarity:** pricing is per profile/start and per follower event on tiered PPE; the README examples show what you pay for a small test versus a large audience pull.

### 🎯 What does it do?

TikTok Followers Scraper retrieves the full list of followers or following profiles from any public TikTok account. For each profile in the list, it returns:

- ✅ Username (@handle) and display name
- ✅ Follower count
- ✅ Profile URL
- ✅ Source profile and list type metadata

Just enter a TikTok username or profile URL and set the maximum number of profiles to return. The actor handles session management, residential proxy rotation, and TikTok's anti-bot protections automatically.

***

### 👥 Who is it for?

**Social media managers** tracking brand account followers for audience segmentation, outreach lists, and competitor analysis.

**Influencer marketers** building lists of followers of niche creators to identify potential micro-influencers or target audiences.

**Market researchers** analyzing the overlap between follower bases of competing brands or public figures.

**Lead generation specialists** using public TikTok follower data to build prospect lists by scraping followers of industry thought leaders.

**Data journalists and analysts** studying public social dynamics, follower growth patterns, and influencer networks.

***

### 💡 Why use this scraper?

- 🚀 **No login required** — works entirely with public TikTok data
- 💰 **Transparent pricing** — $0.005 run start + $0.01 per follower/following profile at FREE tier, lower at higher tiers
- 📦 **Both followers AND following** — choose which list to scrape with one setting
- 🔄 **Handles large accounts** — paginated API calls collect hundreds of followers per run
- 🌐 **Residential proxy built-in** — residential proxy rotation handles TikTok's detection
- 📊 **Clean structured data** — flat JSON output, ready for spreadsheets or databases

***

### 📊 Data you can extract

| Field | Type | Example |
|-------|------|---------|
| `uniqueId` | string | `"charlidamelio"` |
| `nickname` | string | `"charli d'amelio"` |
| `followerCount` | number | `156700000` |
| `profileUrl` | string | `"https://www.tiktok.com/@charlidamelio"` |
| `scrapedFromProfile` | string | `"charlidamelio"` |
| `listType` | string | `"followers"` |
| `scrapedAt` | string | `"2026-04-04T09:08:35.625Z"` |

***

### 💵 How much does it cost to scrape TikTok followers?

Pricing is pay-per-event (PPE) — you only pay for what you extract.

| Event | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|-------|------|--------|--------|------|----------|---------|
| **Run start** | $0.005 | $0.0045 | $0.004 | $0.003 | $0.0025 | $0.002 |
| **Per follower/following** | $0.01 | $0.008 | $0.007 | $0.006 | $0.005 | $0.004 |

**Example costs (FREE tier):**

- Scrape 100 followers: $0.005 + 100 × $0.01 = **$1.005**
- Scrape 500 followers: $0.005 + 500 × $0.01 = **$5.005**
- Scrape 1,000 followers: $0.005 + 1,000 × $0.01 = **$10.005**

👉 **Free plan estimate:** New Apify accounts include $5 in free credits — enough for ~499 follower profiles.

***

### 🚀 How to scrape TikTok followers

1. Go to [TikTok Followers Scraper](https://apify.com/automation-lab/tiktok-followers-scraper) on Apify
2. Enter one or more TikTok usernames or profile URLs in the **Profiles to Scrape** field
3. Choose **Followers** or **Following** from the List Type dropdown
4. Set the **Max followers per profile** limit (e.g. 100 for a quick run)
5. Click **Start** and wait for the run to complete
6. Download results as JSON, CSV, or Excel

**Supported input formats:**

- `@charlidamelio` — with @ prefix
- `charlidamelio` — without @ prefix
- `https://www.tiktok.com/@charlidamelio` — full profile URL

***

### 📥 Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `profiles` | string\[] | ✅ yes | — | TikTok usernames or profile URLs |
| `listType` | string | no | `"followers"` | `"followers"` or `"following"` |
| `maxFollowersPerProfile` | integer | no | `100` | Max profiles to return per account |
| `proxy` | object | no | Residential | Proxy configuration |

***

### 📤 Output format

Each item in the dataset represents one follower or following profile:

```json
{
  "uniqueId": "imrankhan.pti",
  "nickname": "Imran Khan Official",
  "followerCount": 12500000,
  "profileUrl": "https://www.tiktok.com/@imrankhan.pti",
  "scrapedFromProfile": "charlidamelio",
  "listType": "followers",
  "scrapedAt": "2026-04-04T09:00:00.000Z",
  "id": "",
  "signature": "",
  "verified": false,
  "privateAccount": false,
  "avatarUrl": "",
  "followingCount": 0,
  "heartCount": 0,
  "videoCount": 0
}
```

***

### 💡 Tips and best practices

- 🎯 **Start small** — test with `maxFollowersPerProfile: 10` before running large batches to verify the account is public and accessible
- 🔒 **Private accounts** — TikTok's follower API only works for public profiles. Private accounts will return 0 results
- ⚡ **Large accounts** — for accounts with millions of followers, set a reasonable limit (e.g. 500–1,000). Collecting 10,000+ followers in one run is possible but takes time
- 🔄 **Following vs followers** — following lists tend to be smaller and faster to collect; use them first for testing
- 📅 **Incremental scraping** — run the actor regularly with a small limit to track follower growth over time

***

### 🔗 Integrations

**Audience analysis pipeline:**
TikTok Followers Scraper → Apify Dataset Export (CSV) → Google Sheets → pivot analysis by verified status, follower count range

**Influencer outreach automation:**
TikTok Followers Scraper → filter by `followerCount > 10000 && verified == false` → export emails via LinkedIn enrichment → outreach CRM

**Competitor audience overlap:**
Run TikTok Followers Scraper on 3 competing brand accounts → deduplicate by `uniqueId` → find overlapping followers for lookalike targeting

**CRM enrichment:**
Run TikTok Followers Scraper → filter by `followerCount > 50000` → cross-reference with your customer list to find high-value users

***

### 🖥️ API usage

#### Node.js

```javascript
const { ApifyClient } = require('apify-client');

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('automation-lab/tiktok-followers-scraper').call({
  profiles: ['@charlidamelio'],
  listType: 'followers',
  maxFollowersPerProfile: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("automation-lab/tiktok-followers-scraper").call(run_input={
    "profiles": ["@charlidamelio"],
    "listType": "followers",
    "maxFollowersPerProfile": 100,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["uniqueId"], item["followerCount"])
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~tiktok-followers-scraper/runs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profiles": ["@charlidamelio"],
    "listType": "followers",
    "maxFollowersPerProfile": 100
  }'
```

***

### 🤖 Use with Claude AI (MCP)

You can control TikTok Followers Scraper directly from Claude Code, Claude Desktop, or any MCP-compatible AI assistant.

#### Claude Desktop setup

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": [
        "-y",
        "@apify/mcp-server",
        "--token",
        "YOUR_APIFY_TOKEN"
      ]
    }
  }
}
```

Or use the actor-specific MCP URL:
`https://mcp.apify.com?tools=automation-lab/tiktok-followers-scraper`

#### Claude Code / Cursor / VS Code

```bash
## Add to .cursor/mcp.json or VS Code settings
{
  "mcpServers": {
    "tiktok-followers": {
      "url": "https://mcp.apify.com/?tools=automation-lab/tiktok-followers-scraper",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

#### Example prompts for Claude

> "Scrape the first 200 followers of @charlidamelio and show me the ones with over 100,000 followers."

> "Get the list of accounts that @cristiano is following on TikTok."

> "Find all verified accounts following @khaby.lame."

***

### ⚖️ Legality: is scraping TikTok followers legal?

TikTok follower and following lists are **publicly visible** — any user can view them in a browser without logging in. This scraper only accesses data that TikTok makes publicly available.

Scraping public data is generally permitted under:

- US law (see *hiQ Labs v. LinkedIn*, confirming that scraping publicly accessible data does not violate the CFAA)
- EU law (publicly accessible data processing is lawful under GDPR Article 6)

**Best practices:**

- ✅ Only scrape public profiles
- ✅ Use the data for legitimate business, research, or journalism purposes
- ✅ Do not combine with other personal data to re-identify individuals
- ❌ Do not use for harassment, unsolicited bulk messaging, or spam

Always review TikTok's [Terms of Service](https://www.tiktok.com/legal/page/row/terms-of-service/en) and consult legal counsel for your specific use case.

***

### ❓ FAQ

**Q: Why did my run return 0 results?**
A: The most common cause is a **private account** — TikTok's API does not expose follower lists for private profiles. Check that the target account is public (no lock icon on their profile). Also verify the username is spelled correctly. If the account is public and the username is correct, try re-running — occasional proxy issues can cause failures that resolve on retry.

**Q: Can I scrape followers of private accounts?**
A: No. TikTok's follower API is only available for public profiles. If a user has set their account to private, their follower/following list is hidden from all external access.

**Q: How many followers can I scrape in one run?**
A: The actor supports up to 10,000 followers per profile per run via `maxFollowersPerProfile`. For accounts with millions of followers, you can run the actor multiple times, though the API will return a different random sample each time (TikTok does not guarantee ordering or completeness).

**Q: Does this scraper require a TikTok login?**
A: No. The actor uses residential proxies and browser session simulation to access TikTok's public API without any account credentials.

**Q: Can I scrape following lists too?**
A: Yes — set `listType` to `"following"` to get the list of accounts a profile follows. Following lists are often much smaller and faster to collect than follower lists.

**Q: What does it mean when the title shows "TikTok" with 477 bytes?**
A: This is TikTok's bot detection triggering a minimal page response. The actor handles this automatically by rotating proxy sessions and retrying. You'll see retry warnings in the logs — this is expected behavior and the actor will succeed after 1-2 retries.

***

### 🔗 Related scrapers

> All by [automation-lab](https://apify.com/automation-lab) — browse our full TikTok collection:

- 🎬 [TikTok Video Scraper](https://apify.com/automation-lab/tiktok-video-scraper) — scrape metadata from TikTok video URLs
- 🔍 [TikTok Search Scraper](https://apify.com/automation-lab/tiktok-search-scraper) — search TikTok videos and users by keyword
- 🎵 [TikTok Sound Scraper](https://apify.com/automation-lab/tiktok-sound-scraper) — scrape all videos using a specific TikTok sound

# Actor input Schema

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

TikTok usernames or profile URLs to scrape. Accepts @username, username (without @), or full profile URL (tiktok.com/@username).

## `listType` (type: `string`):

Choose whether to scrape followers (people who follow the profile) or following (people the profile follows).

## `maxFollowersPerProfile` (type: `integer`):

Maximum number of follower or following profiles to extract per account. Set to 0 for unlimited (may take a long time for large accounts).

## `proxy` (type: `object`):

Residential proxy is recommended for TikTok. The scraper uses Apify residential proxies by default.

## Actor input object example

```json
{
  "profiles": [
    "@tiktok"
  ],
  "listType": "followers",
  "maxFollowersPerProfile": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "profiles": [
        "@tiktok"
    ],
    "listType": "followers",
    "maxFollowersPerProfile": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/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 = {
    "profiles": ["@tiktok"],
    "listType": "followers",
    "maxFollowersPerProfile": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/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 '{
  "profiles": [
    "@tiktok"
  ],
  "listType": "followers",
  "maxFollowersPerProfile": 10
}' |
apify call automation-lab/tiktok-followers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/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/ZaTSCgOk5iFGk7eCG/builds/wKbuSRIOdutyBpeG9/openapi.json
