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.

Cover card reading '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. 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.

  1. Open TikTok Profile Scraper.
  2. Add usernames without the @, or profile URLs.
  3. Set maxItems to the total number of videos you want across all profiles.
  4. 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.

Where do you start?

At how to scrape TikTok data in 2026.