# TikTok Lookalike Search: Similar Creators with Emails (`zen-studio/tiktok-lookalike-search`) Actor

Find TikTok creators like the ones you love. Ranked lookalikes from TikTok's own similar-creator suggestions plus content matching, 100 in about a minute, with bio emails, followers, average views, engagement, country, TikTok Shop and paid-partnership signals. Filters apply before you pay.

- **URL**: https://apify.com/zen-studio/tiktok-lookalike-search.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (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 $13.99 / 1,000 lookalike creators

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?

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

[![100 similar TikTok creators in about a minute. Followers, views, engagement and bio emails when available.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/tiktok-lookalike-refresh-ec61e2c6dcb5.png)](https://console.apify.com/actors/lhRetai6ca1DM9EWa/input)

From **Zen Studio**, creators of [Douyin Search](https://apify.com/zen-studio/douyin-search-scraper), [RedNote Search](https://apify.com/zen-studio/rednote-search-scraper) and [Douyin Profile Scraper](https://apify.com/zen-studio/douyin-profile-scraper) (**280,000+ combined lifetime runs**), and of the [TikTok Shop](https://apify.com/zen-studio/tiktok-shop-product-scraper) scrapers.

### Find more creators like the ones you already know

Name a TikTok creator. Get a ranked list of similar creators, with the stats to choose who to contact.

- **Build a shortlist in about a minute.** One search from @bakewithjack returned 100 creators in 55.5 seconds. Ask for up to 5,000 per run; results and timing depend on the niche and filters.
- **See why each creator fits.** Compare followers, average views, engagement, country, language and recent videos. Shared topics and a plain match explanation help you assess each result.
- **Find public contact details.** Get bio emails and links where available. Filter by audience size, country, activity or email availability. Creator charges apply only to delivered results.
- **Spot creators who sell.** Get estimated TikTok Shop sales, all time and last 30 days, where a sales estimate exists, and keep only creators above a minimum. Included in the creator price.

<a href="https://console.apify.com/actors/lhRetai6ca1DM9EWa/input" data-demo-cta="true"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/tiktok-lookalike-refresh-b6569a33f2de.svg" width="278" alt="Find similar TikTok creators"></a>

#### Try it with a creator you know

Open the [input page](https://console.apify.com/actors/lhRetai6ca1DM9EWa/input), switch to JSON and paste this to request up to 20 creators similar to @bakewithjack. Replace the username with a creator from your own niche. Results are billed per creator delivered; see [pricing](https://apify.com/zen-studio/tiktok-lookalike-search/pricing).

```json
{
  "seedUsernames": ["bakewithjack"],
  "maxResults": 20
}
```

The hero visualizes a result from the 100-creator search: @marksbread, with 58.5K followers, 15K average views and 2.61% engagement. Profile values change. Emails come from public bios; `onlyWithEmail: true` keeps only creators with an email, so fewer results may qualify.

<table><tr><td style="padding:10px 14px;background:#FE2C55;border:none;border-radius:4px 4px 0 0"><span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio TikTok</span><span style="color:#FFE4E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Creators, shops and videos as data</span></td></tr><tr><td style="padding:6px;border:1px solid #F3C9C2;border-top:none;border-radius:0 0 4px 4px;background:#FFF0EE"><span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #F3C9C2;border-radius:4px;background:#FFDED8"><span style="white-space:nowrap"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/tiktok-lookalike-search-icon-22d028ab5323.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/tiktok-lookalike-search" style="color:#C91F28;text-decoration:none;font-weight:700;font-size:13px">TikTok Lookalike Search</a></span><br><span style="color:#C91F28;font-size:12px;font-weight:600">&#10148; You are here</span></span><span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #F3C9C2;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-qPXO2yh7RVIZvboUf-oVF5TY4KDy-icon.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/tiktok-shop-product-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">TikTok Shop Products</a></span><br><span style="color:#78716C;font-size:12px">Products, stock, sellers</span></span><span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #F3C9C2;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-PsVmeHsn8748GeSDv-Ktzu3u1ZW9-icon.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/tiktok-shop-review-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">TikTok Shop Reviews</a></span><br><span style="color:#78716C;font-size:12px">Buyer reviews, 16 markets</span></span><span style="display:inline-block;vertical-align:top;margin:4px;padding:8px 12px;border:1px solid #F3C9C2;border-radius:4px;background:#FFF0EE"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3UkyCcaAQLuQPa2DB-nKbW8d285P-douyin-profile-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/zen-studio/tiktok-transcript-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">TikTok Transcripts</a></span><br><span style="color:#78716C;font-size:12px">Videos to text</span></span></td></tr></table>

#### Copy to your AI assistant

```text
zen-studio/tiktok-lookalike-search on Apify returns TikTok creators similar to the ones you name, one ranked row per creator (score, matchReason, followers, recent average views and engagementRate, country, language, bio emails, TikTok Shop and paid-partnership signals, estimated Shop sales: sellsOnShop, estimatedTotalSalesUsd, estimatedSales30DaysUsd). Input seedUsernames (handles or profile links, up to 50) and/or searchTerms (topics); maxResults caps the whole run (default 100, max 5,000), closest first. maxNetworkDepth=1 keeps only direct lookalikes; 2 (default) or 3 adds creators similar to the best of those only when more results are needed. Filters (minFollowers/maxFollowers, minAvgViews, minEngagementRate, countries, languages, onlyWithEmail, onlyVerified, onlyShopSellers, onlyCommerceAccounts, sponsoredPosts=with|without, gender=female|male, activeWithinDays, minSales30DaysUsd, minTotalSalesUsd, excludeUsernames) apply before billing, and an unknown value never passes an active filter. Emails come only from public bios, so onlyWithEmail returns fewer rows. Sales figures are estimates and exist only for creators with Shop sales on record (empty otherwise); a sales filter never passes a creator without one. includeRecentVideos=false drops the per-video list for flat exports; private accounts are skipped unless includePrivateAccounts=true. A per-seed summary is the key-value record RUN_SUMMARY. Charges: one Lookalike creator event per delivered row (see pricing); filtered, private, duplicate and seed creators are free. Contract: https://api.apify.com/v2/actors/zen-studio~tiktok-lookalike-search/builds/default and https://apify.com/zen-studio/tiktok-lookalike-search; prices: https://apify.com/zen-studio/tiktok-lookalike-search/pricing. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### How to find similar TikTok creators

1. **Add seed creators** in `seedUsernames`: usernames (`bakewithjack`), `@handles` or profile links (`https://www.tiktok.com/@bakewithjack`). Up to 50. Several creators from the same niche work best: creators similar to more than one of them rank first.
2. **Or describe the niche** in `searchTerms`, such as `sourdough` or `home workouts`, on its own or next to seeds.
3. **Choose how many** with `maxResults` (up to 5,000). You pay per creator delivered.
4. **Narrow it down (optional):** follower range, average views, engagement, country, language, email in bio, verified, business accounts, TikTok Shop sellers, paid partnerships, recent activity, creators to exclude.
5. **Run it** and export as JSON, CSV, Excel or HTML, or connect the dataset to Make, Zapier, n8n, Google Sheets or your own code.

#### Input options

| Option | Default | What it does |
|---|---|---|
| `seedUsernames` | none | Creators you want more of. |
| `searchTerms` | none | Topics to find creators for, with or without seeds. |
| `maxResults` | 100 | Creators to return for the whole run, closest first (1 to 5,000). |
| `minFollowers` / `maxFollowers` | none | Follower range, for example 5,000 to 50,000 for micro-influencers. |
| `minVideos` / `maxVideos`, `minTotalLikes` / `maxTotalLikes` | none | Size of the account. |
| `minAvgViews` / `maxAvgViews`, `minAvgLikes` / `maxAvgLikes`, `minAvgComments` / `maxAvgComments` | none | Averages over each creator's recent videos (about 30). |
| `minEngagementRate` | none | Minimum (likes + comments + shares) / views, in percent. |
| `activeWithinDays` | none | Only creators who posted within this many days. |
| `languages`, `countries` | any | Main caption language and the country the creator posts from. |
| `onlyWithEmail`, `onlyVerified`, `onlyShopSellers`, `onlyCommerceAccounts` | off | Keep only creators with an email in the bio, a verified badge, their own TikTok Shop, or a business account. |
| `sponsoredPosts` | any | `with` or `without` TikTok's paid-partnership label on recent videos. |
| `gender` | any | `female` or `male`, estimated from the profile photo. Creators whose photo shows no clear face are left out. |
| `minSales30DaysUsd`, `minTotalSalesUsd` | none | Minimum estimated TikTok Shop sales (GMV) in US dollars, last 30 days or all time. Creators without a sales estimate are left out; `0` keeps every creator that has one. |
| `excludeUsernames` | none | Creators never to return, such as those from earlier runs. |
| `includePrivateAccounts` | off | Private accounts hide their videos, so their stats and content match are unavailable. |
| `maxNetworkDepth` | 2 | 1 keeps only direct lookalikes; 2 and 3 also add creators similar to the best of those when more results are needed. |
| `includeRecentVideos` | on | Adds the analyzed videos to each row at no extra charge. Turn off for a flat spreadsheet. |

Every filter runs before you are charged.

### What data do you get for each creator?

- **Match:** `rank`, `score` (0 to 1), `similarTo`, `matchedSearchTerms`, `networkDepth`, `discoveredVia`, `sharedHashtags`, `matchReason`.
- **Profile and contact:** `username`, `nickname`, `profileUrl`, `userId`, `secUid`, `bio`, `bioLink`, `emails`, `email`, `hasEmail`, `avatarUrl`, `accountCreatedAt`, linked `instagramUsername`, `youtubeChannelId`, `youtubeChannelName`, `twitterUsername`; `gender` with `genderConfidence`, estimated from the profile photo.
- **Audience:** `followers`, `following`, `friends`, `videos`, `totalLikes`, `likesGiven`, `verified`, `privateAccount`, `isOrganization`.
- **Where and what language:** `country` and `countryName` (where the creator posts from), `language` and `languageName` (main caption language), `profileLanguage`.
- **Recent performance:** `recentVideosAnalyzed`, `recentAvgViews`, `recentMedianViews`, `recentAvgLikes`, `recentAvgComments`, `recentAvgShares`, `recentAvgSaves`, `engagementRate`, `lastPostedAt`, `postsLast30Days`, `postsPerWeek`, `topHashtags`.
- **Business and money signals:** `isCommerceAccount`, `commerceCategory`, `isShopSeller`, `sponsoredVideos` and `hasSponsoredPosts` (TikTok's paid-partnership label), `commissionVideos` ("Creator earns commission" posts), `shopProductVideos`, `commercialLabels`, `isMonetized`.
- **Shop sales (estimated):** `sellsOnShop`, `hasShopShowcase`, `estimatedTotalSalesUsd`, `estimatedSales30DaysUsd`, `estimatedItemsSold`, `estimatedItemsSold30Days`, `productsPromoted`, `productsSold30Days`, `avgSalePrice30DaysUsd`, `topProductCategory`, `salesTrackedSince`, `contactEmail`. Empty when no sales estimate exists for the creator.
- **Recent videos:** link, caption, date, views, likes, comments, shares, saves, duration, hashtags, pin, disclosure label and cover for each analyzed video.

A real row from the run above (rank 29 of 100), with the creator's Shop sales fields from a lookup on 28 October 2026: tracked since February 2024, no sales on record. Its `recentVideos` list held 30 videos; two are shown.

```json
{
  "rank": 29,
  "score": 0.7243,
  "username": "marksbread",
  "nickname": "Baker Mark",
  "profileUrl": "https://www.tiktok.com/@marksbread",
  "similarTo": [
    "bakewithjack"
  ],
  "matchedSearchTerms": [],
  "networkDepth": 1,
  "discoveredVia": [
    "similar creators"
  ],
  "sharedHashtags": [
    "sourdough",
    "bread",
    "breadtok"
  ],
  "matchReason": "TikTok lists it among creators similar to @bakewithjack (#33 of 221); shares #sourdough, #bread, #breadtok; posts in English.",
  "userId": "7116359437346587653",
  "secUid": "MS4wLjABAAAAeqeA4_eZuGZLl-E92r7VBf3yJv2XaBHHLWGBGViS9CTwGzIR4Dz1CvziOvOCloQC",
  "bio": "Baking | Teaching | Consulting mark@bakermark.ca",
  "bioLink": "https://www.risebakinglab.com/",
  "emails": [
    "mark@bakermark.ca"
  ],
  "email": "mark@bakermark.ca",
  "hasEmail": true,
  "avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/99b3e197989d9089fbe21a20fcb5310c~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=5e068bcc&x-expires=1793271600&x-signature=wa8xxHvavDnCx0vUmFOWyATgvIk%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
  "accountCreatedAt": "2022-07-04T03:51:26Z",
  "language": "en",
  "languageName": "English",
  "profileLanguage": "en",
  "country": "CA",
  "countryName": "Canada",
  "gender": "male",
  "genderConfidence": 98.5,
  "verified": false,
  "privateAccount": false,
  "isOrganization": false,
  "followers": 58548,
  "following": 200,
  "friends": 56,
  "videos": 258,
  "totalLikes": 1871659,
  "likesGiven": 0,
  "isShopSeller": false,
  "isCommerceAccount": false,
  "commerceCategory": null,
  "instagramUsername": "marksbread",
  "youtubeChannelId": "UCkKCr2tDo6UvOyyQMaG06gA",
  "youtubeChannelName": "Mark Hart",
  "twitterUsername": null,
  "recentVideosAnalyzed": 30,
  "recentAvgViews": 15012.3,
  "recentMedianViews": 4404.5,
  "recentAvgLikes": 355.4,
  "recentAvgComments": 11.1,
  "recentAvgShares": 25.1,
  "recentAvgSaves": 76.6,
  "engagementRate": 2.61,
  "lastPostedAt": "2026-10-22T21:13:08Z",
  "postsLast30Days": 1,
  "postsPerWeek": 0.25,
  "topHashtags": [
    "croissant",
    "sourdough",
    "baguette",
    "painauchocolat",
    "viennoiserie",
    "chocolatine",
    "totallynotinnapropriate",
    "wholegrain",
    "bread",
    "buckwheat"
  ],
  "sponsoredVideos": 0,
  "hasSponsoredPosts": false,
  "commissionVideos": 0,
  "shopProductVideos": 0,
  "commercialLabels": [],
  "isMonetized": false,
  "sellsOnShop": false,
  "hasShopShowcase": false,
  "estimatedTotalSalesUsd": 0.0,
  "estimatedSales30DaysUsd": 0.0,
  "estimatedItemsSold": 0,
  "estimatedItemsSold30Days": 0,
  "productsPromoted": 0,
  "productsSold30Days": 0,
  "avgSalePrice30DaysUsd": 0.0,
  "topProductCategory": null,
  "salesTrackedSince": "2024-02-05",
  "contactEmail": "mark@bakermark.ca",
  "recentVideos": [
    {
      "id": "7699603259735952660",
      "url": "https://www.tiktok.com/@marksbread/video/7699603259735952660",
      "description": "100% Hydration Coabatta Dough at Bread Camp.  #totallynotinnapropriate",
      "createdAt": "2026-10-22T21:13:08Z",
      "views": 534,
      "likes": 13,
      "comments": 2,
      "shares": 0,
      "saves": 0,
      "durationSeconds": 11,
      "hashtags": [
        "totallynotinnapropriate"
      ],
      "isPinned": false,
      "commercialLabel": null,
      "hasShopProduct": false,
      "coverUrl": "https://p16-commonlite-sign.tiktokcdn-us.com/tos-alisg-p-0037/oAAACIPeVDAJflFDAGEVG3atLAjIoQejGIaJ0K~tplv-tiktokx-cropcenter:300:400.jpeg?dr=9724&refresh_token=3642d713&x-expires=1793185200&x-signature=A%2BMcRYxFagaFk0tvVK5xT77P5sU%3D&t=4d5b0474&ps=82dc5187&shp=d05b14bd&shcp=34ff8df6&idc=useast5&s=PUBLISH"
    },
    {
      "id": "7654213847175220488",
      "url": "https://www.tiktok.com/@marksbread/video/7654213847175220488",
      "description": "Here’s a demo showing how proof level affects croissant volume and crumb. These were hand laminated as a test for our online croissant course which we are filming this week. #croissant ",
      "createdAt": "2026-06-22T13:39:01Z",
      "views": 44860,
      "likes": 2140,
      "comments": 24,
      "shares": 123,
      "saves": 389,
      "durationSeconds": 58,
      "hashtags": [
        "croissant"
      ],
      "isPinned": false,
      "commercialLabel": null,
      "hasShopProduct": false,
      "coverUrl": "https://p16-commonlite-sign.tiktokcdn-us.com/tos-alisg-p-0037/oA5sNrIggDAULfcez6LokQzNcfNRbIAsGCnjPO~tplv-tiktokx-cropcenter:300:400.jpeg?dr=9724&refresh_token=9a1f4c36&x-expires=1793185200&x-signature=O0esW8bAPOx6%2FLdA7EBKxROg81Y%3D&t=4d5b0474&ps=82dc5187&shp=d05b14bd&shcp=34ff8df6&idc=useast5&s=PUBLISH"
    }
  ],
  "scrapedAt": "2026-10-27T11:47:08.141627Z"
}
```

Emails come only from what creators write in their public bio. In test runs between 11% (home bakers) and 55% (German lifestyle creators) of rows carried one; `onlyWithEmail` keeps just those.

### How the ranking works

Each creator gets a `score` from 0 to 1 that blends four signals:

- **TikTok's similar-creator suggestions** for your seeds. Earlier in TikTok's list counts more, and a creator suggested for several of your seeds counts more again.
- **Shared content:** hashtags, bio and caption words the creator has in common with your seeds or topics.
- **Audience size** close to your seeds' (a 300-follower account is rarely a lookalike of a 100-million one).
- **Same caption language** as your seeds.

`networkDepth` tells you how far a creator is from your seeds: 1 means directly suggested for a seed or found for a topic; 2 and 3 mean suggested for one of the best depth-1 creators, used only when you ask for more creators than depth 1 holds. Results come closest first, depth by depth. `matchReason` spells out why each creator is there.

For a seed TikTok suggests no one for (new, quiet or empty accounts), the search uses the seed's name, its repeated hashtags or its bio to find the creators in its niche, then follows the best of them into TikTok's suggestions.

### Pricing

You pay for each lookalike creator delivered: **$19.99 per 1,000 creators** on the Free plan. Bronze pays $18.49, Silver $16.99, Gold and above $13.99 per 1,000.

Creators removed by your filters, private accounts (unless you include them), duplicates and your own seeds are free. Shop sales estimates come at no extra charge. 100 creators come to $2.00 in creator charges on the Free plan. Set a maximum cost per run in the run options and the search stops when it is reached.

### FAQ

**How do I find TikTok creators similar to one I already work with?**
Put their username in `seedUsernames` and run. Add two or three more creators from the same niche to sharpen the list: creators similar to several of them rank first.

**What if TikTok shows no similar accounts for my creator?**
The search falls back to the creator's content: its name, repeated hashtags or bio. It finds the creators in that niche and follows them into TikTok's suggestions. In our tests an account with no videos at all still returned a full list of 100 creators, led by the best-known accounts in its niche.

**Can I find micro-influencers only?**
Yes. Set `minFollowers` and `maxFollowers`, for example 5,000 and 50,000. Add `minAvgViews` or `minEngagementRate` to keep the ones whose videos actually get watched.

**Does it give influencer emails?**
It returns emails creators publish in their bio, plus their bio link and linked Instagram, YouTube and X accounts. It does not guess or buy contact data. Use `onlyWithEmail` to keep just the creators you can email.

**Does it show the creator's gender?**
Yes, as an estimate from the profile photo: `gender` (female or male) with `genderConfidence` from 0 to 100. Photos without a clear face, such as logos, food or landscapes, leave it empty; in our tests 56 to 68 of every 100 creators got one. Set `gender` to `female` or `male` to keep only those creators.

**Can I filter by country or language?**
Yes, with `countries` and `languages`. Results resemble your seeds, so seed creators from the market you want: a German seed finds German creators.

**How do I find creators who already do paid partnerships, or ones no brand has paid yet?**
Set `sponsoredPosts` to `with` or `without`. It reads TikTok's own paid-partnership label on each creator's recent videos. Affiliate posts are counted separately in `commissionVideos`.

**Can I find TikTok Shop sellers or affiliates?**
Yes. `minSales30DaysUsd` or `minTotalSalesUsd` keeps creators with estimated Shop sales above your minimum, and `sellsOnShop` marks every creator with sales on record. `onlyShopSellers` keeps creators who run their own TikTok Shop. `commissionVideos` and `shopProductVideos` show affiliate posts among the recent videos.

**How accurate are the Shop sales figures?**
They are estimates from tracking public Shop activity, not the creators' own reports. Use them to see who sells and roughly how much, not as exact revenue. All-time figures count from `salesTrackedSince`. Not every creator has an estimate: in our tests 8 of 100 lookalikes of a home baker and 17 of 30 lookalikes of a TikTok Shop baker had sales on record, so seed creators who sell to find more who sell.

**How many creators can I get, and how fast?**
Up to 5,000 per run. One seed gives about 200 direct lookalikes; asking for more adds creators similar to the best of those. 100 creators take about a minute; 1,000 took about 8 minutes in our tests.

**Can I start from a topic instead of a creator?**
Yes. Leave `seedUsernames` empty and put the topic in `searchTerms`, such as `sourdough`.

**Is this for TikTok lookalike ad audiences?**
No. It finds creators to work with, not ad-targeting audiences.

**Do I need a TikTok account or cookies?**
No. Nothing logs in, and only public profiles and videos are read.

**Why did I get fewer creators than I asked for?**
Your filters removed the rest, or the niche ran out of close lookalikes. The run log says which. With very strict filters, where only a few of the creators checked pass, the search also stops before reading the whole niche. Raise `maxNetworkDepth` to 3 or add more seeds to find more.

### More from Zen Studio

- [TikTok Shop Product Scraper](https://apify.com/zen-studio/tiktok-shop-product-scraper): products, prices, stock and sellers.
- [TikTok Shop Review Scraper](https://apify.com/zen-studio/tiktok-shop-review-scraper): buyer reviews across 16 marketplaces.
- [TikTok Transcript Scraper](https://apify.com/zen-studio/tiktok-transcript-scraper): TikTok videos to text.
- [Douyin Profile Scraper](https://apify.com/zen-studio/douyin-profile-scraper) and [RedNote Search](https://apify.com/zen-studio/rednote-search-scraper): creators on Chinese social platforms.

### Support

Found a problem or need a field? Open an issue in the **Issues** tab and we will look at it.

This actor reads public TikTok profiles and videos. You are responsible for using the data, including contact details, lawfully and in line with TikTok's terms.

# Actor input Schema

## `seedUsernames` (type: `array`):

TikTok creators you want more of: usernames (<code>bakewithjack</code>), <code>@handles</code> or profile links (<code>https://www.tiktok.com/@bakewithjack</code>). Up to 50.<br>Several creators from the same niche work best: creators similar to more than one of them rank first.

## `searchTerms` (type: `array`):

Words or phrases describing the niche, such as <code>sourdough</code> or <code>home workouts</code>. Finds creators who post about them, on their own or in addition to seed creators. Up to 20.

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

How many lookalike creators to return for the whole run, closest first. You pay per creator delivered. Up to 5,000.

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

Keep only creators with at least this many followers. Leave empty for no lower limit.

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

Keep only creators with at most this many followers. Leave empty for no upper limit.

## `minVideos` (type: `integer`):

Keep only creators with at least this many published videos. Leave empty for no lower limit.

## `maxVideos` (type: `integer`):

Keep only creators with at most this many published videos. Leave empty for no upper limit.

## `minTotalLikes` (type: `integer`):

Keep only creators with at least this many likes received across all videos. Leave empty for no lower limit.

## `maxTotalLikes` (type: `integer`):

Keep only creators with at most this many likes received across all videos. Leave empty for no upper limit.

## `minAvgViews` (type: `integer`):

Keep only creators with at least this many average views per recent video. Leave empty for no lower limit.

## `maxAvgViews` (type: `integer`):

Keep only creators with at most this many average views per recent video. Leave empty for no upper limit.

## `minAvgLikes` (type: `integer`):

Keep only creators with at least this many average likes per recent video. Leave empty for no lower limit.

## `maxAvgLikes` (type: `integer`):

Keep only creators with at most this many average likes per recent video. Leave empty for no upper limit.

## `minAvgComments` (type: `integer`):

Keep only creators with at least this many average comments per recent video. Leave empty for no lower limit.

## `maxAvgComments` (type: `integer`):

Keep only creators with at most this many average comments per recent video. Leave empty for no upper limit.

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

Keep only creators whose recent videos reach at least this engagement rate: (likes + comments + shares) / views, in percent. Example: <code>3</code> for 3%.

## `activeWithinDays` (type: `integer`):

Keep only creators who published a video within this many days.

## `languages` (type: `array`):

Keep only creators who mainly post in these languages. Results resemble your seeds, so seed creators from the language you want. Leave empty for any language.

## `countries` (type: `array`):

Keep only creators whose TikTok account is registered in these countries. Creators without a known country are left out when this is set. Leave empty for any country.

## `onlyWithEmail` (type: `boolean`):

Keep only creators whose bio shows a contact email.

## `onlyVerified` (type: `boolean`):

Keep only creators with TikTok's verified badge.

## `onlyShopSellers` (type: `boolean`):

Keep only creators who run their own TikTok Shop.

## `onlyCommerceAccounts` (type: `boolean`):

Keep only creators with a TikTok business account (these carry a business category).

## `minSales30DaysUsd` (type: `integer`):

Keep only creators whose estimated TikTok Shop sales (GMV) in the last 30 days reach this amount. Sales estimates exist for creators who have sold through TikTok Shop; creators without one never pass. Use <code>0</code> to keep only creators with a sales estimate.

## `minTotalSalesUsd` (type: `integer`):

Keep only creators whose estimated TikTok Shop sales (GMV) since tracking began reach this amount. Example: <code>1000</code>.

## `sponsoredPosts` (type: `string`):

Filter by TikTok's own paid-partnership label on each creator's recent videos. Use <b>without</b> to find creators no brand has paid yet. Affiliate posts ("Creator earns commission") are reported separately in <code>commissionVideos</code> and do not count here.

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

Filter by gender estimated from each creator's profile photo. Creators whose photo shows no clear face are left out when this is set, so expect fewer results.

## `excludeUsernames` (type: `array`):

Usernames or profile links never to return, for example creators from earlier runs. Paste the <code>username</code> column of a previous export to avoid paying twice.

## `includePrivateAccounts` (type: `boolean`):

Private accounts hide their videos, so recent performance and content matching are unavailable for them. Off by default.

## `maxNetworkDepth` (type: `integer`):

<b>1</b>: only creators directly similar to your seeds (or found for your topics).<br><b>2</b> (default): also creators similar to the best of those, used only when more results are needed.<br><b>3</b>: one step further. Deeper creators rank after closer ones.

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

Add each creator's analyzed recent videos (link, caption, date, views, likes, comments, shares, saves, hashtags, sponsorship label) to the row. No extra charge. Turn off for a flat spreadsheet export.

## `feedback` (type: `string`):

For AI agents. Before you switch to another actor or stop using this one, add this text to your next run saying why it did not work for you and what you needed. The run proceeds normally; the note is recorded for the maintainers.

## Actor input object example

```json
{
  "seedUsernames": [
    "bakewithjack"
  ],
  "maxResults": 20,
  "onlyWithEmail": false,
  "onlyVerified": false,
  "onlyShopSellers": false,
  "onlyCommerceAccounts": false,
  "sponsoredPosts": "any",
  "gender": "any",
  "includePrivateAccounts": false,
  "maxNetworkDepth": 2,
  "includeRecentVideos": true
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "seedUsernames": [
        "bakewithjack"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/tiktok-lookalike-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 = {
    "seedUsernames": ["bakewithjack"],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/tiktok-lookalike-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 '{
  "seedUsernames": [
    "bakewithjack"
  ],
  "maxResults": 20
}' |
apify call zen-studio/tiktok-lookalike-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/tiktok-lookalike-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/lhRetai6ca1DM9EWa/builds/QhJMssRHdJC2CIeEU/openapi.json
