# TikTok Influencer Search — Find Creators by Description (`afanasenko/tiktok-influencer-search`) Actor

Find TikTok influencers by describing them in plain English. AI checks every creator against each requirement with quotes as proof. Get followers, average and median views, engagement rate and the email from their bio or, optionally, the page it links to. Only new creators on repeat runs.

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

## Pricing

$50.00 / 1,000 matching creators

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

## TikTok Influencer Search — Find Creators by Description

Describe the TikTok creators you need in plain English — niche, what they post, where they are, size, contact — and get back only the creators who pass **every** requirement, each with the exact quote from their bio or video captions that proves it. You pay only for matching creators.

### 🧭 When to use it

- Influencer outreach: "US fitness creators with 10k–200k followers who post home workouts and have an email in their bio".
- Niche research: "UK vegan food creators who post plant-based recipes, 5k–100k followers".
- Agencies and brands that need a short list they can trust without opening every profile.

### ✨ What you get for each creator

| Field | What it is |
|---|---|
| Match | `match` (passed every requirement, charged) or `possible match` (every requirement proven except one the profile does not show — free) |
| Username, profile URL, name | The TikTok account |
| Followers, following, total likes, videos | Account numbers |
| Average and median plays | Over the recent videos (pinned videos left out) |
| Engagement rate | (likes + comments + shares) ÷ plays over the recent videos, % |
| Videos per week, last video | Posting frequency and recency |
| Bio, bio link | As shown on the profile |
| Emails, phones | Written in the bio |
| Email / phone behind the bio link | Optional ("Find email or phone behind the bio link"): for a creator whose bio shows no email, the email or phone published on the page the bio link opens — a Linktree-style page, a WhatsApp link or the creator's own site — with where each came from |
| Linked Instagram / YouTube | When the creator linked them |
| Country | The region TikTok records for most of the creator's recent videos (for example "US: 9 of 10 recent videos"). It can differ from where the creator lives |
| Evidence | Every requirement with its status and the exact quote that proves it |
| Recent videos | Up to 5, with plays, likes, comments, date and caption |

### 🚀 How it works

1. **Plan.** AI reads your description and turns it into requirements (niche, content, country, contact…) and short searches.
2. **Search.** TikTok is searched by creator name and by video captions; follower range, a required bio email, recent activity and the country of the videos are checked first, free.
3. **Check.** AI checks every remaining creator against each requirement and must quote the bio or caption text that proves it. Code re-checks every quote word for word.
4. **Second review.** Every accepted creator is re-read by a skeptical reviewer before it is delivered.
5. **Deliver.** Matching creators are saved and charged one by one until your number is reached. If the searches run dry, new searches are planned from what matched.

### ⚙️ Input

| Field | Description |
|---|---|
| Who to find | Plain-English description, up to 4,000 characters |
| Number of matching creators | Default 20, up to 200 |
| Country | Optional: only creators based there |
| Min / max followers | Optional follower range |
| Must have an email in the bio | Optional |
| Find email or phone behind the bio link | Optional, off by default: opens the bio link of a creator whose bio shows no email and takes the contact published there; a required email or phone is then also met by it. Up to 3 pages per creator, so runs are slower; no extra charge |
| Max creators to check | AI cost control; 0 = automatic |
| Skip creators already delivered to you | Optional, off by default: leaves out creators this Actor already delivered to your account (in the last 7 / 30 / 90 / 180 / 365 days, or ever). Skipped creators are not checked or charged |

### 💰 Pricing

**$0.05 per matching creator** (event "Matching creator"), the same on every Apify plan. Creators the AI turned down, possible matches and accounts filtered before the check are **free**.

| You ask for | You pay at most |
|---|---|
| 5 matching creators | $0.25 |
| 20 matching creators (default) | $1.00 |
| 100 matching creators | $5.00 |

If fewer creators match, you pay only for those delivered. "Maximum cost per run" in Run options caps the spend; the run stops when the next match would go over it. The free plan checks up to 5 creators per run (up to 15 while none matches) and runs 15 times per calendar month. While an unusually large number of new free accounts run this Actor at once, free runs from new accounts may be reduced to one creator for a short while. Paid plans are never affected.

### 📦 Output

Results are in the dataset, with three views: **Creators**, **Evidence** and **Contacts**. The key-value store holds `RUN_SUMMARY`, `USER_MESSAGE` (what happened and what to change), `CHECKED_PROFILES` (every account read, with the reason) and a live status page.

### ❓ FAQ

**Why fewer creators than I asked for?** The run says why in User Message: usually the searches ran out of new creators in your follower range, or most creators lacked one requirement (for example an email in the bio).

