# TikTok Profile Scraper (`scrapesmith/my-actor-1`) Actor

🔥$0.25/1000🔥 .Scrape TikTok profile data — exact follower counts, likes, bio, verification status, TikTok Shop seller flag, commerce category, account age, live status, and 42 fields per profile. Accepts usernames or profile URLs. Bulk input, auto-dedup, resumable. No login needed.

- **URL**: https://apify.com/scrapesmith/my-actor-1.md
- **Developed by:** [Scrape Smith](https://apify.com/scrapesmith) (community)
- **Categories:** Social media, Developer tools, Automation
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Profile Scraper - Fast Data Extraction Tool 2025

🚀 **The fastest TikTok profile scraping solution: Extract 1,000 profiles in under 3 minutes for just $0.25**

Looking for a **TikTok profile data extractor** that gives you exact follower counts, not rounded numbers? Need to build an **influencer database**, find **TikTok Shop sellers**, or track **follower growth** over time? This is the most complete TikTok user scraper on Apify — **42 data fields per profile**, bulk input, and results in minutes.

---

### ⚡ Key Features & Benefits

#### 📱 Bulk TikTok Profile Extraction

* ⏱️ Extract **complete profile data for any TikTok user**
* 👤 Accepts usernames, @handles, or full profile URLs
* 📊 **42 data fields per profile** — the most complete TikTok scraper on Apify
* 🎬 Handles thousands of profiles in a single run
* 🔄 Resumable — never lose progress, never pay twice

#### 📦 Complete TikTok Profile Data

* 📝 Username, nickname, bio text, external links
* 👀 **Exact follower count** (not rounded), following, total likes
* 🎬 Video count, friend count, digg count
* ✅ Verified badge, private account, secret account
* 🛒 **TikTok Shop seller status**, commerce category
* 📅 Account creation date
* 🔴 **Live streaming detection** — know who's live right now
* 🖼️ Avatar URLs (large, medium, thumb)
* ⚙️ Comment, duet, stitch, download permission settings

---

### 💵 TikTok Profile Scraper Pricing 2025

The cheapest TikTok profile scraper available — no hidden fees, no proxy costs.

| 👤 Profiles | 💰 Cost | ⏱️ Processing Time |
| ----------- | ------- | ------------------ |
| 100 profiles | $0.03 | < 1 minute |
| 500 profiles | $0.13 | < 2 minutes |
| 1,000 profiles | $0.25 | < 3 minutes |
| 5,000 profiles | $1.25 | < 15 minutes |
| 10,000 profiles | $2.50 | < 30 minutes |
| 50,000 profiles | $12.50 | < 2 hours |

---

### 🎯 Use Cases for TikTok Profile Scraping

#### 📊 Influencer Marketing & Outreach
Build comprehensive **influencer databases** with exact follower counts, engagement metrics, and bio links. Filter by verification status, commerce category, or follower range to find the perfect creators for your campaigns.

#### 🛒 TikTok Shop & E-Commerce Research
Identify **TikTok Shop sellers** across any category. The `ttSeller` and `commerceCategory` fields let you discover which creators are actively selling products on TikTok.

#### 📈 Competitor Analysis & Brand Monitoring
Track **competitor follower growth**, engagement trends, and content strategy changes over time. Schedule recurring runs to build historical datasets.

#### 🔴 Live Stream Monitoring
Detect which creators are **currently live streaming** with the `isLive` and `roomId` fields. Perfect for real-time monitoring dashboards.

#### 🎥 Content Research & Trend Analysis
Analyze creator profiles at scale to spot emerging trends, identify top-performing niches, and understand audience demographics across TikTok.

#### ✅ Account Verification & Due Diligence
Verify account authenticity, check verification status, detect private or secret accounts, and confirm account creation dates for brand safety and compliance.

---

### 🚀 How to Use TikTok Profile Scraper

1. **Input Profiles**: Add usernames, @handles, or full TikTok profile URLs — mix and match
2. **Run**: Start the scraper and get results in minutes
3. **Export**: Download data in JSON, CSV, Excel, or integrate via API

---

### 📋 TikTok Profile Data — Output Fields

Each profile includes **42 fields**:

* **Identity**: User ID, unique ID, nickname, secUid, short ID
* **Profile**: Bio text, external bio link, avatar URLs (3 sizes), language
* **Verification**: Verified badge, private account, secret account, organization flag
* **Commerce**: TikTok Shop seller status, commerce user flag, commerce category
* **Stats**: Exact follower count, following count, total likes, video count, digg count, friend count
* **Account**: Creation date (ISO), nickname modify time, uniqueId modify time
* **Live**: Live streaming status, room ID
* **Settings**: Comment, duet, stitch, download permissions, following visibility, playlist tab
* **Meta**: Profile URL, status code, success flag

---

### 🔒 Reliability & Performance

* 🔄 **Resumable runs** — interrupted runs pick up where they left off automatically
* 📊 **Exact numbers** — you get `128316557`, not `128.3M`
* 🛡️ **Smart retry** — failed requests automatically retried
* 📈 **Real-time progress** — live logging with speed and success rate
* 🌍 **24/7 availability** — runs on Apify cloud infrastructure
* 💨 **Concurrent processing** — multiple profiles fetched simultaneously
* 🧹 **Auto-deduplication** — duplicate inputs cleaned automatically
* 💾 **State persistence** — progress saved during long runs, never lose data

---

### 🔗 Integrations & Export

Export your TikTok profile data anywhere:

* 📄 **JSON** — structured data for developers and APIs
* 📊 **CSV** — import directly into Google Sheets, Excel, or databases
* 📑 **Excel** — ready-to-use spreadsheets with all 42 fields
* 🔌 **Apify API** — integrate into your workflows, dashboards, or apps
* 🔄 **Webhooks** — get notified when scraping completes
* 📅 **Scheduler** — automate recurring runs daily, weekly, or custom intervals

---

### ✅ Compliance & Ethics

* 📜 Public data only — no login or authentication required
* 📊 Rate limit compliance with adaptive throttling
* 🌐 Respects platform guidelines
* 🔒 No personal data beyond public profiles
* 🎯 Research, analytics, and business intelligence use cases

---

### 💡 Tips for Best Results

* Follower counts are exact integers — perfect for analytics and sorting
* Export to CSV for spreadsheet analysis or JSON for programmatic use
* Schedule recurring runs to track follower growth over time
* Mix usernames and URLs in the same run — the scraper handles both
* If a run is interrupted, just restart with the same input — already-scraped profiles are skipped

---

### ❓ Frequently Asked Questions

#### How accurate are the TikTok follower counts?
Completely exact. You get `128316557`, not `128.3M`. The scraper returns raw numbers directly from TikTok — no rounding, no estimation. Perfect for analytics, sorting, and growth tracking.

#### Do I need a TikTok account or login?
No. The scraper works without any login or authentication. It only extracts publicly available profile data.

#### What input formats does the TikTok scraper accept?
You can use plain usernames (`mrbeast`), handles with @ (`@mrbeast`), or full profile URLs (`https://www.tiktok.com/@mrbeast`). Mix and match in the same run — duplicates are removed automatically.

#### What happens if a TikTok username doesn't exist?
The scraper returns the profile with `ok: false` and `code: ERR_USER_NOT_FOUND`. It doesn't stop the run — other profiles continue processing normally.

#### Can I scrape private TikTok accounts?
The scraper returns basic profile info (username, follower count, bio) for private accounts, but content-level data depends on what TikTok exposes publicly.

#### Are TikTok scraping runs resumable?
Yes. If a run is interrupted or times out, restart with the same input. Already-scraped profiles are skipped automatically — you won't get duplicates or pay twice.

#### Can I detect if a TikTok user is live streaming?
Yes. The `isLive` and `roomId` fields tell you if a user is currently broadcasting a live stream. Great for real-time monitoring.

#### How do I find TikTok Shop sellers?
Filter the results by `ttSeller: true` or `commerceUser: true`. The `commerceCategory` field tells you what category they sell in.

#### What export formats are available for TikTok data?
JSON, CSV, Excel, HTML, XML, and RSS. You can also access results programmatically via the Apify API or set up webhooks for automated workflows.

#### Can I schedule recurring TikTok profile scraping?
Yes. Use Apify's built-in scheduler to run the scraper daily, weekly, or at any custom interval — great for tracking follower growth and engagement trends over time.

#### Is this a TikTok API alternative?
Yes. This scraper provides the same profile data you'd get from the TikTok API, but without needing API access, developer accounts, or rate limit approvals. Just input usernames and get data.

#### How does this compare to other TikTok scrapers?
This is the most complete TikTok profile scraper on Apify — 42 fields per profile, exact follower counts, TikTok Shop detection, live streaming status, and account creation dates. Most competitors only return 10-15 fields.

---

### 🏷️ Related Tools & Alternatives

Looking for more TikTok data? Check out these related tools:

* **TikTok Video Scraper** — extract video data, views, likes, and comments
* **TikTok Hashtag Scraper** — discover trending hashtags and related content
* **TikTok Shop Products Scraper** — extract product pricing, variants, and seller info
* **TikTok Comment Scraper** — collect comments from any TikTok video
* **Instagram Profile Scraper** — similar profile extraction for Instagram
* **YouTube Channel Scraper** — extract channel stats and video data

---

✨ **Start extracting TikTok profile data today: $0.25 per 1,000 profiles, no login needed, results in minutes!**

🔑 *Keywords: TikTok profile scraper, TikTok user data extractor, TikTok follower count scraper 2025, TikTok analytics tool, TikTok influencer database, TikTok API alternative, scrape TikTok profiles, TikTok data extraction, TikTok Shop seller finder, TikTok live stream detector, bulk TikTok scraper, TikTok competitor analysis tool*

# Actor input Schema

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

TikTok usernames or profile URLs. You can mix and match formats: plain handles (mrbeast), with @ (@mrbeast), or full profile URLs (https://www.tiktok.com/@mrbeast). Duplicates are removed automatically.

## Actor input object example

```json
{
  "usernames": [
    "mrbeast",
    "https://www.tiktok.com/@tiktok",
    "@charlidamelio"
  ]
}
````

# 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": [
        "mrbeast",
        "https://www.tiktok.com/@charlidamelio",
        "@khaby.lame"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesmith/my-actor-1").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": [
        "mrbeast",
        "https://www.tiktok.com/@charlidamelio",
        "@khaby.lame",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesmith/my-actor-1").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "mrbeast",
    "https://www.tiktok.com/@charlidamelio",
    "@khaby.lame"
  ]
}' |
apify call scrapesmith/my-actor-1 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesmith/my-actor-1",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TikTok Profile Scraper",
        "description": "🔥$0.25/1000🔥 .Scrape TikTok profile data — exact follower counts, likes, bio, verification status, TikTok Shop seller flag, commerce category, account age, live status, and 42 fields per profile. Accepts usernames or profile URLs. Bulk input, auto-dedup, resumable. No login needed.",
        "version": "0.0",
        "x-build-id": "bMOCeO7v5hrV55A78"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapesmith~my-actor-1/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapesmith-my-actor-1",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapesmith~my-actor-1/runs": {
            "post": {
                "operationId": "runs-sync-scrapesmith-my-actor-1",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapesmith~my-actor-1/run-sync": {
            "post": {
                "operationId": "run-sync-scrapesmith-my-actor-1",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "usernames"
                ],
                "properties": {
                    "usernames": {
                        "title": "Usernames or Profile URLs",
                        "type": "array",
                        "description": "TikTok usernames or profile URLs. You can mix and match formats: plain handles (mrbeast), with @ (@mrbeast), or full profile URLs (https://www.tiktok.com/@mrbeast). Duplicates are removed automatically.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
