# TikTok Influencer Search & Discovery (`tokfluence/tiktok-influencer-search`) Actor

Find TikTok creators by keyword, followers, engagement rate, region, hashtags and more. Returns enriched, campaign-ready creator profiles. More than 35 datapoints from 15+ Million creators.

- **URL**: https://apify.com/tokfluence/tiktok-influencer-search.md
- **Developed by:** [Tokfluence Tiktok API](https://apify.com/tokfluence) (community)
- **Categories:** Social media, Lead generation, Developer tools
- **Stats:** 9 total users, 6 monthly users, 93.8% runs succeeded, 0 bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

$10.00 / 1,000 creator 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?

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 Influencer Search & Discovery

Find the right TikTok creators in seconds. Search a database of millions by keyword, follower count, engagement rate, region, hashtags, and brand mentions, and get back enriched, campaign-ready creator profiles, not a raw dump of videos.

Most TikTok scrapers make you bring your own list of profile URLs. This one **finds** the creators for you, ranked and filtered to your exact brief, and returns each creator's recent posts, performance, and public contact email inline, so a search goes straight into an outreach list.

### What you get per creator

**Identity**

- `username`, `id`, `region`, `gender`, `verified`, `brand` (is it a brand/business account), `picture`, `bio`

**Reach and performance**

- `follower_count`, `total_likes`, `video_count`
- `engagement_rate` (as a percentage, e.g. `6.56`), `average_views_per_video`, `posts_per_week`

**Recent posts** (`recent_posts`, up to 12 most recent)

- Per post: `url`, `caption`, `published_at`, `cover_url`, `duration`, `views`, `likes`, `comments`, `shares`, `saves`, `hashtags`, `mentions`, `music`

**Content signals**

- `hashtags` the creator uses, `mentions` (brands and accounts they reference)

**Contact details**

- `contact_email` (primary public email) and `contact_emails` (every address we have for the creator), plus the `has_email` flag
- Set `hasEmail: true` in the input to only return creators you can actually email

**Cross-platform and audience** (when available)

- `instagram` and `youtube` stats (followers, engagement, post counts)
- `audience_regions` (top audience countries by share)

**Freshness**

- `last_analyzed_at` timestamp, so you know how current each profile is. Sort by it to pull the freshest data first.

### Example input

```json
{
  "query": "fitness",
  "minFollowers": 50000,
  "maxFollowers": 500000,
  "minEngagementRate": 5,
  "regions": ["US", "GB"],
  "accountType": "creators",
  "hasEmail": true,
  "sort": "engagement_rate_desc",
  "maxResults": 200
}
```

`minEngagementRate` is a percentage (`5` means 5%). `accountType` is `creators`, `brands`, or left blank for both. Sort options include followers, engagement, average views, posting frequency, and recently analyzed.

### Example output

One item per creator. This is a real record, with the `hashtags`, `mentions`, and `recent_posts` arrays shortened (`recent_posts` returns up to 12) and the contact email replaced with a placeholder:

```json
{
  "id": "tkc_c958df1205e362ed",
  "username": "khaby.lame",
  "bio": "Se vuoi ridere sei nel posto giusto If u wanna laugh u r in the right place Khabane lame TikTok:160 Mln+ creator@example.com @handsdowncoffee @unicef @binance #notoracism HOKAGE Khabane Lame LA NOSTRA MISSIONE è DIVERTIRVI!!",
  "picture": "https://tokfluence-public-images-v2.s3.amazonaws.com/127905465618821121.jpeg",
  "region": "CA",
  "verified": true,
  "brand": false,
  "gender": "no_face",
  "has_email": true,
  "contact_email": "creator@example.com",
  "contact_emails": ["creator@example.com"],
  "follower_count": 162300000,
  "average_views_per_video": 46600000,
  "engagement_rate": 6.56,
  "posts_per_week": 0.83,
  "video_count": 1340,
  "total_likes": 2600000000,
  "audience_regions": [
    { "id": "IT", "percentage": 93.73 }
  ],
  "last_analyzed_at": "2026-07-12T10:50:16.565Z",
  "hashtags": ["foryoupage", "foryou", "comic", "comedy", "ironia", "learnfromkhaby", "nopressure", "duetto"],
  "mentions": ["official_zakinho", "ameprecious", "6ix9ine", "youngdudu0", "nikkojenkinss", "holafly"],
  "youtube": {
    "subscribers": 2320,
    "channel_url": "https://youtube.com/@comixtv8582",
    "country": "IT",
    "verified": false,
    "video_count": 10,
    "views": 16832
  },
  "instagram": {
    "followers": 77636902,
    "engagement_rate": 1.68,
    "media_count": 630,
    "posts_per_week": 0.93,
    "verified": true
  },
  "recent_posts": [
    {
      "post_id": "7640880319159094559",
      "url": "https://www.tiktok.com/@khaby.lame/video/7640880319159094559",
      "caption": "Must be the wind 👀🤨 #comedy #learnfromkhaby",
      "published_at": "2026-05-17T15:18:26.000Z",
      "cover_url": "https://tokfluence-public-images-v2.s3.amazonaws.com/posts/7640880319159094559.jpeg",
      "duration": 17,
      "views": 90100000,
      "likes": 5100000,
      "comments": 34700,
      "shares": 148400,
      "saves": 199400,
      "hashtags": ["comedy", "learnfromkhaby"],
      "mentions": [],
      "music": { "title": "original sound", "author": "Khabane lame" }
    },
    {
      "post_id": "7639785901354126622",
      "url": "https://www.tiktok.com/@khaby.lame/video/7639785901354126622",
      "caption": "Maybe the fan was too close… or maybe I'm just dreaming 🤷🏿‍♂️🤨 #learnfromkhaby #comedy",
      "published_at": "2026-05-14T16:31:18.000Z",
      "cover_url": "https://tokfluence-public-images-v2.s3.amazonaws.com/posts/7639785901354126622.jpeg",
      "duration": 25,
      "views": 56700000,
      "likes": 4100000,
      "comments": 40300,
      "shares": 244400,
      "saves": 201700,
      "hashtags": ["learnfromkhaby", "comedy"],
      "mentions": [],
      "music": { "title": "original sound", "author": "Khabane lame" }
    }
  ]
}
```

### Use cases

- Influencer marketing shortlists for a campaign brief, with recent posts to vet fit at a glance
- Lead lists of creators in a niche and region
- Competitor and brand-mention research (who talks about which brands)
- Market sizing for a creator category

### Pricing

Pay per result: **$2.00 per 1,000 creators**. You only pay for creators actually returned to your dataset. New Apify accounts get free monthly platform credits to trial it.

### Notes

Data is sourced from public TikTok profiles, including the contact emails creators publish for business enquiries. Roughly 30% of profiles have one, so set `hasEmail: true` if every result needs to be contactable. Phone numbers are not returned; the underlying data is too sparse to be useful. Cross-platform and audience fields are included when we have them for a creator; they are not present on every profile.

You are the data controller for anything you export. Use the contact emails for legitimate business outreach only, honour opt-out requests, and follow GDPR, CAN-SPAM and any local rules that apply to you. More on the underlying data at [Tokfluence](https://tokfluence.com).

# Actor input Schema

## `query` (type: `string`):

Free-text search across bio, niche, hashtags and mentions. Leave blank to browse by filters alone.

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

Only creators with at least this many followers.

## `maxFollowers` (type: `integer`):

Only creators with at most this many followers.

## `minEngagementRate` (type: `number`):

Minimum engagement rate, as a percentage (e.g. 5 for 5%, 2.5 for 2.5%).

## `regions` (type: `array`):

ISO country codes, e.g. US, GB, DE.

## `gender` (type: `string`):

Filter creators by detected presentation. Most profiles are 'No face shown'. Leave blank for all.

## `isTiktokVerified` (type: `boolean`):

Only return TikTok-verified accounts.

## `accountType` (type: `string`):

Restrict to individual creators or to brand/business accounts. Leave blank for both.

## `hasEmail` (type: `boolean`):

Only return creators with a public contact email, so every result comes with an address to reach out to.

## `hashtags` (type: `array`):

Creators who use these hashtags (no # needed).

## `mentions` (type: `array`):

Creators who mention these brands/accounts.

## `sort` (type: `string`):

Order the results by followers, engagement, average views or posting frequency.

## `maxResults` (type: `integer`):

Stops once this many creators are collected. Hard cap 10,000.

## Actor input object example

```json
{
  "query": "fitness",
  "isTiktokVerified": false,
  "hasEmail": false,
  "sort": "follower_count_desc",
  "maxResults": 100
}
```

# Actor output Schema

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

Matched, enriched TikTok creator profiles written to the run's dataset, one item per creator.

# 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 = {
    "query": "fitness"
};

// Run the Actor and wait for it to finish
const run = await client.actor("tokfluence/tiktok-influencer-search").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 = { "query": "fitness" }

# Run the Actor and wait for it to finish
run = client.actor("tokfluence/tiktok-influencer-search").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 '{
  "query": "fitness"
}' |
apify call tokfluence/tiktok-influencer-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tokfluence/tiktok-influencer-search"
        }
    }
}

```

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/YbTDr0vcpSZgPijZt/builds/pf14bkczgCPZLHRnB/openapi.json
