TikTok Influencer Scraper avatar

TikTok Influencer Scraper

Pricing

from $4.00 / 1,000 results

Go to Apify Store
TikTok Influencer Scraper

TikTok Influencer Scraper

Scrape TikTok creators by hashtag. Returns handle, name, follower count, bio, and email address. Filter by follower range. Supports email-only results, bio link following, and country annotation. Ideal for influencer outreach and lead generation.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

PaxIQ

PaxIQ

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

5

Monthly active users

12 days ago

Last modified

Share

An Apify actor that scrapes TikTok creators by hashtag, extracts profile data + emails, and outputs a clean list ready for influencer outreach.


What It Does

  1. Hashtag → Creators — Navigates to https://www.tiktok.com/tag/{hashtag}, intercepts TikTok's internal API calls, and collects creator handles while scrolling to load more content.
  2. Profile Data — Visits each creator's profile (@handle) and intercepts the user-detail API response to capture followers, following, likes, bio, and bio link.
  3. Email Extraction — Regex-scans the bio text for email addresses, and optionally follows bio links (Linktree, Beacons, solo.to, etc.) to find hidden emails.
  4. Filter + Normalize — Applies a min_followers filter and outputs a clean 14-field schema.

No fragile TikTokApi library used. This actor uses Playwright with stealth settings to behave like a real browser.


Supported Use Cases

  • Influencer outreach — Find creators in a niche, get their emails directly
  • Market research — Understand which creators dominate a hashtag
  • Agency prospecting — Build creator lists by vertical or geography
  • Competitor analysis — See who's posting in your space

Input Schema

FieldTypeDefaultDescription
hashtagsstring[]requiredHashtags to scrape (without #). E.g. ["dutchfashion", "sportmode"]
min_followersinteger5000Skip creators with fewer followers
max_resultsinteger1000Maximum total creators returned
extract_emailsbooleantrueRegex-scan bio text for email addresses
follow_bio_linksbooleantrueFollow Linktree / Beacons / solo.to links to find hidden emails
country_hintstring""Optional ISO country code to annotate results (e.g. "NL", "DE") — best-effort, not a hard filter

Example Input (input.json)

{
"hashtags": ["dutchfashion", "sportmode"],
"min_followers": 5000,
"max_results": 1000,
"extract_emails": true,
"follow_bio_links": true,
"country_hint": "NL"
}

Output Schema (14 fields)

FieldTypeDescription
handlestringTikTok username (without @)
display_namestringFull display name
first_namestringFirst word of display_name, emojis stripped
followersintegerFollower count
followingintegerFollowing count
likesintegerTotal likes (heart count)
biostringBio text
emailstringFirst email found in bio or bio link page
bio_linkstringURL in the creator's bio
profile_urlstringhttps://www.tiktok.com/@{handle}
platformstringAlways "tiktok"
country_hintstringPassed through from input
hashtag_sourcestringWhich hashtag surfaced this creator
scraped_atstringISO 8601 UTC timestamp

Example Output Record

{
"handle": "fashiongirl_nl",
"display_name": "Sophie 🌷 Fashion",
"first_name": "Sophie",
"followers": 48200,
"following": 312,
"likes": 1450000,
"bio": "Dutch fashion & lifestyle 🌷 collabs: sophie@fashiongirl.nl",
"email": "sophie@fashiongirl.nl",
"bio_link": "https://linktr.ee/fashiongirl_nl",
"profile_url": "https://www.tiktok.com/@fashiongirl_nl",
"platform": "tiktok",
"country_hint": "NL",
"hashtag_source": "dutchfashion",
"scraped_at": "2026-03-03T14:31:00Z"
}

Pricing

ComponentRate
Actor start$0.00005
Per result$0.003
1,000 creators≈ $3.00

How It Works (Technical)

Scraping Strategy

Rather than using the fragile TikTokApi library (which breaks frequently), this actor uses Playwright with Chromium to:

  1. Navigate to https://www.tiktok.com/tag/{hashtag}
  2. Intercept XHR/fetch responses matching TikTok's internal API patterns:
    • /api/challenge/item_list/
    • /api/post/item_list/
    • /api/search/item/full/
  3. Scroll the page to trigger lazy-loading and collect more creator handles
  4. For each unique creator, navigate to https://www.tiktok.com/@{handle} and intercept /api/user/detail/
  5. Run email extraction on bio + optionally follow bio_link

Anti-Detection

  • Realistic Chrome user-agent string
  • navigator.webdriver property hidden
  • playwright-stealth patches applied
  • Random delays between requests (0.5–2s)
  • No automation flags in browser args

Email Extraction

email_extractor.py handles two strategies:

  1. Bio regex — standard [a-z]+@[domain] pattern, with spam filtering
  2. Bio link followhttpx (not Playwright) fetches the linked page and scans its HTML

Supported bio link aggregators: Linktree, linktr.ee, Beacons, solo.to, Bio.link, Campsite, lnk.bio, AllMyLinks, WithKoji, Carrd, About.me, TapLink.


Local Development

Prerequisites

pip install playwright playwright-stealth httpx apify apify-client beautifulsoup4
playwright install chromium

Run Locally

  1. Create input.json in the project root:
{
"hashtags": ["dutchfashion"],
"min_followers": 1000,
"max_results": 20,
"extract_emails": true,
"follow_bio_links": true,
"country_hint": "NL"
}
  1. Run the actor:
$python src/main.py
  1. Results are written to output.json in the project root.

Docker (matches Apify environment)

docker build -t tiktok-scraper .
docker run --rm \
-v $(pwd)/input.json:/usr/src/app/input.json \
-v $(pwd)/output:/usr/src/app/output \
tiktok-scraper

Notes & Limitations

  • TikTok changes its internal API frequently. The XHR interception patterns may need updating if TikTok changes its API endpoint structure.
  • Rate limiting — TikTok may throttle or CAPTCHA at high request rates. Add delays or use Apify proxies for large runs.
  • Email coverage — Only creators who publicly share their email (in bio or bio link pages) will have emails populated. Expect ~10–30% email coverage depending on the niche.
  • Country hint — TikTok does not expose user location in most API responses. country_hint is passed through from your input, not scraped from TikTok.

License

MIT