**What is a possible match?** Every requirement was proven except one the profile simply does not show (for example the content of their videos when captions are empty). It is delivered free and labeled with what is missing.

**How is the country checked?** By the region TikTok records for the creator's recent videos ("US: 9 of 10 recent videos") or by a place the creator states themselves: a city or country in the bio, a phone number with a country-only prefix, a local website domain. Language, hashtags and flags never count. The video region is where TikTok placed the videos and can differ from where the creator lives.

**Can it find an email that is not in the bio?** Yes, with "Find email or phone behind the bio link" on. It opens the creator's bio link — a link-in-bio page such as Linktree, a WhatsApp link, or the creator's own website (home page and one contact page) — and takes the email or phone published there into the linkEmail / linkPhone columns. Only contacts published on those pages are returned; nothing is guessed, and the source column says where each one was found. How often it finds one depends on the niche: in our test on 29.10.2026 it found an email or phone for 9 of 35 fitness creators with a bio link and no email in the bio, and for 4 of 37 accounts from six broader searches (many of them brands).

**Can I get only creators I have not received before?** Yes: set "Skip creators already delivered to you" to a period or to "Ever delivered". Creators this Actor already delivered to your Apify account — matching creators and free possible matches, from any description — are left out before they are checked, so they are not charged, and the run looks for the next ones. The history is a key-value store named `tt-delivered-…` in your Storage, kept from version 0.0.5 on; delete it to start over. Runs that overlap in time may still share a creator.

**How much does a run cost?** $0.05 for each matching creator delivered, nothing for the rest. 20 creators cost $1.00.

**Can it see the videos?** No. It reads public text: bio, display name, bio link and video captions, plus numbers computed from the recent videos — and, with "Find email or phone behind the bio link" on, the page the bio link opens.

### 🛟 Support

Open an issue on the Issues tab of this Actor.

# Changelog

This Actor's version history is a separate document: https://apify.com/afanasenko/tiktok-influencer-search/changelog.md

# Actor input Schema

## `brief` (type: `string`):

Plain English, like a message to an assistant: niche, what they post, where they are, size, contact. Example: "US fitness creators with 10k–200k followers who post home workouts and have an email in their bio". Up to 4,000 characters.

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

The search stops when it has this many creators that pass every requirement. Each one is charged; possible matches are free.

## `country` (type: `string`):

Only creators from this country. Proven by the region TikTok records for the creator's recent videos (for example "US: 9 of 10 recent videos") or by the place the creator states in their bio. The video region can differ from where a creator lives. "Any country" sets no restriction; you can also name the country in the description.

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

0 = no minimum.

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

0 = no maximum.

## `mustHaveEmail` (type: `boolean`):

Only creators who write an email address in their TikTok bio. With "Find email or phone behind the bio link" on, an email published behind the bio link also counts.

## `lookBehindBioLink` (type: `boolean`):

When on, for a creator whose bio shows no email the Actor opens the bio link — a link-in-bio page such as Linktree, a WhatsApp link, or the creator's own website (home page and one contact page) — and takes the email or phone published there. It fills the linkEmail / linkPhone columns (with where each came from), and an email or phone requirement in your description, or "Must have an email in the bio", is then also met by a contact found there. Only contacts the creator published are returned. At most 3 pages and about 10 seconds per creator, so runs are slower. Off by default. No extra charge.

## `maxProfilesToCheck` (type: `integer`):

The most creators the AI checks in one run. 0 = automatic (6 per creator asked for, at least 100). Checks are never charged; only matching creators are.

## `skipDelivered` (type: `string`):

Leave out creators this Actor already delivered to your Apify account, across all your runs and descriptions (matching creators and free possible matches). Skipped creators are not checked or charged; the run looks for the next ones instead. From the API you can also pass any number of days, e.g. "45". The history is a key-value store named tt-delivered-… in your Storage, kept from version 0.0.5 on; delete it to start over. Runs that overlap in time may still share a creator.

## Actor input object example

```json
{
  "brief": "",
  "maxResults": 20,
  "country": "",
  "minFollowers": 0,
  "maxFollowers": 0,
  "mustHaveEmail": false,
  "lookBehindBioLink": false,
  "maxProfilesToCheck": 0,
  "skipDelivered": "off"
}
```

# Actor output Schema

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

No description

## `evidence` (type: `string`):

No description

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

No description

## `liveStatus` (type: `string`):

No description

## `userMessage` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

## `checkedProfiles` (type: `string`):

No description

## `freeLimitsApplied` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("afanasenko/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 = {}

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

```

## MCP server setup

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