TikTok Scraper — Profiles, Videos, Comments & Search avatar

TikTok Scraper — Profiles, Videos, Comments & Search

Pricing

from $1.50 / 1,000 profile scrapeds

Go to Apify Store
TikTok Scraper — Profiles, Videos, Comments & Search

TikTok Scraper — Profiles, Videos, Comments & Search

Stop paying $3.70/1K for TikTok data. 7 scrapers in one actor. Profiles, videos, hashtags, comments, search — 30-68% cheaper than Clockworks. 29 fields, Clockworks-compatible output. MCP-ready for AI agents. No proxy needed. Integrates w n8n, Make, Zapier, Google Sheets.

Pricing

from $1.50 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Japi Cricket

Japi Cricket

Maintained by Community

Actor stats

0

Bookmarked

21

Total users

8

Monthly active users

11 hours ago

Last modified

Share

What does All-in-One TikTok Scraper do?

Scrape TikTok profiles, videos, comments & user search — no proxy needed, no login required. 30–68% cheaper than Clockworks with the same output fields — drop-in replacement. 7 modes, pay-per-result from $0.40/1K. Works with AI agents (Claude, GPT, Cursor) via MCP.

Unlike Clockworks which splits TikTok scraping into 13 separate actors, this scraper combines 7 modes in one actor — one integration to maintain, one API to learn, one pricing page to check.

Why choose this over 5 separate TikTok scrapers?

  • No proxy needed — all modes work on standard Apify infrastructure (competitors require residential proxies)
  • 7 modes in one actor — profiles, videos, hashtags, comments, user search, all-in-one, data extractor
  • 30–68% cheaper than Clockworks across all modes
  • Clockworks-compatible output — same field names, same structure — drop-in replacement
  • HTTP-only, 256 MB — no bloated browser, minimal compute costs
  • AI-ready — works with Claude, GPT, and Cursor via MCP protocol

Getting Started

  1. Click "Try for free" at the top of this page
  2. Choose a scraping mode (Profiles, Videos, Comments, User Search, All-in-One, or Data Extractor)
  3. Paste TikTok usernames, video URLs, or search queries
  4. Click Start — results appear in the Dataset tab within seconds
  5. Download as JSON, CSV, or Excel — or connect via API, n8n, Make, or Zapier

No proxy needed. No login required. Just paste and scrape.

Easiest Way to Start: Paste a Username or URL

Just paste any TikTok username or URL and hit Start. The scraper auto-detects what you want:

InputAuto-Detected
charlidamelioProfile scraping
@khaby.lameProfile scraping (@ stripped automatically)
https://www.tiktok.com/@mrbeastProfile scraping (URL parsed)
https://www.tiktok.com/@user/video/7625055547116522765Video scraping

7 Scraping Modes

ModeDescriptionInput FieldBest For
Profile ScraperScrape TikTok user profiles with full statsprofilesInfluencer research, lead generation
Video ScraperScrape specific videos with full engagement datapostURLsContent analysis, trend tracking
User SearchLook up TikTok users by usernamesearchQueriesCreator discovery, competitor research
Comments ScraperScrape video comments with likes and repliespostURLsSentiment analysis, audience insights
Hashtag ScraperScrape hashtag metadata + trending videoshashtagsTrend analysis, hashtag research
All-in-OneDiscover + scrape videos from profilesprofilesComprehensive data collection
Data ExtractorLightweight version of All-in-OneprofilesQuick data extraction, cost-sensitive

Which Mode Should I Use?

Your GoalUse This ModeWhy
"I need creator profiles for outreach"Profile Scraper + User SearchGet follower stats, bio, verified status for 100+ creators in one run
"I'm analyzing a viral video's engagement"Video ScraperFull stats (likes, views, shares, saves, reposts) + music metadata + author info in 29 fields
"I want to find a creator but don't know their exact handle"User SearchFuzzy matching finds @gordonramsayofficial from just "gordonramsay" — tries 21 variations
"I need comment sentiment for a brand"Comments ScraperFull comment text, likes, threaded replies (up to 50/comment), author info, language detection
"I'm building a TikTok analytics dashboard"All-in-OneProfiles + videos in one run — feed directly into Google Sheets, Airtable, or your data warehouse
"I want to research a trending hashtag"Hashtag ScraperGet video count, view count, and trending videos for any hashtag
"I just need quick data, keep it simple"Data ExtractorSame as All-in-One but at a lower price point — ideal for high-volume, cost-sensitive workloads

Pricing — Pay Per Result, No Monthly Fee

