Tiktok Influencer Finder avatar

Tiktok Influencer Finder

Pricing

from $2.00 / 1,000 influencer results

Go to Apify Store
Tiktok Influencer Finder

Tiktok Influencer Finder

TikTok Influencer Finder discovers TikTok creators by hashtag, keyword, niche, or seed profile, then returns outreach-ready leads with follower counts, bio details, public contact clues, and profile URLs. Use it for influencer research, lead generation, and creator sourcing.

Pricing

from $2.00 / 1,000 influencer results

Rating

0.0

(0)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

43

Total users

5

Monthly active users

5 days ago

Last modified

Share

TikTok Influencer Finder

Find TikTok creators by hashtag, keyword, niche, or seed profile — then filter and export outreach-ready influencer leads with follower counts, bio details, and public contact clues.

What does this actor do?

TikTok Influencer Finder is an Apify Actor that discovers public TikTok creators for influencer outreach, market research, lead generation, and creator intelligence. It supports three discovery modes:

  • Hashtag discovery — find creators active around hashtags like #skincare, #gymtok, or #booktok
  • Keyword/niche discovery — find creators by search terms like "fitness coach", "AI productivity", or "travel creator Australia"
  • Seed profile discovery — include known creators directly by username or profile URL

All three modes can be combined in a single run. Creators found across multiple sources are deduplicated with merged discovery lineage.

Why use this actor?

  • Multiple discovery paths in one actor — hashtags + keywords + seed profiles
  • Fast, reliable discovery — browserless TikHub-backed endpoints for all three modes, with an automatic browser fallback if the fast path is unavailable
  • Creator-level output — one row per creator, not per video
  • Discovery lineage — every creator shows exactly why and how they were found
  • Contact clues — public email, Instagram, YouTube, and external links extracted from bios
  • Filtering — follower range and verification status
  • Scoring — qualification (outreach-readiness) and relevance (niche match) scores with human-readable reasons
  • Deduplication — same creator found via multiple hashtags = one row with merged lineage
  • Country and language — best-effort country annotation and language inference from bio text
  • CSV-friendly — flat, stable schema ready for Sheets, Airtable, CRM, and AI workflows

Input

Discovery inputs

At least one of these is required:

ParameterTypeDescription
hashtagsstring[]Hashtag names or URLs to discover creators from
keywordsstring[]Keywords or niche phrases for user search
seedProfilesstring[]TikTok usernames or profile URLs to include directly

Filters & options

ParameterTypeDefaultDescription
maxCreatorsinteger500Maximum creators to return (overall)
maxCreatorsPerSourceinteger0Cap creators contributed by each hashtag/keyword/seed (0 = no per-source cap)
minFollowersinteger0Minimum follower count (0 = disabled)
maxFollowersinteger0Maximum follower count (0 = disabled)
verifiedOnlybooleanfalseOnly return verified creators
minVideosinteger0Minimum videos posted (0 = disabled)
minTotalLikesinteger0Minimum total likes/hearts received (0 = disabled)
excludePrivateAccountsbooleanfalseDrop private accounts
countryCodesstring[][]Country Filter — keep only creators from these countries (multi-select; best-effort, see match mode). Filters results, unlike region
languagesstring[][]Only these inferred content languages — multi-select dropdown (best-effort)
countryMatchModestring"best_effort"best_effort keeps unknowns; strict drops anything not confidently matched
sortBystring"qualificationScore"Sort by: qualificationScore, relevanceScore, followers
regionstring"US"Discovery Region (hashtags only) — biases which creators TikTok returns for a hashtag (US, GB, FR, JP, VN, SG). Does not filter; for country filtering use countryCodes

Scoring, country/language annotation, and cross-source deduplication are always applied — they add no extra cost, so they run by default and are not configurable inputs.

Bio Enrichment

ParameterTypeDefaultDescription
enrichBiobooleantrueFetch each creator's full profile to fill bio-derived fields (email, Instagram, YouTube, link-in-bio, language) and any missing follower stats

