TikTok Profile API Scraper + Contacts & Analytics | 3.5$/1k
Pricing
from $3.00 / 1,000 profile scrapeds
TikTok Profile API Scraper + Contacts & Analytics | 3.5$/1k
Scrape TikTok profiles at scale — bio, stats, full video catalog with views/likes/comments, bio contacts (emails, phones, Instagram, YouTube, Telegram), engagement analytics and sponsored post detection. Unlimited videos per creator. First 10 videos free. No browser needed.
Pricing
from $3.00 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Raven
Maintained by CommunityActor stats
1
Bookmarked
22
Total users
5
Monthly active users
10 days ago
Last modified
Categories
Share
TikTok Profile Scraper — Bio Contacts, Videos, Emails & Engagement Analytics API
Scrape any public TikTok profile at scale — full bio, follower/like/video stats, verification and business category, the complete video catalog with views/likes/comments/shares, bio-link contacts (emails, phones, Instagram, YouTube, Telegram, WhatsApp, Snapchat), and ready-made engagement analytics. Pure HTTP, no headless browser. The first 10 videos per profile are free, and profiles start at $4 per 1,000 (from $3 on paid plans). No login, no TikTok API key, no code, no proxy setup — anti-bot handling and residential proxy rotation are built in.
What does this TikTok Scraper do?
TikTok has no free, open official API — the Research API is gated behind an application process (academics/approved orgs only) and the Display API requires per-user OAuth login. This actor works as an unofficial TikTok API: give it a list of usernames or profile URLs and it returns clean, structured JSON with everything a public profile page exposes, plus enrichment you'd normally have to build yourself.
| Mode | What you get | Toggle |
|---|---|---|
| Profile data | Bio, stats, verification, business category, region, avatars, account age | always on |
| Video catalog | The creator's own uploads with full engagement stats + music | maxVideosPerProfile |
| Reposts | The Reposts tab as a separate array | includeReposts |
| Liked videos | The Liked tab (only when the user made likes public) | includeLikedVideos |
| Bio contacts | Emails, phones, socials & websites parsed from bio + bio-link | extractContacts |
| Engagement analytics | Avg/median views, engagement rate, viral ratio, best posting time, top hashtags/sounds | computeAnalytics |
| Sponsored detection | Flags #ad, #sponsored, paid-partnership markers | detectSponsored |
Export the results in JSON, CSV, Excel, XML, or HTML from the Apify dataset.
Why use this TikTok Profile Scraper?
- ✅ Bio contact extraction (9 contact types) — emails (including obfuscated
hello [at] brand [dot] com), phone numbers, Instagram, YouTube, Twitter/X, Telegram, WhatsApp, Snapchat handles, and websites. Most TikTok scrapers refuse to touch contacts — this one turns bios into a lead list. - ✅ Engagement analytics computed in-actor (25+ metrics) — no spreadsheet post-processing. Average/median views, engagement rate by followers and by views, viral ratio, sponsored ratio, original-audio ratio, posting frequency, best posting hour and weekday, top hashtags and sounds.
- ✅ Up to 2,000 videos per profile — paginates the creator's own-videos feed with cursor pagination, and falls back to playlists + embed so it also works for creators without playlists.
- ✅ Three separate tabs, three separate arrays —
videos,reposts, andlikedVideosare distinct fields with independent on/off toggles and caps. - ✅ No headless browser — pure HTTP with browser-grade TLS fingerprinting and in-process request signing (no Chromium, Puppeteer, or Playwright). Lighter and cheaper to run than browser-based scrapers.
- ✅ First 10 videos per profile are free — profile-only lead-gen runs are effectively priced at the per-profile rate.
- ✅ Robust by default — automatic proxy-session rotation on block pages, 5 retries with exponential backoff on 403/429/5xx, and isolated proxy sessions per creator.
How it compares
| Official TikTok API | Typical TikTok scraper | This actor | |
|---|---|---|---|
| Access | Application/OAuth required | Varies | No login, no API key |
| Bio contacts (email/phone/socials) | ❌ | Usually ❌ | ✅ 9 types |
| Engagement analytics | Raw counts only | Usually raw counts | ✅ 25+ computed metrics |
| Reposts + Liked tabs | ❌ | Usually own videos only | ✅ separate arrays |
| Sponsored-post detection | ❌ | Rare | ✅ |
| Browser required | n/a | Often (Playwright) | ❌ pure HTTP |
| First videos free | ❌ | ❌ | ✅ first 10 / profile |
What data can you extract from a TikTok profile?
Profile fields (always returned)
| Field | Description |
|---|---|
id, secUid | TikTok internal user IDs |
username, nickname | Handle and display name |
signature | Bio text (Unicode-safe: emoji, Cyrillic, CJK, Arabic) |
bioLink, bioLinkRisk | Bio website link + TikTok's risk flag |
verified, private, secret, ftc | Account status flags |
ttSeller, commerceUser | Seller / business-account flags |
category, categoryButton | Business category |
region, language | Locale |
openFavorite | Whether liked videos are public |
createTime | Account creation timestamp |
avatar | thumb / medium / large image URLs |
followerCount, followingCount, heartCount, videoCount, friendCount, diggCount | Core stats |
profileUrl | Canonical profile URL |
Video item fields (videos, reposts, likedVideos)
| Field | Description |
|---|---|
id, desc, createTime, duration | Core video info |
playCount, diggCount, commentCount, shareCount, collectCount | Engagement stats |
cover, dynamicCover, playUrl, downloadUrl | Media URLs |
width, height, ratio, format, definition | Video technicals |
isAd, isPinned, sponsored | Ad / pinned / sponsored flags |
hashtags[], mentions[] | Parsed from caption |
music | {id, title, authorName, album, duration, original, coverLarge, playUrl} |
source | creator_feed / playlist / embed / repost / liked |
playlistId, playlistName | Set when the video came from a playlist |
authorUsername, webVideoUrl | Author handle + shareable video URL |
Contacts (when extractContacts=true)
emails[], phones[], websites[], instagram[], youtube[], twitter[], telegram[], whatsapp[], snapchat[]
Analytics (when computeAnalytics=true)
- Profile-level (computable without fetching any videos):
accountAgeDays,followerToFollowingRatio,avgLikesPerVideo,followersPerVideo,totalHeartsPerFollower - Video-level:
videosAnalyzed,avgViews,medianViews,avgLikes,avgComments,avgShares,engagementRate,engagementRateByViews,viralRatio,sponsoredCount,sponsoredRatio,originalAudioRatio,topHashtags[{tag,count}],topSounds[{id,title,count}],postsPerWeek,bestHourUtc,bestWeekday,lastPostAt,firstPostAt
How to scrape TikTok profiles step by step
- Create a free Apify account — new accounts get free platform credits every month, enough to test this scraper without paying.
- Open the TikTok Profile Scraper and go to the Input tab.
- Add TikTok profiles — usernames (
nike,@khaby.lame) or full URLs (https://www.tiktok.com/@mrbeast). A run needs at least 10 profiles. - Choose what to collect — set
maxVideosPerProfile, toggle reposts/liked/contacts/analytics as needed. - Click Start and wait for the run to finish.
- Export your data — Download the dataset as JSON, CSV, Excel, XML, or HTML, or pull it via the Apify API.
How to get more than 10 videos per profile (and how billing works)
The first 10 videos per profile are free — that count covers videos + reposts + likedVideos combined. To pull more, raise maxVideosPerProfile (up to 2,000). Only videos beyond the first 10 are billed, at $0.0003 each ($0.0002 on paid plans).
The actor paginates the creator's own-videos feed and, if needed, falls back to playlists and the embed endpoint. TikTok's feed typically exposes 100–300 videos per creator; very old back-catalog (2+ years) may not be reachable for every account. Set maxVideosPerProfile=0 for the cheapest possible run — profile metadata, bio contacts, and profile-level analytics only, with no video charges at all.
Lead generation from TikTok bios
Set maxVideosPerProfile=0, extractContacts=true, and computeAnalytics=true to turn a list of creators into an outreach-ready lead list at the per-profile rate. The parser reads both the bio text and the bio-link, extracting:
- Emails — standard (
hello@brand.com) and obfuscated variants (hello [at] brand [dot] com,hello(at)brand(dot)com) - Phone numbers — international formats
- Social handles — Instagram, YouTube, Twitter/X, Telegram, WhatsApp, Snapchat
- Websites — any non-social link in the bio
Combine this with the profile-level analytics (followerToFollowingRatio, totalHeartsPerFollower, business category, region) to qualify leads before you reach out.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
profiles | Array | — | TikTok usernames or profile URLs. Required, minimum 10 per run. |
maxVideosPerProfile | Integer | 30 | Creator's own videos (0–2000). 0 disables video fetching. |
includeReposts | Boolean | false | Scrape the Reposts tab into reposts[]. |
maxRepostsPerProfile | Integer | 30 | Cap when includeReposts=true (0–2000). |
includeLikedVideos | Boolean | false | Scrape the Liked tab into likedVideos[] (requires public likes). |
maxLikedVideosPerProfile | Integer | 30 | Cap when includeLikedVideos=true (0–2000). |
extractContacts | Boolean | true | Parse bio + bio-link for emails, phones, socials, websites. |
computeAnalytics | Boolean | true | Compute engagement analytics. |
detectSponsored | Boolean | true | Flag sponsored / paid-partnership posts. |
maxConcurrency | Integer | 3 | Parallel profiles fetched at once (1–20). |
proxyConfiguration | Object | Residential US | Proxy settings (Apify Residential recommended). |
Ready-to-paste input recipes
1. Standard: profiles + 30 videos + analytics + contacts
{"profiles": ["nike", "khaby.lame", "charlidamelio", "bellapoarch", "zachking", "mrbeast", "willsmith", "spencerx", "dominik.reselj", "therock"],"maxVideosPerProfile": 30,"extractContacts": true,"computeAnalytics": true}
2. Cheapest lead generation: bio contacts only, no video charges
{"profiles": ["nike", "khaby.lame", "charlidamelio", "bellapoarch", "zachking", "mrbeast", "willsmith", "spencerx", "dominik.reselj", "therock"],"maxVideosPerProfile": 0,"extractContacts": true,"computeAnalytics": true}
3. Deep catalog pull: up to 500 videos per creator
{"profiles": ["nike", "khaby.lame", "charlidamelio", "bellapoarch", "zachking", "mrbeast", "willsmith", "spencerx", "dominik.reselj", "therock"],"maxVideosPerProfile": 500,"computeAnalytics": true,"detectSponsored": true}
4. All tabs: own videos + reposts + liked
{"profiles": ["nike", "khaby.lame", "charlidamelio", "bellapoarch", "zachking", "mrbeast", "willsmith", "spencerx", "dominik.reselj", "therock"],"maxVideosPerProfile": 100,"includeReposts": true,"maxRepostsPerProfile": 20,"includeLikedVideos": true,"maxLikedVideosPerProfile": 20}
5. Influencer vetting: analytics + sponsored cadence, light video sample
{"profiles": ["nike", "khaby.lame", "charlidamelio", "bellapoarch", "zachking", "mrbeast", "willsmith", "spencerx", "dominik.reselj", "therock"],"maxVideosPerProfile": 50,"computeAnalytics": true,"detectSponsored": true,"extractContacts": true}
6. High-throughput batch: 20 parallel profiles
{"profiles": ["nike", "khaby.lame", "charlidamelio", "bellapoarch", "zachking", "mrbeast", "willsmith", "spencerx", "dominik.reselj", "therock"],"maxVideosPerProfile": 20,"maxConcurrency": 20,"extractContacts": true}
Output examples
Creator with full video catalog
{"input": "psiho.kisa","success": true,"scrapedAt": "2026-04-17T13:15:42.108Z","id": "7500221045031306273","secUid": "MS4wLjABAAAAC2PPjB3_...","username": "psiho.kisa","nickname": "Кисы","signature": "ДРУГ КИСА · 4-5","bioLink": null,"verified": false,"region": "RU","category": null,"followerCount": 326901,"followingCount": 3,"heartCount": 16800000,"videoCount": 121,"avatar": { "thumb": "https://...", "medium": "https://...", "large": "https://..." },"videos": [{"id": "7625229188693232918","desc": "Признаки, что у тебя Мифомания? Кисы объясняют!","createTime": 1775387026,"duration": 76,"playCount": 2000000,"diggCount": 156500,"commentCount": 612,"shareCount": 10700,"collectCount": 13818,"cover": "https://...","playUrl": "https://...","hashtags": [],"mentions": [],"music": { "title": "original sound", "authorName": "ДРУГ КИСА", "original": true },"source": "creator_feed","isPinned": false,"sponsored": false,"authorUsername": "psiho.kisa","webVideoUrl": "https://www.tiktok.com/@psiho.kisa/video/7625229188693232918"}],"videosSourceCounts": { "creator_feed": 50, "playlists": 0, "embed": 0 },"reposts": null,"likedVideos": null,"contacts": {"emails": [], "phones": [], "websites": [],"instagram": [], "youtube": [], "twitter": [],"telegram": [], "whatsapp": [], "snapchat": []},"analytics": {"accountAgeDays": 512,"followerToFollowingRatio": 108967.0,"avgLikesPerVideo": 138843.0,"followersPerVideo": 2701.66,"totalHeartsPerFollower": 51.39,"videosAnalyzed": 50,"avgViews": 1520000,"medianViews": 1100000,"avgLikes": 98200,"avgComments": 540,"avgShares": 6100,"engagementRate": 32.5,"engagementRateByViews": 6.8,"viralRatio": 0.12,"sponsoredCount": 0,"sponsoredRatio": 0.0,"originalAudioRatio": 0.96,"topHashtags": [{ "tag": "shorts", "count": 14 }],"topSounds": [{ "id": "...", "title": "original sound", "count": 38 }],"postsPerWeek": 3.8,"bestHourUtc": 16,"bestWeekday": "Tuesday","lastPostAt": 1775387026,"firstPostAt": 1748879546},"engagementRate": 32.5,"avgViews": 1520000}
Lead generation (bio-contact) record
{"input": "chef_smith","success": true,"username": "chef_smith","nickname": "Chef Smith","followerCount": 82000,"category": "Food & Beverage","region": "US","contacts": {"emails": ["bookings@chefsmith.com"],"phones": ["+15551234567"],"websites": ["https://chefsmith.com"],"instagram": ["chef_smith_ig"],"youtube": [], "twitter": [],"telegram": [], "whatsapp": [], "snapchat": []}}
Failed input
{"input": "this_user_does_not_exist","success": false,"error": "Profile @this_user_does_not_exist not found (404)","scrapedAt": "2026-04-17T13:15:42.108Z"}
How much does it cost to scrape TikTok profiles?
This actor is pay-per-event — you pay a fixed price per result, not for compute time.
| Event | Free tier | Paid plans | When it fires |
|---|---|---|---|
| Profile scraped | $0.004 | from $0.003 | Once per successfully scraped profile |
| Video scraped (over 10) | $0.0003 | from $0.0002 | Per video beyond the first 10 per profile |
| Actor start | $0.00005 | $0.00005 | Once per run |
The first 10 videos per profile are free (own videos + reposts + liked combined). You're only charged for video overflow when you ask for more than 10.
Worked examples
| Scenario | Per profile | Cost for 1,000 profiles |
|---|---|---|
Profile only (maxVideosPerProfile=0) | $0.004 | $4.00 ($3.00 on paid plans) |
| Profile + 30 videos (20 billable) | $0.004 + 20×$0.0003 = $0.010 | $10.00 |
| Profile + 100 videos (90 billable) | $0.004 + 90×$0.0003 = $0.031 | $31.00 |
That works out to roughly $0.30 per 1,000 extra videos ($0.20 on paid plans). New Apify accounts get free monthly platform credits — enough to scrape hundreds of profiles before paying anything. All prices are all-inclusive: proxies and platform usage are already covered by the per-event price.
Integrations
Push TikTok data straight into your stack — no glue code required:
- Make, Zapier, n8n — trigger workflows on new results
- Google Sheets & Google Drive — sync leads and analytics to a spreadsheet
- Slack — post alerts when a run finishes
- Webhooks — fire your own endpoint on run completion
- Apify API + JavaScript / Python clients — call the actor programmatically
- Schedules — run daily/weekly to monitor creators and competitors
Use with AI agents (MCP)
This actor is available through the Apify MCP server, so AI assistants (Claude, ChatGPT, and any MCP-compatible agent framework) can run it with natural language. Point your MCP client at https://mcp.apify.com and ask, for example:
"Scrape the TikTok profiles nike, mrbeast and charlidamelio, pull their last 30 videos, extract any bio contact emails, and give me each account's engagement rate."
Popular use cases
- Influencer discovery & vetting — filter by follower range, engagement rate, business category, and posting frequency before you partner.
- Lead generation — extract emails, phones, and social handles from creator bios into a CSV or Google Sheet.
- Creator analytics — engagement rate, viral ratio, sponsored cadence, best posting times, top hashtags and sounds.
- Competitor monitoring — track follower growth, engagement trends, and sponsored-post frequency on a schedule.
- Brand-safety & partnership research — detect sponsored markers and collaboration patterns before signing.
- Content research — top sounds per niche, hashtag frequency, caption and duration patterns.
- Market & academic research — audience-quality signals like follower-to-following ratio, hearts-per-follower, and account age.
Is it legal to scrape TikTok?
Scraping publicly available data is generally legal, and this actor only ever accesses public profile pages — it never logs in, so it doesn't accept any Terms of Service that require authentication, and it never touches private or password-protected content. Bio contacts (emails, phones, socials) are only the ones creators chose to publish publicly in their own bio.
That said, personal data is regulated. If you collect contact information, you are responsible for complying with applicable laws — including GDPR, CCPA, and anti-spam rules like CAN-SPAM — and for having a legitimate reason to process it. When in doubt, consult a lawyer. See Apify's guide: Is web scraping legal?
FAQ
Does TikTok have a public API I can use instead?
Not a practical one. TikTok's Research API is application-gated (approved academics/orgs), and the Display API requires per-user OAuth login. This actor works as an unofficial TikTok API over public data — no login or key required.
Do I need a TikTok account or login?
No. The scraper only reads public profile pages. No account, cookies, or credentials needed.
Do I need to set up proxies?
No. Residential proxy rotation and anti-bot handling are built in (Apify Residential by default). You can plug in your own residential proxy in proxyConfiguration if you prefer.
How many profiles do I have to scrape at once?
A run requires at least 10 profiles. There's no upper limit — batch thousands in one run and tune maxConcurrency (up to 20) for speed.
How many videos can I get per profile?
Up to 2,000 via maxVideosPerProfile. In practice TikTok's feed exposes 100–300 videos for most creators; the actor paginates the creator feed and falls back to playlists + embed.
Can I extract emails and contact info from TikTok bios?
Yes — set extractContacts=true. The parser handles standard emails (hello@brand.com), obfuscated variants (hello [at] brand [dot] com), phone numbers, and Instagram/YouTube/Twitter/Telegram/WhatsApp/Snapchat handles and websites. Results land in contacts.
Can I compute engagement rate without fetching videos?
Yes — set maxVideosPerProfile=0 and computeAnalytics=true. You get profile-level ratios (avgLikesPerVideo, totalHeartsPerFollower, followerToFollowingRatio) at the per-profile price with no video charges.
Will I be charged for the first videos?
No. The first 10 videos per profile are free (own + reposts + liked combined). You only pay for videos beyond 10.
Will I be charged for profiles that don't exist or return nothing?
Failed inputs (404, no data) are logged but not pushed to the dataset and don't trigger the profile-scraped charge. You pay only for profiles that scrape successfully.
Can I scrape private accounts?
TikTok blocks all video endpoints for private profiles. The actor still returns public metadata (nickname, verification, counts) and marks the run successful, but videos[] will be empty.
What are the videos, reposts, and likedVideos arrays?
Three separate TikTok tabs, three separate arrays: videos = own uploads, reposts = reposted content (includeReposts=true), likedVideos = liked videos when the user made likes public (includeLikedVideos=true). Each is null when its feature is off — so you can tell "disabled" from "empty".
Why did I get fewer videos than I asked for?
The creator may simply have fewer public videos, or their older back-catalog isn't reachable via the feed. Private accounts return zero videos by design.
Does it launch a browser?
No. Pure HTTP with browser-grade TLS fingerprinting; TikTok API requests are signed in-process. No Chromium, Puppeteer, or Playwright.
Which languages and regions are supported?
All of them. Bios and captions preserve Unicode (emoji, Cyrillic, CJK, Arabic, etc.), and contact extraction works across scripts.
What export formats are available?
JSON, CSV, Excel, XML, and HTML — from the dataset UI or the Apify API.
Can I run this on a schedule?
Yes. Use Apify Schedules for daily/weekly monitoring of creators or competitors.
Why am I seeing 403 or 429 errors?
Usually proxy quality. The actor auto-retries 5× with backoff and rotates to a fresh residential session on block pages; switching to Apify Residential or a cleaner pool resolves most cases.
Feedback & support
Found a bug or want a new field? Open an issue on the Issues tab, or email afrcanec@gmail.com. Sharing your run URL helps us reproduce problems faster.
More scrapers by this developer
- TikTok Shop Scraper & Analytics — products, shops, and sales analytics from TikTok Shop
- Instagram Scraper — Posts, Profiles, Followers & Hashtags
- Threads Scraper — Posts, Profiles & Replies
- Ultimate YouTube Scraper — Videos, Transcripts & Comments
- Website Contact Scraper — Bulk Emails, Phones & Socials — pair with TikTok leads to enrich websites
- Reddit Scraper All-in-One — Posts, Comments & Email Finder
Tags: TikTok Profile Scraper, TikTok User Scraper, TikTok API, Unofficial TikTok API, TikTok Analytics, TikTok Engagement Rate Calculator, TikTok Email Extractor, TikTok Bio Scraper, TikTok Influencer Finder, TikTok Creator Analytics, TikTok Follower Counter, TikTok Video Scraper, TikTok Profile Data Extractor, TikTok Lead Generation, TikTok Contact Scraper, Extract TikTok Emails, TikTok Reposts Scraper, TikTok Liked Videos Scraper, TikTok Hashtag Analyzer, TikTok Sponsored Post Detection, Creator Contact Finder, Social Media Analytics, Influencer Marketing Tool, TikTok Bio Link Parser, TikTok Verified Account Checker, TikTok Business Account Finder, TikTok Seller Finder, Creator Discovery Tool, Social Media Lead Extractor, TikTok Audience Analytics, TikTok Posting Frequency, TikTok Viral Score, TikTok Content Research, TikTok Music Scraper, TikTok Sound Analytics, Brand Safety Audit TikTok, Niche Creator Discovery, Influencer Outreach List Builder