ModePrice per 1,000Clockworks PriceYou Save
Comments Scraperfrom $0.40$1.25/1K68%
Data Extractorfrom $1.38$2.00/1K31%
Profile Scraperfrom $1.50$4.00/1K63%
All-in-Onefrom $1.50$3.70/1K59%
User Searchfrom $2.00$3.23/1K38%
Video Scraperfrom $3.10$5.00/1K38%

"From" prices are for Business/Gold tier. Free tier prices are higher (e.g. Profile $2.40/1K). See the Pricing tab for exact tier pricing. No proxy needed. No add-on fees.

Cost examples:

  • 100 profiles: $0.15 (Business) / $0.24 (Free)
  • 1,000 video comments: $0.40 (Business) / $0.65 (Free)
  • 500 videos with engagement: $1.55 (Business) / $2.50 (Free)
  • 10,000 comments: $4.00 (Business) — cheapest entry point

Apify Subscription Discounts: Higher Apify plans get automatic discounts. Scale (5% off), Business (10% off), Enterprise (15% off).

Why This TikTok Scraper?

FeatureThis ScraperClockworksApi DojoScraptik
Profiles / 1K$1.50$4.00$0.30~$2.00
Videos / 1K$3.10$5.00$0.30~$2.00
Comments / 1K$0.40$1.25~$2.00
Proxy requiredNoInternal onlyNoManaged
Hashtag scrapingYesYes ($5/1K)NoNo
Modes in one actor713 separate11
Memory256 MB4096 MB
Clockworks-compatibleYesNoNo
Comment threadingYes (50 replies/comment)Yes
MCP for AI agentsYesYesNoNo

Key advantages:

  • One actor, 7 modes — Clockworks splits into 13 separate actors, each requiring its own integration
  • No proxy needed — all modes work on Apify's standard infrastructure
  • 256 MB HTTP-only — 16x less memory than Clockworks (4096 MB), lower compute costs
  • Clockworks drop-in replacement — identical field names and structure

Mode 1: Profile Scraper (tiktok-profile-scraper)

Scrape TikTok user profiles with full stats — followers, following, hearts, video count, bio, avatar, verified status.

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-profile-scraper"
profilesarrayYesTikTok usernames, @handles, or full profile URLs. Duplicates removed automatically.
resultsPerPageintegerNoMax results (default: 100)
proxyConfigurationobjectNoNot needed — all modes work without proxy

Input Example

{
"scrapeMode": "tiktok-profile-scraper",
"profiles": ["charlidamelio", "khaby.lame", "mrbeast", "zachking", "addisonre"]
}

Output Fields — 22 fields

FieldTypeDescription
idstringTikTok user ID
namestringUsername (uniqueId)
nickNamestringDisplay name
verifiedbooleanVerified account
signaturestringBio text
avatarstringAvatar thumbnail URL
avatarMediumstringMedium-size avatar URL
originalAvatarUrlstringFull-size avatar URL (highest resolution)
bioLinkstringLink in bio (null if not set)
privateAccountbooleanPrivate account
ttSellerbooleanTikTok Shop seller
roomIdstringLive room ID (empty if not live)
fansintegerFollower count
followingintegerFollowing count
friendsintegerFriends count
heartintegerTotal likes received (handles int32 overflow for billions)
videointegerVideo count
diggintegerLiked videos count (always 0 — TikTok removed this)
secUidstringSecure user ID (needed for API calls)
profileUrlstringFull profile URL
regionstringRegion code (usually null)
inputstringInput that produced this result

Output Example

{
"id": "127905465618821121",
"name": "khaby.lame",
"nickName": "Khabane lame",
"verified": true,
"signature": "Se vuoi ridere sei nel posto giusto",
"avatar": "https://p16-common-sign.tiktokcdn-us.com/...",
"avatarMedium": "https://p19-common-sign.tiktokcdn-us.com/...",
"originalAvatarUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"bioLink": null,
"privateAccount": false,
"ttSeller": false,
"roomId": "",
"fans": 160600000,
"following": 86,
"friends": 76,
"heart": 2579326267,
"video": 1314,
"digg": 0,
"secUid": "MS4wLjABAAAAwAg0rSzO65WQfz4RzQgGv2Xdv108BgPXhRrrmNVIHQZ9PO8-flwwRtEppYTS0OjA",
"profileUrl": "https://www.tiktok.com/@khaby.lame",
"region": null,
"input": "khaby.lame"
}

Real test result from Build 0.1.105, April 2026.