Hashtag- and keyword-discovered creators come back "lite" from TikTok's search endpoints — with follower stats but no bio — so email/Instagram/YouTube/link/language are empty without this step. When enrichBio is on, the actor makes one extra API call per enriched creator, so runs are slower and each enriched creator is billed via the separate bio-enrichment event (see Pricing). Turn it off for faster, cheaper runs that return identity + follower stats only.

Performance Analysis

ParameterTypeDefaultDescription
includePerformancebooleanfalseAnalyze each creator's recent videos for engagement and activity signals

When on, the actor samples each creator's recent videos and adds median views/likes/comments, an estimated engagement rate, and activity/recency (latest video, active/dormant). This is the strongest way to tell a genuinely active, engaging creator from a large-but-dormant one. It makes one extra API call per creator (slower) and bills each analyzed creator via the separate performance-sample event. Off by default — turn it on when you want real performance signals, not just follower counts.

ParameterTypeDefaultDescription
followBioLinksbooleanfalseFor creators with an external link but no email in their TikTok bio, fetch that page (Linktree/Beacons/personal site) and try to resolve an email

Many creators put their email only behind a link-in-bio page, not in the TikTok bio itself. When on, the actor fetches those pages for creators who have a link but no bio email, and records the result in emailInBio with emailSource: "followed_link". Billed via the bio-link-follow event only when an email is actually resolved (you don't pay for links that yield nothing). Off by default.

Brand Fit

ParameterTypeDefaultDescription
campaignBriefstring""Free-text description of your campaign / brand / ideal creator

Describe your campaign in plain text (e.g. "affordable vegan skincare for Gen-Z, US-based, authentic reviewers") and each creator gets a brandFitScore (0–100) with reasons — based on how well their bio, niche, audience size, and engagement match your brief. Deterministic, no extra cost, and you can set sortBy: "brandFitScore" to rank by it. Leave empty to skip. Also produced automatically: audienceQualityFlag (healthy / moderate / suspicious / unknown) from engagement-vs-followers — strongest when Performance Analysis is on.

Sample input: Influencer discovery by hashtag and keyword

{
"hashtags": ["skincare", "beautytok"],
"keywords": ["ugc creator", "affordable skincare"],
"seedProfiles": ["@skincarebylaura"],
"maxCreators": 200,
"minFollowers": 5000,
"maxFollowers": 500000,
"sortBy": "qualificationScore"
}

Sample input: Lead generation by keyword

{
"keywords": ["fitness coach", "personal trainer"],
"minFollowers": 1000,
"maxFollowers": 1000000,
"sortBy": "qualificationScore"
}

Sample input: Seed profile enrichment

{
"seedProfiles": [
"https://www.tiktok.com/@charlidamelio",
"@addisonre",
"khaby.lame"
]
}

Output

The actor outputs a dataset where each row is one discovered creator. Results are available in five dataset views (including a Shortlist view that ranks the top candidates by score):

Overview table view

TikTok Influencer Finder — Overview table view

All samples below are real rows from a "fitness coach" keyword run with a campaignBrief set and all enrichment tiers on.

Shortlist view — sample output

Top candidates ranked by score — the fastest way to pick who to reach out to.

{
"shortlistRank": 1,
"username": "jennlashley_",
"displayName": "Jenn | Posture & Fitness Coach",
"profileUrl": "https://www.tiktok.com/@jennlashley_",
"followersCount": 239403,
"qualificationScore": 100,
"relevanceScore": 40,
"brandFitScore": 57,
"estimatedEngagementRate": 0.0247,
"outreachReady": true,
"emailInBio": "jenn@posturealignmentacademy.com",
"country": null
}

Overview view — sample output

Key fields: identity, stats, likes-per-follower, scoring, and discovery summary.

{
"username": "jennlashley_",
"displayName": "Jenn | Posture & Fitness Coach",
"profileUrl": "https://www.tiktok.com/@jennlashley_",
"isVerified": true,
"followersCount": 239403,
"followingCount": 265,
"likesCount": 3185069,
"videosCount": 1967,
"followerRangeBucket": "100k-500k",
"likesPerFollower": 13.3,
"hasContactClue": true,
"outreachReady": true,
"qualificationScore": 100,
"relevanceScore": 40,
"discoverySourcesSummary": "Found via 1 keyword(s)",
"scrapedAt": "2026-07-19T07:05:33.422Z"
}

Outreach view — sample output

Key fields: bio, email (+ source), external links, Instagram/YouTube, and contact clues. Here the email came from the bio-link page (emailSource: "followed_link").

{
"username": "jennlashley_",
"displayName": "Jenn | Posture & Fitness Coach",
"profileUrl": "https://www.tiktok.com/@jennlashley_",
"bio": "Helping you fix painful posture & move with confidence✨\n1:1 Coaching + Posture Academy App\n📩 DM \"TRIAL\" to start today or tap below👇🏼",
"emailInBio": "jenn@posturealignmentacademy.com",
"emailSource": "followed_link",
"externalUrl": "https://stan.store/Jennlashley_",
"instagramHandle": null,
"instagramUrl": null,
"youtubeHandle": null,
"youtubeUrl": null,
"linkInBioUrl": "https://stan.store/Jennlashley_",
"contactClueType": "email_and_external_link",
"hasContactClue": true,
"outreachReady": true,
"followersCount": 239403,
"isVerified": true
}

Discovery view — sample output

Key fields: lineage showing which hashtags/keywords/seed profiles led to each creator, and their rank within the source's results.

{
"username": "jennlashley_",
"displayName": "Jenn | Posture & Fitness Coach",
"followersCount": 239403,
"discoveredVia": ["keyword"],
"sourceHashtags": [],
"sourceKeywords": ["fitness coach"],
"sourceSeedProfiles": [],
"matchedBioKeywords": [],
"discoveryCount": 1,
"bestSearchRank": 3,
"discoverySourcesSummary": "Found via 1 keyword(s)"
}

Quality view — sample output

Key fields: scoring, brand-fit, audience-quality, engagement/activity, country/language (with confidence).

{
"username": "jennlashley_",
"displayName": "Jenn | Posture & Fitness Coach",
"followersCount": 239403,
"followerRangeBucket": "100k-500k",
"country": null,
"countryConfidence": 0,
"language": "en",
"languageConfidence": 0.5,
"profileStatus": "public",
"isVerified": true,
"outreachReady": true,
"qualificationScore": 100,
"relevanceScore": 40,
"brandFitScore": 57,
"brandFitReason": "brief terms matched: fitness, coach, audience in target range, moderate engagement, contactable",
"audienceQualityFlag": "healthy",
"audienceQualityScore": 85,
"estimatedEngagementRate": 0.0247,
"activityBucket": "active",
"daysSinceLatestVideo": 0,
"isPartial": false
}

Full output example (all fields)

A real row from a keyword run ("fitness coach") with a campaignBrief set and all enrichment tiers on. Long URLs are trimmed for readability.

{
"username": "jennlashley_",
"profileUrl": "https://www.tiktok.com/@jennlashley_",
"userId": "6765683454283547653",
"secUid": "MS4wLjABAAAA13dcvIWqqbZDwxM6Z52AZgtvlRt5K0DI1Ysv0Lb7pPQ...",
"displayName": "Jenn | Posture & Fitness Coach",
"bio": "Helping you fix painful posture & move with confidence✨\n1:1 Coaching + Posture Academy App\n📩 DM \"TRIAL\" to start today or tap below👇🏼",
"profilePictureUrl": "https://p16-common-sign.tiktokcdn-eu.com/...heic?...",
"isVerified": true,
"accountPrivate": false,
"followersCount": 239403,
"followingCount": 265,
"likesCount": 3185069,
"videosCount": 1967,
"emailInBio": "jenn@posturealignmentacademy.com",
"externalUrl": "https://stan.store/Jennlashley_",
"instagramHandle": null,
"youtubeHandle": null,
"linkInBioUrl": "https://stan.store/Jennlashley_",
"contactClueType": "email_and_external_link",
"hasContactClue": true,
"emailSource": "followed_link",
"bioLinkFollowed": true,
"instagramUrl": null,
"youtubeUrl": null,
"discoveredVia": ["keyword"],
"sourceHashtags": [],
"sourceKeywords": ["fitness coach"],
"sourceSeedProfiles": [],
"matchedBioKeywords": [],
"searchRankBySource": [{ "sourceType": "keyword", "source": "fitness coach", "rank": 3 }],
"bestSearchRank": 3,
"shortlistRank": 1,
"discoveryCount": 1,
"discoverySourcesSummary": "Found via 1 keyword(s)",
"country": null,
"countryConfidence": 0,
"language": "en",
"languageConfidence": 0.5,
"followerRangeBucket": "100k-500k",
"likesPerFollower": 13.3,
"outreachReady": true,
"qualificationScore": 100,
"qualificationReason": "has contact clue, email in bio, external link, target follower range, detailed bio, public account, verified, active creator",
"qualificationComponents": { "contactability": 50, "audienceFit": 20, "profileCompleteness": 25, "activity": 5 },
"relevanceScore": 40,
"relevanceReason": "top-10 search rank, single source match, discovered via keyword, high engagement signal",
"relevanceComponents": { "sourceMatch": 10, "bioMatch": 0, "multiSourceEvidence": 10, "engagement": 10, "discoveryRank": 10 },
"scoringVersion": "1.1.0",
"brandFitScore": 57,
"brandFitReason": "brief terms matched: fitness, coach, audience in target range, moderate engagement, contactable",
"brandFitComponents": { "briefMatch": 17, "audienceFit": 20, "engagement": 10, "contactable": 10 },
"audienceQualityScore": 85,
"audienceQualityFlag": "healthy",
"audienceQualityReason": "engagement rate healthy for audience size",
"recentVideosAnalyzed": 10,
"medianViews": 1217,
"medianLikes": 29,
"medianComments": 1,
"estimatedEngagementRate": 0.0247,
"latestVideoAt": "2026-07-18T17:03:00.000Z",
"daysSinceLatestVideo": 0,
"activityBucket": "active",
"performanceConfidence": 0.9,
"performanceSampled": true,
"scrapedAt": "2026-07-19T07:05:33.422Z",
"isPartial": false,
"bioEnriched": true,
"profileStatus": "public",
"errorType": null,
"errorCode": null,
"errorMessage": null
}

Output fields

Identity fields

FieldDescription
usernameTikTok username
profileUrlFull profile URL
userIdTikTok user ID (if available)
secUidTikTok secUid — stable identifier for downstream API workflows (if available)
displayNameDisplay name
bioBio/signature text
profilePictureUrlAvatar URL
isVerifiedVerified badge
accountPrivateWhether account is private

Stats fields

FieldDescription
followersCountFollower count
followingCountFollowing count
likesCountTotal likes received
videosCountTotal videos posted
likesPerFollowerTotal likes ÷ followers (lifetime popularity proxy; null if followers unknown)

Outreach/lead fields

FieldDescription
emailInBioEmail extracted from bio, or resolved from a followed bio link (best-effort)
emailSourceWhere the email came from: bio or followed_link (null if none)
externalUrlExternal URL from profile
instagramHandleInstagram handle from bio (best-effort)
instagramUrlInstagram profile URL built from instagramHandle
youtubeUrlYouTube profile URL built from youtubeHandle
youtubeHandleYouTube handle from bio (best-effort)
linkInBioUrlLink-in-bio URL
contactClueTypeType of contact clues found (e.g., email_and_instagram_and_external_link)
hasContactClueWhether any contact clue was found

Discovery lineage fields

FieldDescription
discoveredViaArray of discovery modes used (hashtag, keyword, profile)
sourceHashtagsHashtags that led to this creator
sourceKeywordsKeywords that led to this creator
sourceSeedProfilesSeed profiles that led to this creator
matchedBioKeywordsSearch terms found in this creator's bio
discoveryCountHow many times this creator was discovered across sources
searchRankBySourcePosition within each source's results: [{ sourceType, source, rank }]
bestSearchRankBest (lowest) rank across all sources — a high rank is strong relevance evidence
shortlistRankOverall rank in the final sorted/limited results (drives the Shortlist view)
discoverySourcesSummaryHuman-readable discovery summary

Quality/scoring fields

FieldDescription
countryCountry annotation (best-effort from bio/region/flag emojis)
countryConfidence0–1 confidence for country (region 0.9 > flag 0.85 > keyword 0.6; 0 = unknown)
languageContent language (inferred from bio text)
languageConfidence0–1 confidence for language (non-Latin script 0.9 > word-match 0.75 > English default 0.5)
followerRangeBucketFollower range bucket (under-1k, 1k-5k, 5k-10k, 10k-50k, 50k-100k, 100k-500k, 500k-1M, 1M+)
outreachReadyHas contact clue AND 1000+ followers
qualificationScore0-100 score for outreach readiness
qualificationReasonFactors contributing to qualification score
qualificationComponentsSub-score breakdown: contactability, audienceFit, profileCompleteness, activity
relevanceScore0-100 score for niche relevance
relevanceReasonFactors contributing to relevance score
relevanceComponentsSub-score breakdown: sourceMatch, bioMatch, multiSourceEvidence, engagement, discoveryRank
scoringVersionScoring model version (bumped when weights change, so scores are comparable across runs)
brandFitScore0–100 fit vs. your campaignBrief (null if no brief). Set sortBy: "brandFitScore" to rank by it
brandFitReasonWhy the creator scored that brand-fit
brandFitComponentsSub-scores: briefMatch, audienceFit, engagement, contactable
audienceQualityFlaghealthy / moderate / suspicious / unknown from engagement-vs-followers
audienceQualityScore0–100 audience-quality estimate (best-effort; null when insufficient data)
audienceQualityReasonBasis for the audience-quality flag

Metadata fields

FieldDescription
scrapedAtISO 8601 extraction timestamp
isPartialWhether this record has incomplete data
bioEnrichedWhether a follow-up profile lookup filled this creator (billed via bio-enrichment)
profileStatusStandardized status: public, private, partial, or error
errorTypeError type if applicable
errorCodeMachine-readable error code (for automation); null on success
errorMessageError message if applicable

Performance fields (only when includePerformance is on)

FieldDescription
recentVideosAnalyzedNumber of recent videos sampled
medianViewsMedian views across the sample
medianLikesMedian likes across the sample
medianCommentsMedian comments across the sample
estimatedEngagementRate(median likes + median comments) ÷ median views
latestVideoAtISO timestamp of the most recent video
daysSinceLatestVideoDays since the latest video
activityBucketactive (≤14d), recent (≤45d), dormant (≤180d), or inactive
performanceConfidence0–1 confidence based on how many videos were sampled
performanceSampledWhether this creator was performance-analyzed (billed via performance-sample)

Scoring methodology

Scores are transparent, heuristic sums of named components (current scoringVersion: 1.1.0). Each creator row includes the component breakdown so you can see exactly why it scored the way it did.

Qualification score (0–100 — how outreach-ready):

ComponentSignals (points)Max
contactabilitycontact clue (25) + email in bio (15) + external link (10)50
audienceFit1k–1M followers (20) or >1M (10)20
profileCompletenessdetailed bio (10) + public account (10) + verified (5)25
activity10+ videos (5)5

Relevance score (0–100 — how well it matches your search):

ComponentSignals (points)Max
sourceMatchfound via 3+ sources (30), 2 (20), or 1 (10)30
bioMatchsearch terms present in bio (10 each)30
multiSourceEvidencemultiple discovery modes (20) or one (10)20
engagementlikes-per-follower ratio > 5 (10)10
discoveryRanktop-10 rank in a source (10) or top-30 (5)10

Scores are indicative signals, not authoritative ratings. When the model changes, scoringVersion is bumped so you can tell old and new scores apart.

Use cases

  • Influencer discovery — find creators in your niche across multiple hashtags and keywords
  • Lead generation — build outreach lists with emails and contact clues
  • Campaign sourcing — discover creators matching audience size, niche, and outreach readiness
  • Competitor analysis — find creators active in competitor hashtags
  • Market research — understand which creators dominate specific niches
  • AI workflows — feed creator data into scoring, categorization, and outreach pipelines

Chaining with other TikTok actors

Creator results flow naturally into other TikTok actors:

  • Use profileUrl as input for TikTok Profile Scraper for deeper profile enrichment
  • Use username to feed TikTok Followers/Following Scraper for audience analysis
  • Use discovered hashtags to feed TikTok Hashtag Scraper for content-level analysis

Pricing

This actor uses pay-per-event pricing with three events:

  • influencer-result — charged per creator returned in the dataset output.
  • bio-enrichment — charged per creator enriched with a follow-up profile lookup (email, Instagram, YouTube, link-in-bio, language, and any missing follower stats). Only charged when Enrich Bio & Contact Fields (enrichBio) is on, and only for creators actually enriched. Turn enrichBio off to avoid this event.
  • performance-sample — charged per creator analyzed with a recent-video sample (engagement + activity signals). Only charged when Analyze Recent Performance (includePerformance) is on, and only for creators actually sampled. Off by default.
  • bio-link-follow — charged per creator whose external bio link was followed and yielded an email. Only charged when Follow Bio Links (followBioLinks) is on, and only when an email is actually resolved. Off by default.

The actor respects user-configured spending limits — if your maximum cost per run is reached, it stops pushing results and exits gracefully.

What you're charged for

Scenarioinfluencer-resultbio-enrichmentperformance-samplebio-link-follow
200 creators, all toggles off200000
200 creators, enrichBio on20020000
200 creators, all toggles on200200200only those where a link yielded an email
Invalid input / source with no creators0000
Failed / not-found / private-no-data / error row0000

Billing rules:

  • You are charged per creator returned, plus per creator enriched (enrichBio), performance-sampled (includePerformance), and bio-link-resolved (followBioLinks, only when an email is found) — each only when that toggle is on.
  • Failed and error rows are pushed for visibility but never charged — you don't pay for our failures.
  • A partial row is charged only if it carries a real creator (username/id).
  • To control cost: lower maxCreators, set maxCreatorsPerSource, or turn off enrichBio / includePerformance / followBioLinks.

Free plan limitations

The two profile-lookup enrichments require a paid Apify plan. On the Free plan they are skipped and you are not charged for them.

Free planAny paid plan
Creators discovered, filters, qualification scoring, brand fit✅ Unrestricted✅ Unrestricted
Identity, profile URL, follower stats from discovery✅ Included✅ Included
Follow Bio Links (followBioLinks)Included✅ Included
Enrich Bio & Contact Fields (enrichBio)❌ Skipped, not charged✅ Included
Analyze Recent Performance (includePerformance)❌ Skipped, not charged✅ Included

Note that enrichBio is on by default, so a Free-plan run returns identity and follower stats rather than emails and social handles — the same output you'd get with enrichBio turned off.

Why these two: each costs an extra API call per creator, while discovery spreads a single call across a page of them. followBioLinks is unaffected because it fetches the creator's own link page directly rather than a metered API.

Runs are never failed because of this. You'll see it in the log and in the run's status message.

Important notes and limitations

  • Public data only — this actor uses publicly available TikTok data
  • Contact clues are best-effort — emails, Instagram handles, and YouTube handles are extracted from public bios using pattern matching. They are not verified or guaranteed to be accurate
  • Country annotation is best-effort — country is inferred from SSR region data, flag emojis, and bio keywords. It may be null for many profiles
  • Language inference is best-effort — language is detected from Unicode scripts and common word patterns in bio text
  • Scoring is indicative — qualification and relevance scores are heuristic-based signals, not authoritative ratings
  • Results depend on TikTok's response — the actual number of creators found depends on what TikTok returns for each hashtag/keyword page
  • Large discovery runs may return partial results depending on platform constraints

Integrations

Results are a standard Apify dataset, so they plug into the usual tooling:

  • Export — JSON, CSV, Excel, XML, or HTML from the run's Dataset tab (the flat schema drops straight into Google Sheets / Airtable / a CRM).
  • API — run the actor and pull results via the Apify API / JS / Python / CLI (copy-paste snippets in API & MCP below).
  • Automation — trigger runs and route results with Make, Zapier, n8n, or Apify webhooks (fire on run success into your own endpoint).
  • AI / MCP — expose the actor as a tool to Claude/other agents via the Apify MCP server (config in API & MCP below).
  • Chaining — feed profileUrl / username into other TikTok actors (see Chaining with other TikTok actors above).

Outreach & CRM recipes

Because every row is a flat, outreach-ready lead, you can wire runs straight into your outreach stack. Common patterns:

  • New leads → CRM/Sheet: add an Apify webhook on ACTOR.RUN.SUCCEEDED that POSTs the dataset to a Make/Zapier/n8n scenario, which appends each creator to HubSpot / Pipedrive / Airtable / Google Sheets. Map emailInBio, username, profileUrl, followersCount, qualificationScore.
  • Only contactable leads: in the Zap/scenario, filter to outreachReady = true (or hasContactClue = true) so only creators you can actually reach hit the CRM.
  • Auto-draft outreach: pass displayName, bio, matchedBioKeywords, and discoverySourcesSummary into an AI step (or the Apify MCP server) to draft a personalized first message per creator.
  • Scheduled sourcing: put the actor on an Apify Schedule (e.g., weekly per niche); each run's webhook feeds new creators into the same CRM pipeline.
  • Dedupe on your side: use username (or userId / secUid) as the unique key when upserting into your CRM to avoid duplicates across runs.

API & MCP

Run the actor and read results programmatically. Replace YOUR_APIFY_TOKEN with a token from Apify Console → Settings → Integrations. (Apify also auto-generates ready-to-copy snippets on the actor's API and MCP tabs.)

REST API

Run and get the results in one call (run-sync-get-dataset-items):

curl -X POST "https://api.apify.com/v2/acts/coregent~tiktok-influencer-finder/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "keywords": ["fitness coach"], "maxCreators": 100, "enrichBio": true }'

Or start a run asynchronously, then fetch the dataset later:

# Start a run
curl -X POST "https://api.apify.com/v2/acts/coregent~tiktok-influencer-finder/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "hashtags": ["skincare"], "maxCreators": 200 }'
# Then read items from the run's dataset
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_TOKEN&format=json"

JavaScript (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('coregent/tiktok-influencer-finder').call({
keywords: ['fitness coach'],
maxCreators: 100,
enrichBio: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("coregent/tiktok-influencer-finder").call(run_input={
"keywords": ["fitness coach"],
"maxCreators": 100,
"enrichBio": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

CLI

$apify call coregent/tiktok-influencer-finder --input='{"keywords":["fitness coach"],"maxCreators":100}'

MCP (AI agents)

Expose the actor as a tool to Claude Desktop / any MCP client via the Apify MCP server:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "coregent/tiktok-influencer-finder"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

The agent can then call the actor and read the returned creator leads directly in a conversation.

FAQ

Is this legal? The actor collects only publicly available TikTok data. You are responsible for using the results in line with TikTok's Terms and applicable laws (e.g. GDPR when handling personal data).

What data do you collect? Public profile fields only — identity, follower stats, bio, and public contact clues creators put in their own bios. No private or login-gated data.

How accurate are the emails / contact clues? Best-effort — they're pattern-matched from public bios and not verified. Expect email coverage in the ~10–30% range depending on niche (only creators who publish an email).

Why is country often empty? Country is inferred from bio cues (flag emojis, city/country names) only — TikTok's search/profile responses don't expose a reliable region field. Use countryConfidence to gauge certainty.

Why did a keyword/hashtag run take a while? Contact fields require a follow-up profile call per creator (enrichBio). Turn enrichBio off for fast, cheap runs that return identity + follower stats only.

Can I combine hashtags, keywords, and seed profiles? Yes — provide any mix in one run. Creators found across sources are de-duplicated with merged discovery lineage.

How is this different from a profile scraper? This finds creators (discovery + qualification + scoring across many sources); a profile scraper enriches creators you already know. They chain well together.

Troubleshooting

SymptomLikely cause & fix
Few or no creators returnedBroaden inputs (more/less-niche hashtags or keywords); very specific terms return little. Check the run log for per-source counts.
Contact/email/country/language fields emptyenrichBio is off, or those creators simply don't publish that info. Turn enrichBio on for bio-derived fields.
country is null but other fields are setExpected — country is bio-inferred only (see FAQ).
Run stopped earlyYour per-run spending limit was reached; the actor exits gracefully after the last charged batch.
Slow runsEnrichment makes one call per creator; lower maxCreators/maxCreatorsPerSource or turn enrichBio off.
One broad hashtag dominates resultsSet maxCreatorsPerSource to balance coverage across sources.