How to Scrape TikTok Profiles and Their Videos
To scrape TikTok profiles, put usernames (without the @) in the usernames input of apidojo's TikTok Profile Scraper on Apify, or profile URLs in startUrls, and set maxItems for the number of videos.

To scrape TikTok profiles, put usernames (without the @) in the usernames input of apidojo’s TikTok Profile Scraper on Apify, or profile URLs in startUrls, and set maxItems for the number of videos. Each result is a video with its views, likes, comments, shares and upload time, plus the creator’s profile: bio, followers, following and verification.
Profile data answers questions like “how does this creator perform?” and “what does this competitor post?”. This guide covers the inputs, the fields, which apidojo actor to use for which job, and costs. The overview of every TikTok data type is in how to scrape TikTok data in 2026. To go from one creator to their audience, how to scrape TikTok followers and following lists picks up where this leaves off, and how to scrape TikTok comments and replies adds what viewers say.
Which apidojo Actor Should You Use for TikTok Profiles?
Use the Profile Scraper for a creator’s videos and stats, the User Scraper for profile details on many accounts, and the Profile Scraper API for many profiles with only a few recent videos each. The table compares them (Apify, Apify, Apify).
| Actor | Input | Returns | Price |
|---|---|---|---|
| TikTok Profile Scraper | usernames or startUrls |
Videos with full profile details | $0.30 per 1,000 posts |
| Fast TikTok Profile Scraper API | Profiles | Profile plus recent videos | $0.006 per profile, including 20 posts, then $0.0003 per post |
| TikTok User Scraper | Profile or video URLs | Profile details, plus follower and following lists | $0.005 per query (about 10 users included), then $0.0005 per user |
How Do You Scrape a TikTok Profile’s Videos?
You scrape a profile’s videos by listing the username and a cap on videos, then running the actor. Listed below are the 4 steps.
- Open TikTok Profile Scraper.
- Add usernames without the @, or profile URLs.
- Set
maxItemsto the total number of videos you want across all profiles. - Run and export the dataset as JSON, CSV or Excel.
{
"usernames": ["gordonramsayofficial", "nasa"],
"maxItems": 500
}
maxItems counts videos across the whole run, not per profile, so raise it when you add accounts. Each profile must exist and have at least 10 posts (Apify).
To limit a profile to a date range, use the since and until inputs. In the actor’s own example, "until": "2025-01-01" with "since": "2025-03-31" returns only posts published between January 1 and March 31, 2025, and dates can be written as YYYY-MM-DD (Apify).
What Data Does a Scraped TikTok Profile Contain?
Each result is one video with a channel object describing the creator, and a collabInfo object when the post is a collaboration. The fields below come from the Profile Scraper’s output example (Apify).
| Field | Contains |
|---|---|
channel.username, channel.name |
Handle and display name |
channel.bio, channel.verified |
Bio text and verification |
channel.followers, channel.following |
Follower and following counts |
channel.videos |
Total videos on the account |
views, likes, comments, shares, bookmarks |
The video’s engagement |
uploadedAtFormatted |
When the video was posted |
hashtags, song |
Hashtags and the sound used |
collabInfo |
Collaborators on a joint post, with their usernames and follower counts |
postPage |
The video’s link |
How Do You Turn Profile Videos Into Creator Stats?
Group the videos by creator and compute posting frequency, median views and engagement rate. Medians are safer than averages because one viral video skews an average.
import pandas as pd
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("apidojo/tiktok-profile-scraper").call(run_input={
"usernames": ["creator1", "creator2", "creator3"],
"maxItems": 300,
})
df = pd.json_normalize(list(client.dataset(run.default_dataset_id).iterate_items()))
df["er"] = (df["likes"] + df["comments"] + df["shares"] + df["bookmarks"]) / df["views"] * 100
stats = df.groupby("channel.username").agg(
followers=("channel.followers", "max"),
videos=("id", "count"),
median_views=("views", "median"),
median_er=("er", "median"),
)
print(stats.sort_values("median_views", ascending=False))
The engagement rate formula is explained in how to calculate TikTok engagement rate, and tracking these numbers over time in how to track competitors on TikTok.
What Does Scraping TikTok Profiles Cost?
At $0.30 per 1,000 posts, 50 creators with 100 videos each cost $1.50 on TikTok Profile Scraper. For hundreds of profiles where you only need recent videos, the Profile Scraper API’s per-profile price, $0.006 including 20 posts, is usually lower.
| Job | Actor | Cost |
|---|---|---|
| 50 creators, 100 videos each | TikTok Profile Scraper | $1.50 |
| 1,000 creators, 20 recent videos each | Fast TikTok Profile Scraper API | $6 |
| 1,000 profile URLs, details only | TikTok User Scraper | $5 |
What Can’t You Scrape From a TikTok Profile?
Private accounts’ videos, profile viewers and private analytics aren’t public, so no scraper can collect them. Follower lists are a separate job, covered in how to scrape TikTok followers and following lists.
Questions people ask
Can you scrape a TikTok profile without logging in?
Yes, apidojo's actors read public profiles without a TikTok login.
Can you scrape every video on a profile?
Yes, set maxItems above the account's video count or leave it empty.
Can you scrape TikTok profiles from a list of video URLs?
Yes, TikTok User Scraper accepts video URLs and returns the creator's profile.