Use Cases

  • Influencer research — compare follower counts, engagement rates, and verified status across creators
  • Lead generation — build lists of TikTok creators with their profile data for outreach
  • Competitor monitoring — track follower growth and video count over time
  • Brand safety — check verified status and bio content before partnerships
  • Academic research — collect structured profile data for social media studies

How to Run

Apify Console: Select "Profile Scraper" mode, paste usernames, click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-profile-scraper",
"profiles": ["charlidamelio", "khaby.lame", "mrbeast"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"@{item['name']}: {item['fans']:,} followers, {item['heart']:,} likes")

Mode 2: Video Scraper (tiktok-video-scraper)

Scrape specific TikTok videos by URL with full engagement data — likes, views, shares, comments, saves, reposts, plus author info, music metadata, and video technical data.

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-video-scraper"
postURLsarrayYesTikTok video URLs or video IDs. Duplicates removed automatically.
proxyConfigurationobjectNoNot needed

Input Example

{
"scrapeMode": "tiktok-video-scraper",
"postURLs": [
"https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"https://www.tiktok.com/@khaby.lame/video/7505030969712217366"
]
}

Output Fields — 29 fields

CategoryFields
Coreid, text, createTime, createTimeISO, webVideoUrl, mediaUrls[], textLanguage
EngagementdiggCount, shareCount, playCount, collectCount, commentCount, repostCount
FlagsisAd, isMuted, isPinned, isSlideshow, isSponsored, locationCreated
AuthorauthorMeta.id, .name, .profileUrl, .nickName, .verified, .signature, .bioLink, .avatar, .originalAvatarUrl, .privateAccount, .ttSeller, .roomId, .commerceUserInfo.commerceUser, .createTime, .following, .friends, .fans, .heart, .video, .digg
MusicmusicMeta.musicName, .musicAuthor, .musicOriginal, .musicAlbum, .playUrl, .coverMediumUrl, .musicId, .originalCoverMediumUrl
VideovideoMeta.height, .width, .duration, .coverUrl, .definition, .format, .transcriptionLink, .originalCoverUrl
Socialhashtags[], mentions[], detailedMentions[], effectStickers[] (with .stickerStats.useCount), slideshowImageLinks[]

Output Example

{
"id": "7625055547116522765",
"text": "new youtube video out now!!! dc @Brett Sewell",
"createTime": 1775346609,
"createTimeISO": "2026-04-04T23:50:09.000Z",
"diggCount": 41400,
"playCount": 334800,
"shareCount": 482,
"commentCount": 599,
"collectCount": 1446,
"repostCount": 0,
"webVideoUrl": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"isAd": false,
"isPinned": false,
"isSlideshow": false,
"locationCreated": "US",
"textLanguage": "en",
"authorMeta": {
"id": "5831967",
"name": "charlidamelio",
"nickName": "charli d'amelio",
"verified": true,
"createTime": 1447505838,
"fans": 156800000,
"heart": 12000000000
},
"musicMeta": {
"musicName": "son original",
"musicAuthor": "Daniel Ralph",
"musicOriginal": true,
"originalCoverMediumUrl": "https://p16-common-sign.tiktokcdn-us.com/..."
},
"videoMeta": {
"height": 1280,
"width": 720,
"duration": 13,
"definition": "720p",
"format": "mp4",
"transcriptionLink": null
},
"mentions": ["@Brett Sewell"],
"detailedMentions": [{"id": "6995320156201812997", "name": "brett.sewell", "nickName": "Brett Sewell"}],
"effectStickers": [],
"hashtags": [],
"submittedVideoUrl": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"input": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765"
}

Real test result from Build 0.1.105, April 2026.

Use Cases

  • Trend tracking — monitor viral videos with play counts, likes, shares, and saves over time
  • Content analysis — analyze video performance by format (duration, definition), music, hashtags
  • Campaign measurement — track engagement metrics on sponsored or branded content
  • Competitive intelligence — compare engagement rates across competing creators' videos
  • Music trend analysis — identify trending sounds and original vs. reused audio

How to Run

Apify Console: Select "Video Scraper" mode, paste video URLs, click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-video-scraper",
"postURLs": [
"https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"https://www.tiktok.com/@khaby.lame/video/7505030969712217366",
],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Video {item['id']}: {item['playCount']:,} views, {item['diggCount']:,} likes")

Mode 3: User Search (tiktok-user-search-scraper)

