# TikTok Profile Scraper — Creator Lookup (`inovaflow/tiktok-profile-scraper`) Actor

TikTok usernames or profile URLs in, creator cards out: followers, following, total likes, videos, average likes per video, recent average views, posting frequency, bio, bio link, e-mails and phones from the bio, verified, business category, account age. No login.

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

## Pricing

from $1.00 / 1,000 profiles

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

**Paste TikTok usernames, get a creator card for each: audience, likes, average likes per video, what their recent videos actually get in views, how often they post, and the contact details in their bio.**

If you look for creators to work with, you know the routine. Someone sends a list of 80 handles. You open each profile, squint at "2.1M followers", scroll to guess how many views the latest videos get, check whether the account is still active, and copy the e-mail from the bio — if there is one. Follower counts alone lie: a creator with 2 million followers whose last ten videos average 9,000 views is a very different deal from one with 200,000 followers averaging 150,000.

We built this for our own creator research first, and now we're sharing it. Paste handles or profile links, and each one comes back as one row: the public counters, **average likes per video**, the **average and median views of the latest ~10 videos**, **posts per week** and the date of the last post — plus the e-mails, phone numbers and links written in the bio.

### Who it's for

- Influencer marketing and UGC agencies vetting creators — *"which of these 80 creators still get real views?"*
- Brands building a creator shortlist — *"who in this list has a business e-mail in the bio?"*
- Talent managers and creators benchmarking — *"how does my average stack up against these five accounts?"*
- Sales and partnership teams — *"which TikTok Shop sellers and business accounts are in this list, and what category are they?"*
- AI agents and pipelines that need creator facts as flat JSON — one call, no login.

### What you get per profile

- Audience: followers, following, total likes, videos, friends, **average likes per video** (total likes ÷ videos), likes per follower.
- Recent performance (on by default): average and median views of the latest ~10 videos, last post date, days since the last post, posts per week, and those videos with their view counts.
- Bio: the bio text, the bio link, and the **e-mails, phone numbers and links found in the bio** (also "name \[at] brand \[dot] com" spellings).
- Account: display name, verified badge, private account, business account and its category (e.g. "Shopping & Retail"), TikTok Shop seller, organization, language, account creation date, avatar, user ID and secUid.

Two table views are built in: **Creators** (audience and performance) and **Bio & contacts**.

### Options

- Profiles — usernames (`khaby.lame`, `@khaby.lame`), profile links or share links, one per line. Duplicates are merged. Up to 5,000 per run.
- Add recent-video stats — on by default. Turn it off for the fastest run with the profile counters only; the price is the same either way.
- Parallel requests, residential fallback and proxy — advanced; the defaults are fine.

Accounts that don't exist (or were banned) and inputs that aren't TikTok profiles get a row with a `status` and an `error` and are never charged. Private accounts are delivered — their counters are public — with `privateAccount: true` and no recent videos.

### How to set it up

1. Paste the creators into **Profiles**.
2. Click **Start**. Around 100 profiles take about a minute.
3. Open the **Creators** or **Bio & contacts** view, or export to CSV / Excel, or pull the rows into your CRM or sheet through the API.

And that's it.

### Pricing

**$0.001 per profile delivered** — $1 per 1,000 creators, recent-video stats included — plus Apify's small start fee per run. Missing accounts, invalid inputs and duplicates are free.

> Tip: to re-check a shortlist every week, save the input as a task and schedule it — 100 creators a week costs under 50 cents a month.

### Notes

- Everything comes from the public TikTok profile page and the public profile embed. No login, nothing followed or liked.
- TikTok does not publish an account's country on the profile. The `language` field is the account's app language.
- Contact details are only what the creator chose to publish in the bio. Handle them in line with GDPR / CAN-SPAM and TikTok's terms.

Found a bug or need another field? Open an issue on the **Issues** tab. Need creator discovery by keyword or a custom report? Ask there too.

# Actor input Schema

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

TikTok usernames or profile URLs, one per line — `washingtonpost`, `@duolingo`, `https://www.tiktok.com/@nasa`. Up to 5,000 per run.

## `includeRecentVideos` (type: `boolean`):

Reads the creator's latest ~10 videos: average and median views, date of the last post, posts per week and the list of those videos with their view counts. Adds a second, small page read per profile; the price stays the same.

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

How many profiles are read at the same time.

## `residentialFallback` (type: `boolean`):

Profiles are read through fast datacenter proxies. If TikTok refuses one several times, it is retried through a residential proxy. Turn off to never use residential traffic.

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

Apify datacenter proxy by default — TikTok's public profile pages load fine there.

## Actor input object example

```json
{
  "profiles": [
    "washingtonpost",
    "@duolingo",
    "https://www.tiktok.com/@nasa"
  ],
  "includeRecentVideos": true,
  "maxConcurrency": 5,
  "residentialFallback": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `creators` (type: `string`):

One row per profile: followers, likes, videos, average likes per video, recent average views, posting frequency and account facts.

## `contacts` (type: `string`):

E-mails, phones and links from each bio, the bio link and the account type.

## `summary` (type: `string`):

Profiles delivered and charged, how many have an e-mail or bio link, what could not be found, the top creators by followers.

# 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": [
        "washingtonpost",
        "https://www.tiktok.com/@duolingo"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("inovaflow/tiktok-profile-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": [
        "washingtonpost",
        "https://www.tiktok.com/@duolingo",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("inovaflow/tiktok-profile-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": [
    "washingtonpost",
    "https://www.tiktok.com/@duolingo"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call inovaflow/tiktok-profile-scraper --silent --output-dataset

```

## MCP server setup

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