TikTok Profile Scraper avatar

TikTok Profile Scraper

Pricing

from $1.00 / 1,000 scraped profiles

Go to Apify Store
TikTok Profile Scraper

TikTok Profile Scraper

Scrape TikTok profiles and all video posts. Extract likes, views, shares, saves, comments, hashtags, and follower stats. Fast HTTP scraper — no browser or login needed. Export as JSON, CSV, or Excel or get the results by API or via MCP in Claude, ChaptGPT, Claude Code, Codex or any AI App.

Pricing

from $1.00 / 1,000 scraped profiles

Rating

0.0

(0)

Developer

Harish Garg

Harish Garg

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

23 days ago

Last modified

Share

What does TikTok Profile Scraper do?

TikTok Profile Scraper extracts all posts from one or more TikTok profiles with full metadata — likes, comments, plays, shares, saves, hashtags, music, and more. No login or API key is required.

Run it on the Apify platform to get API access, scheduling, webhooks, monitoring, and integrations with tools like Google Sheets, Slack, and Zapier.

Why use TikTok Profile Scraper?

  • Market research — Track competitor content strategies and engagement rates.
  • Influencer analysis — Evaluate creators by their post frequency, reach, and engagement.
  • Content monitoring — Get alerts on new posts from profiles you watch.
  • Data journalism — Collect public TikTok data for analysis and reporting.
  • Trend detection — Identify trending hashtags and music across profiles.

How to scrape TikTok profile data

  1. Go to the TikTok Profile Scraper page on Apify.
  2. Click Start.
  3. Enter one or more TikTok profile URLs (e.g. https://www.tiktok.com/@tiktok) or @handle values.
  4. Set Max Videos per Profile to control how many videos to scrape (default is 15). To fetch all videos, set this to 0.
  5. Click Run.
  6. When the run finishes, download your data from the Dataset tab.

Input parameters

FieldTypeDescription
profileUrlsstring[]One or more TikTok profile URLs, @handles, or raw secUid strings. Required.
maxVideosPerProfileintegerMaximum videos per profile. Default: 15. Set to 0 to fetch all videos.

Example input:

{
"profileUrls": ["https://www.tiktok.com/@tiktok"],
"maxVideosPerProfile": 15
}

Output — what data do you get?

The scraper produces one row per video. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Example output:

{
"videoId": "7345678901234567890",
"videoUrl": "https://www.tiktok.com/@tiktok/video/7345678901234567890",
"description": "Check out this cool video! #fyp #tiktok",
"createTime": 1700000000,
"coverUrl": "https://p16-sign.tiktokcdn-us.com/obj/tos-useast5-p-0068-tx/abc123",
"likes": 150000,
"comments": 3200,
"plays": 5000000,
"shares": 12000,
"saves": 45000,
"reposts": 800,
"authorUniqueId": "tiktok",
"authorNickname": "TikTok",
"musicTitle": "original sound - TikTok",
"musicId": "7345678901234567891",
"musicAuthor": "TikTok",
"musicIsOriginal": true,
"hashtags": ["fyp", "tiktok"],
"textExtra": [{"hashtagName": "fyp"}, {"userId": "123", "userUniqueId": "tiktok"}],
"locationCreated": "Los Angeles",
"duration": 30,
"isAd": false,
"isImagePost": false,
"profileFollowers": 80000000,
"profileHearts": 2500000000,
"profileVideoCount": 500,
"profileAvatarUrl": "https://p16-sign.tiktokcdn-us.com/musically-maliva-obj/abc123~c5_1080x1080.jpeg",
"profileBioLink": "https://www.tiktok.com/about"
}

TikTok post data fields

FieldDescription
videoIdThe unique ID of the video.
videoUrlDirect link to the video on TikTok.
descriptionThe caption text of the video.
createTimeUnix timestamp of when the video was posted (seconds since epoch).
coverUrlURL of the video thumbnail image.
likesTotal number of likes (diggs).
commentsTotal number of comments.
playsTotal number of views.
sharesTotal number of shares.
savesTotal number of saves (bookmarks).
repostsTotal number of reposts.
authorUniqueIdThe @handle of the author.
authorNicknameThe display name of the author.
musicTitleThe title of the audio/music used.
musicIdThe unique ID of the audio/music.
musicAuthorThe creator of the audio/music.
musicIsOriginalWhether the audio is an original sound (true) or a reused sound (false).
hashtagsList of hashtags in the video description.
textExtra@mention and hashtag entities with user IDs and positions.
locationCreatedLocation where the video was created (when available).
durationVideo duration in seconds.
isAdWhether the video is a paid ad.
isImagePostWhether the post is an image carousel.
profileFollowersFollower count of the profile at scrape time.
profileHeartsTotal likes on the profile at scrape time.
profileVideoCountTotal video count on the profile at scrape time.
profileAvatarUrlURL of the profile picture.
profileBioLinkThe link-in-bio URL of the profile.

Pricing — how much does it cost to scrape TikTok profiles?

This Actor uses the pay-per-event pricing model. You are charged for two types of events:

EventDescriptionCharged
profile-scrapedResolving a TikTok profileOnce per profile
video-scrapedSaving a video to the datasetOnce per video

You can set a maximum spending limit on each run to control your costs. When the limit is reached, the scraper stops automatically.

Cost estimate

  • The default run (15 videos from one profile) takes about 5 seconds and costs a fraction of a cent.
  • To scrape all videos, set maxVideosPerProfile to 0. A large profile with thousands of posts takes a few minutes.

Tips for scraping TikTok profiles

  • The default maxVideosPerProfile is 15, which is a good starting point for testing.
  • Set maxVideosPerProfile to 0 to get all videos from a profile.
  • You can pass multiple profile URLs in a single run.
  • The scraper handles @handle values, full URLs, and raw secUid strings.

FAQ, disclaimers, and support

Is it legal to scrape TikTok? This scraper collects publicly available data. Review the TikTok Terms of Service and your local laws before use. You are responsible for how you use the data.

What if a profile returns no results? The profile may be private, may not exist, or TikTok may have changed its page structure. Check the run log for error details.

I found a bug or have a feature request. Open an issue in the Issues tab on the Actor page. We also offer custom scraping solutions — contact us through Apify.