Search for TikTok users by username or keyword. Uses fuzzy matching — searching "gordonramsay" finds @gordonramsayofficial automatically (tries 21 username variations).

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-user-search-scraper"
searchQueriesarrayYesUsernames or keywords to search. Duplicates removed automatically.
maxProfilesPerQueryintegerNoMax profiles per query (default: 10, max: 100)
proxyConfigurationobjectNoNot needed

Input Example

{
"scrapeMode": "tiktok-user-search-scraper",
"searchQueries": ["gordonramsay", "addisonre", "zachking"],
"maxProfilesPerQuery": 3
}

Output Fields — 22 fields

Same output as Profile Scraper (Mode 1). See Mode 1 output fields table.

Output Example

{
"id": "6840164168579728389",
"name": "dance",
"nickName": "Phoenix Dance Studio",
"verified": false,
"signature": "The Official @dance on TikTok",
"fans": 33300,
"following": 6,
"friends": 4,
"heart": 2043,
"video": 0,
"secUid": "MS4wLjABAAAAkV6s6lQu-8pXYcs8A84O5Anoj-8i2PVUO9WWgsM-LfYC2_lNP8swHcp9vUh160XU",
"profileUrl": "https://www.tiktok.com/@dance",
"input": "dance"
}

Use Cases

  • Creator discovery — find creators by topic or niche when you don't know their exact handle
  • Competitor research — find related accounts in your industry
  • Influencer mapping — build lists of creators around specific keywords
  • Handle verification — confirm which account belongs to a person or brand

How to Run

Apify Console: Select "User Search" mode, enter search queries, click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-user-search-scraper",
"searchQueries": ["gordonramsay", "addisonre"],
"maxProfilesPerQuery": 3,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"@{item['name']}: {item['fans']:,} followers")

Mode 4: Comments Scraper (tiktok-comments-scraper)

Scrape video comments with likes, reply threading, author info, and language detection. Clockworks-compatible flat field structure — drop-in replacement for clockworks/tiktok-comments-scraper.

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-comments-scraper"
postURLsarrayYesTikTok video URLs. Comments are scraped from each video.
resultsPerPageintegerNoMax comments per video (default: 100, max: 1000)
proxyConfigurationobjectNoNot needed

Input Example

{
"scrapeMode": "tiktok-comments-scraper",
"postURLs": ["https://www.tiktok.com/@charlidamelio/video/7625055547116522765"],
"resultsPerPage": 100
}

Output Fields — 18 fields (Clockworks-compatible)

FieldTypeDescription
cidstringComment ID
textstringComment text
createTimeintegerUnix timestamp
createTimeISOstringISO timestamp
diggCountintegerComment likes
replyCommentTotalintegerNumber of replies
likedByAuthorbooleanLiked by video author
pinnedByAuthorbooleanPinned by video author
uidstringCommenter user ID
uniqueIdstringCommenter username
avatarThumbnailstringCommenter avatar URL
mentionsarrayMentioned usernames (e.g. ["@user1"])
detailedMentionsarrayMention details ([{id, name, nickName, profileUrl}])
repliesToIdstring/nullParent comment ID (null for top-level comments)
submittedVideoUrlstringInput video URL
videoWebUrlstringParent video URL
inputstringInput that produced this result
replies[]arrayThreaded replies (up to 50 per comment, same fields)

Output Example

{
"cid": "7625056288929645325",
"text": "Well ate",
"createTime": 1775346788,
"createTimeISO": "2026-04-04T23:53:08.000Z",
"diggCount": 343,
"replyCommentTotal": 8,
"likedByAuthor": false,
"pinnedByAuthor": false,
"uid": "7476947021740459054",
"uniqueId": "thesky.miller",
"avatarThumbnail": "https://p16-common-sign.tiktokcdn-us.com/...",
"mentions": [],
"detailedMentions": [],
"repliesToId": null,
"submittedVideoUrl": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"videoWebUrl": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"input": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"replies": [
{
"cid": "7625064705137492767",
"text": "hi sky mi like you",
"createTime": 1775348740,
"createTimeISO": "2026-04-05T00:25:40.000Z",
"diggCount": 2,
"replyCommentTotal": 0,
"repliesToId": "7625056288929645325"
}
]
}

Real test result from Build 0.1.105, April 2026.

Use Cases

  • Sentiment analysis — analyze comment text and language for brand perception
  • Audience insights — understand who's engaging with content (verified users, top commenters)
  • Community management — monitor comments for questions, complaints, or mentions
  • Content strategy — identify which videos generate the most discussion
  • Research — collect public discourse data for academic or market studies

How to Run

