TikTok Profile Scraper
Pricing
from $1.00 / 1,000 scraped profiles
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
23 days ago
Last modified
Categories
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
- Go to the TikTok Profile Scraper page on Apify.
- Click Start.
- Enter one or more TikTok profile URLs (e.g.
https://www.tiktok.com/@tiktok) or@handlevalues. - Set Max Videos per Profile to control how many videos to scrape (default is 15). To fetch all videos, set this to 0.
- Click Run.
- When the run finishes, download your data from the Dataset tab.
Input parameters
| Field | Type | Description |
|---|---|---|
profileUrls | string[] | One or more TikTok profile URLs, @handles, or raw secUid strings. Required. |
maxVideosPerProfile | integer | Maximum 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
| Field | Description |
|---|---|
videoId | The unique ID of the video. |
videoUrl | Direct link to the video on TikTok. |
description | The caption text of the video. |
createTime | Unix timestamp of when the video was posted (seconds since epoch). |
coverUrl | URL of the video thumbnail image. |
likes | Total number of likes (diggs). |
comments | Total number of comments. |
plays | Total number of views. |
shares | Total number of shares. |
saves | Total number of saves (bookmarks). |
reposts | Total number of reposts. |
authorUniqueId | The @handle of the author. |
authorNickname | The display name of the author. |
musicTitle | The title of the audio/music used. |
musicId | The unique ID of the audio/music. |
musicAuthor | The creator of the audio/music. |
musicIsOriginal | Whether the audio is an original sound (true) or a reused sound (false). |
hashtags | List of hashtags in the video description. |
textExtra | @mention and hashtag entities with user IDs and positions. |
locationCreated | Location where the video was created (when available). |
duration | Video duration in seconds. |
isAd | Whether the video is a paid ad. |
isImagePost | Whether the post is an image carousel. |
profileFollowers | Follower count of the profile at scrape time. |
profileHearts | Total likes on the profile at scrape time. |
profileVideoCount | Total video count on the profile at scrape time. |
profileAvatarUrl | URL of the profile picture. |
profileBioLink | The 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:
| Event | Description | Charged |
|---|---|---|
profile-scraped | Resolving a TikTok profile | Once per profile |
video-scraped | Saving a video to the dataset | Once 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
maxVideosPerProfileto 0. A large profile with thousands of posts takes a few minutes.
Tips for scraping TikTok profiles
- The default
maxVideosPerProfileis 15, which is a good starting point for testing. - Set
maxVideosPerProfileto 0 to get all videos from a profile. - You can pass multiple profile URLs in a single run.
- The scraper handles
@handlevalues, full URLs, and rawsecUidstrings.
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.