Apify Console: Select "Comments Scraper" mode, paste video URLs, click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-comments-scraper",
"postURLs": ["https://www.tiktok.com/@charlidamelio/video/7625055547116522765"],
"resultsPerPage": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"@{item['uniqueId']}: {item['text'][:50]}... ({item['diggCount']} likes)")

Mode 5: Hashtag Scraper (tiktok-hashtag-scraper)

Scrape TikTok hashtag metadata (video count, view count) and discover trending videos for each hashtag. Works best with an external proxy (Bright Data, Oxylabs) — on Apify standard IPs, the challenge API may return limited data.

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-hashtag-scraper"
hashtagsarrayYesHashtag names (without #). E.g. ["fyp", "dance", "cooking"]
resultsPerPageintegerNoMax videos per hashtag (default: 100)
proxyConfigurationobjectNoRecommended: external proxy for best results

Input Example

{
"scrapeMode": "tiktok-hashtag-scraper",
"hashtags": ["fyp", "dance", "cooking"],
"resultsPerPage": 20
}

Output Fields — Hashtag Metadata

FieldTypeDescription
typestringAlways "hashtag"
hashtagstringHashtag name (without #)
challengeIdstringTikTok's internal hashtag ID
descriptionstringHashtag description
coverUrlstringHashtag cover image URL
videoCountintegerTotal videos using this hashtag
viewCountintegerTotal views for this hashtag
videosarrayArray of video objects (same 29-field format as Video Scraper)
inputstringInput that produced this result

Output Example

{
"type": "hashtag",
"hashtag": "dance",
"challengeId": "10000",
"description": "Share your best dance moves",
"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"videoCount": 450000000,
"viewCount": 2100000000000,
"videos": [],
"input": "dance"
}

Note: Video discovery from hashtag pages may be limited on Apify standard IPs due to TikTok's bot detection. Hashtag metadata (videoCount, viewCount) is more reliable. For full video lists, use an external proxy.

Use Cases

  • Trend research — identify trending hashtags by video and view count
  • Campaign planning — check hashtag popularity before launching a branded hashtag
  • Competitive analysis — compare hashtag performance across industries
  • Content strategy — find high-engagement hashtags to use in your videos

How to Run

Apify Console: Select "Hashtag Scraper" mode, enter hashtags (without #), click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-hashtag-scraper",
"hashtags": ["fyp", "dance", "cooking"],
"resultsPerPage": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
if item.get("type") == "hashtag":
print(f"#{item['hashtag']}: {item['videoCount']:,} videos, {item['viewCount']:,} views")

Mode 6: All-in-One (tiktok-scraper)

Discover and scrape recent videos from TikTok profiles. Finds video IDs via TikTok's embed page, then scrapes each video for full engagement data. Returns the same 29-field video output as Mode 2.

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-scraper"
profilesarrayYesTikTok usernames, @handles, or profile URLs
resultsPerPageintegerNoMax videos per profile (default: 100). Limited to ~10 via embed page discovery.
excludePinnedPostsbooleanNoSkip pinned posts (default: false)
proxyConfigurationobjectNoNot needed

Input Example

{
"scrapeMode": "tiktok-scraper",
"profiles": ["charlidamelio", "khaby.lame", "mrbeast"],
"resultsPerPage": 10
}

Output Fields — 29 fields

Same output as Video Scraper (Mode 2). See Mode 2 output fields table. Each result includes full video data with authorMeta containing the profile's stats.

Output Example

{
"id": "7625055547116522765",
"text": "new youtube video out now!!! dc @Brett Sewell",
"createTime": 1775346609,
"createTimeISO": "2026-04-04T23:50:09.000Z",
"diggCount": 41200,
"playCount": 331800,
"shareCount": 482,
"commentCount": 594,
"collectCount": 1436,
"repostCount": 0,
"webVideoUrl": "https://www.tiktok.com/@charlidamelio/video/7625055547116522765",
"authorMeta": {
"id": "5831967",
"name": "charlidamelio",
"nickName": "charli d'amelio",
"verified": true,
"createTime": 1447505838,
"fans": 156800000,
"heart": 12000000000
},
"musicMeta": {
"musicName": "son original",
"musicAuthor": "Daniel Ralph",
"musicOriginal": true
},
"videoMeta": {
"height": 1280,
"width": 720,
"duration": 13,
"definition": "720p"
},
"hashtags": [],
"mentions": ["@Brett Sewell"],
"input": "charlidamelio"
}

Real test result from Build 0.1.105, April 2026.

Use Cases

  • TikTok analytics dashboard — feed profile + video data into Google Sheets, Airtable, or Looker
  • Content calendar analysis — analyze posting frequency, timing, and engagement patterns
  • Influencer vetting — check recent content quality and engagement before partnerships
  • Trend detection — spot trending sounds, hashtags, and formats across multiple creators
  • Automated reporting — schedule weekly scrapes to track creator performance over time

How to Run

Apify Console: Select "All-in-One" mode, paste usernames, set results per page, click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-scraper",
"profiles": ["charlidamelio", "khaby.lame"],
"resultsPerPage": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
author = item.get("authorMeta", {}).get("name", "?")
print(f"@{author}: {item['text'][:40]}... | {item['playCount']:,} views")

Mode 7: Data Extractor (tiktok-data-extractor)

Lightweight version of All-in-One mode. Same video output, lower pricing tier. Ideal for high-volume, cost-sensitive workloads.

Input Parameters

ParameterTypeRequiredDescription
scrapeModestringYesSet to "tiktok-data-extractor"
profilesarrayYesTikTok usernames, @handles, or profile URLs
resultsPerPageintegerNoMax videos per profile (default: 100)
proxyConfigurationobjectNoNot needed

Input Example

{
"scrapeMode": "tiktok-data-extractor",
"profiles": ["charlidamelio"],
"resultsPerPage": 5
}

Output Fields — 29 fields

Same output as Video Scraper (Mode 2) and All-in-One (Mode 5). See Mode 2 output fields table.

Output Example

Same structure as Mode 5 All-in-One output. See Mode 5 output example.

Use Cases

  • Bulk data collection — scrape thousands of videos at the lowest per-result cost
  • Data warehousing — populate data lakes with TikTok content metadata
  • Machine learning — collect training data for content analysis models
  • Market research — large-scale analysis of content trends and creator behavior

How to Run

Apify Console: Select "Data Extractor" mode, paste usernames, click Start.

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={
"scrapeMode": "tiktok-data-extractor",
"profiles": ["charlidamelio", "khaby.lame", "mrbeast", "zachking", "addisonre"],
"resultsPerPage": 20,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Scraped {len(items)} videos from 5 profiles")

Download Your Data

After every run, download your data in any format:

  • JSON — for developers and API integrations
  • CSV — for spreadsheets and data analysis
  • Excel (XLSX) — for business users
  • XML — for data pipelines

Google Sheets: Use =IMPORTDATA() with the CSV download link for instant import.

All 7 Apify export formats available: JSON, JSONL, CSV, XLSX, XML, HTML Table, RSS.

MCP Integration for AI Agents

This scraper works with AI agents via the Model Context Protocol (MCP). Connect it to Claude Desktop, Cursor, GPT, or any MCP-compatible client.

Setup:

  1. Go to mcp.apify.com
  2. Add "All-in-One TikTok Scraper" to your MCP server
  3. Ask your AI: "Scrape the TikTok profile for charlidamelio and get follower stats"

Example prompts for your AI agent:

  • "Scrape the TikTok profile of charlidamelio"
  • "Get engagement stats for this TikTok video: [URL]"
  • "Search TikTok for fitness trainers"
  • "Get the latest comments on this viral TikTok"

Works with Claude Desktop, Cursor, GPT via MCP, and any other MCP-compatible AI client.

Integrations

n8n

  1. Add the Apify node in your n8n workflow
  2. Select "All-in-One TikTok Scraper" as the actor
  3. Configure the mode and input parameters
  4. Connect the output to your CRM, Google Sheets, or database

Make.com (Integromat)

  1. Add the Apify module to your scenario
  2. Select "Run Actor" and choose this scraper
  3. Map the JSON output fields to your downstream modules
  4. Use for automated trend monitoring, influencer tracking, or CRM syncing

Zapier

  1. Create a new Zap with Apify as the trigger or action
  2. Select "Run Actor" and configure with this scraper's actor ID
  3. Map output fields to Google Sheets, HubSpot, Salesforce, or Slack
  4. Trigger on schedule or from a webhook

REST API & SDKs

Use the Apify API, JavaScript SDK, or Python SDK for programmatic access:

curl "https://api.apify.com/v2/acts/get-leads~all-in-one-tiktok-scraper/runs?token=YOUR_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"scrapeMode": "tiktok-profile-scraper",
"profiles": ["charlidamelio"],
"resultsPerPage": 20
}'

Scheduled runs: Set up daily, weekly, or hourly scrapes directly in the Apify Console — no cron jobs or servers needed.

Key Features

  • 7 scraping modes including hashtag scraping for trend research
  • 29 data fields per video — full Clockworks compatibility
  • No proxy needed — all modes work on standard infrastructure
  • Pay per result — no monthly fee, no minimum
  • 30–68% cheaper than Clockworks across all modes
  • MCP-compatible for AI agents (Claude, GPT, Cursor)
  • Clockworks drop-in replacement — same output field names
  • Clockworks-compatible comments — flat field structure (cid, diggCount, uniqueId, pinnedByAuthor, repliesToId) matches Clockworks output exactly
  • Smart input parsing — paste URLs, @handles, or usernames — auto-detected
  • Automatic deduplication — duplicate inputs are removed before scraping
  • Parallel scraping — up to 3 concurrent requests for faster results
  • Memory-aware — automatically reduces concurrency if memory is high
  • Run summary — every run saves a summary.json to the key-value store with stats, duration, and success rate
  • Comment reply threading — automatically fetches replies for each comment (up to 50 replies per comment)
  • Error categorization — classifies failures as DELETED, RATE_LIMITED, FORMAT_CHANGE, NETWORK, or BLOCKED for easy debugging
  • Fuzzy username search — searching "gordonramsay" finds @gordonramsayofficial automatically (tries suffixes like official, real, tiktok + dot/underscore variations)

FAQ

How much does it cost to use All-in-One TikTok Scraper? Pay-per-result pricing from $0.40/1K (comments) to $3.10/1K (videos) at Business tier. Free tier starts at $0.65/1K. 30–68% cheaper than Clockworks across all modes. See the Pricing tab for exact costs.

Is there a monthly subscription? No. Pay only for what you scrape. No minimum, no commitment.

Do I need a proxy? No. All modes work without proxy on Apify's standard infrastructure.

What data do I get from video scraping? Full engagement data: likes (diggCount), views (playCount), shares, comments, saves (collectCount), reposts (repostCount), plus author info (with account creation date), music metadata (with original cover URL), video duration, hashtags, mentions, and cover images. 29 fields total per video.

Can I scrape comments? Yes. The comments scraper returns 18 Clockworks-compatible fields: comment text, likes (diggCount), reply count, pinned status, author info (uid, uniqueId, avatarThumbnail), mentions, and threading (repliesToId). Supports pagination up to the full comment count.

How does this compare to Clockworks TikTok scrapers? Same output fields, same data quality, 30–68% cheaper. Clockworks-compatible output format means you can switch without changing your data pipeline. We combine 7 modes in one actor — Clockworks splits into 13 separate actors.

Can I scrape thousands of profiles? Yes. Provide a list of usernames and the scraper processes them in parallel (3 concurrent) with built-in retry logic and error recovery.

How do I use this with AI agents? Connect via MCP at mcp.apify.com. Add this actor to your MCP server, then ask your AI to scrape TikTok.

How fast is it? Parallel scraping: 3 profiles/videos at once, 2 search queries at once. ~15 seconds per 20 profiles (with parallel). Comments: ~5 seconds per 100 comments. Video scraping: ~1-2 seconds per video. No proxy overhead.

What happens with private or deleted profiles? Private profiles return limited data (username, verified status, private flag). Deleted or non-existent profiles are skipped with a warning in the run log. The scraper continues with the remaining inputs.

What happens if a video is deleted or unavailable? The scraper logs a warning and moves to the next video. You're only charged for successfully scraped results.

Can I use integrations with this scraper? Yes — Make, Zapier, Slack, Airbyte, Google Sheets, Google Drive, webhooks, REST API, and more.

What input formats are accepted? Profiles: usernames (charlidamelio), @handles (@charlidamelio), or full URLs (https://www.tiktok.com/@charlidamelio). Videos: full URLs or just the video ID (19+ digits). All formats are auto-detected. Duplicates are removed automatically.

What if I don't know the exact TikTok username? The user search mode has fuzzy matching — searching "gordonramsay" will automatically find @gordonramsayofficial. It tries common TikTok username suffixes (official, real, tiktok) and dot/underscore variations.

How much does it cost to get started? Apify gives you $5 free usage credits every month on the Free plan. That's enough for ~7,700 comments, ~2,000 profiles, or ~1,000 videos. For regular scraping, the $49/month Scale plan gives you the best value with volume discounts.

How can I use TikTok Scraper with the Apify API? The Apify API gives you full programmatic access — start runs, fetch results, manage schedules, and more. Use the apify-client NPM package for Node.js or the apify-client PyPI package for Python. See the Apify API reference for full details, or click the API tab above for code examples.

Is it legal to scrape TikTok? This scraper only extracts publicly available data. It does not extract private user data such as email addresses, gender, or location. Personal data is protected by GDPR and other regulations — ensure you have a legitimate reason for processing any personal data you collect. Read more about the legality of web scraping and ethical scraping on the Apify blog.

More Scrapers by get-leads

Need data from other platforms? Check out our other scrapers:

ScraperWhat it doesPrice
All-in-One Amazon ScraperProducts, reviews, sellers, bestsellers, deals — 15 marketplacesfrom $0.75/1K
All-in-One LinkedIn ScraperProfiles, companies, jobs, posts, searchfrom $1.00/1K
Real Estate Agent ScraperAgents from Google Maps with email, phone, licensefrom $3.00/1K
Google Maps ScraperAny business from Google Maps — 35+ fields per placefrom $1.00/1K

All scrapers: no proxy needed, MCP-ready, Clockworks-compatible where applicable.

Changelog

0.1.108 (2026-04-11)

  • Hashtag Scraper mode — new Mode 5: scrape hashtag metadata (video count, view count, description) + discover trending videos. Works best with external proxy.
  • fromProfileSection field — videos from All-in-One/Data Extractor now include source section ("videos", "pinned", "hashtag")
  • signature field fix — empty bios now return "" instead of null (distinguishes "no bio" from "couldn't scrape")
  • Removed cheerio dependency — regex-based HTML parsing saves ~2 MB container size and reduces memory by 45%
  • Memory optimization — peak RSS reduced from 157 MB to 86 MB via regex extraction, lightweight quality counters, and lower default concurrency

0.1.105 (2026-04-05)

  • README restructured — LinkedIn-style per-mode sections with Input Parameters, Input Example, Output Fields, Output Example, Use Cases, and How to Run (Python)
  • Updated dataset schema — new views with Clockworks-compatible comment field names
  • "Why This TikTok Scraper?" section — competitive comparison table vs Clockworks, Api Dojo, Scraptik

0.1.104 (2026-04-05)

  • Clockworks-compatible comments — complete output restructure: flat fields (cid, diggCount, replyCommentTotal, likedByAuthor, pinnedByAuthor, uid, uniqueId, avatarThumbnail, mentions, detailedMentions, repliesToId, submittedVideoUrl, videoWebUrl) — drop-in replacement for Clockworks comments scraper
  • Video: repostCount — new engagement metric from stats.repostCount
  • Video: authorMeta.createTime — account creation timestamp now included
  • Video: musicMeta.originalCoverMediumUrl — original music cover image URL
  • Video: effectStickers[].stickerStats — sticker usage stats with useCount
  • Video: videoMeta.transcriptionLink — subtitle/caption link when available
  • Video: simplified videoMeta — 8 fields matching Clockworks structure

0.1.97 (2026-03-22)

  • "Which Mode Should I Use?" decision matrix — helps users self-serve the right mode for their use case

0.1.96 (2026-03-22)

  • Cross-linking — README links to all get-leads scrapers
  • Free credits FAQ — mentions $5/month free Apify credits

0.1.92 (2026-03-22)

  • Fuzzy username search — searching "gordonramsay" finds @gordonramsayofficial automatically

0.1.88 (2026-03-22)

  • Error categorization — DELETED, RATE_LIMITED, FORMAT_CHANGE, NETWORK, BLOCKED
  • High-res profile avatarsavatarMedium + originalAvatarUrl

0.1.87 (2026-03-22)

  • Related video discovery — follows related links beyond ~10 embed page limit
  • Comment reply threading — up to 50 replies per comment

0.1.86 (2026-03-22)

  • Smart input parsing — paste URLs, @handles, or usernames
  • Automatic deduplication — duplicates removed before scraping
  • Run summarysummary.json saved to key-value store
  • Memory-aware concurrency — auto-reduces if memory high

0.1.84 (2026-03-22)

  • Parallel scraping — 3x faster for large batches
  • Retry logic — automatic retry with exponential backoff

0.1.73 (2026-03-21)

  • Published to Apify Store — all 7 modes live
  • Pay-per-event billing — 6 pricing tiers
  • Comment scraping — full pagination via TikTok API

0.1.18 (2026-03-19)

  • Initial HTTP-only profile scraper

Your feedback

We're always working on improving performance. If you have technical feedback or found a bug, please create an issue in the Issues tab or leave a review.

Built by get-leads — the team behind Real Estate Agent Scraper, Amazon Product Scraper, LinkedIn Scraper, and Google Maps Scraper.

Follow us on LinkedIn for updates, tips, and new scraper releases.