ParseForge Scrapers

TikTok Profile Scraper

parseforge/tiktok-profile-scraper

Social mediaLead generationOther

Scrapes TikTok profile metadata and optional video feeds by username or profile URL. Returns follower counts, bios, verified status, and nested video and comment data in a flat schema.

Run this scraper See the API call
Total users
43
Monthly active
3
Total runs
895
Bookmarked
1
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

TikTok Profile Scraper

Scrape TikTok profile data and recent videos for any list of usernames or profile URLs, up to a million profiles per run. Every profile returns follower counts, bio, verified status, and optional video feeds with play counts, likes, comments, music metadata, and hashtags. No login or API key. Export to CSV, JSON, Excel, or XML.

TikTok's official API requires a developer account, app review, and strict rate limits that throttle large-scale profile research. This Actor reads public profile pages directly, so you can feed it a list of usernames or profile URLs and get structured data back without any authentication. It handles millions of profiles per run and optionally dives into each profile's recent videos and their comments, all in one fixed schema.

Who uses it What they scrape TikTok for
Influencer marketing agencies Build a database of creator profiles with follower counts, engagement rates, and recent content for campaign vetting.
Brand safety analysts Audit a list of TikTok profiles for bio links, verification status, and content history before partnership decisions.
Social media researchers Track profile growth, posting frequency, and content themes across a cohort of TikTok creators over time.
Recruitment teams Identify niche creators by scraping profiles from a target list and filtering by follower range or content category.

What it does

This Actor collects TikTok profile metadata and optional video feeds by username or profile URL, and returns each profile as a flat row with nested video and comment objects when enabled.

  • ๐Ÿ‘ค Profile metadata: username, display name, bio, follower count, following count, likes total, verified badge, and avatar URL.
  • ๐ŸŽฌ Video scraping: enable to pull recent videos with play count, hearts, shares, comments count, music track, hashtags, and publish date.
  • ๐Ÿ’ฌ Comment scraping: nested inside each video, collect comment text, author, and timestamp for deeper engagement analysis.
  • ๐Ÿ“… Date filters: restrict videos to a custom date range with publishedAfter and publishedBefore so you only get fresh or historical content.
  • ๐Ÿ”ข Engagement filters: set minimum and maximum hearts per video to isolate top performers or low-engagement outliers.
  • ๐Ÿ“Œ Pinned post control: exclude pinned videos from results to focus on organic, chronological content.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with TikTok data

๐Ÿ“Š Vet influencer rosters at scale.

An agency feeds a list of 500 TikTok usernames, enables video scraping with a 30-video limit, and exports follower counts, average hearts, and recent hashtags to score each creator for a beauty brand campaign.

๐Ÿ” Audit brand safety across profiles.

A compliance team scrapes 200 profiles with video comments enabled, filters videos from the last 90 days, and reviews bio links and comment sentiment before approving a sponsorship deal.

๐Ÿ“ˆ Track creator growth week over week.

A researcher runs the Actor weekly on the same 50 usernames, collects follower counts and video publish dates, and plots growth curves to identify rising TikTok personalities in the fitness niche.

๐ŸŽต Map music trends by creator.

A music label scrapes 100 dance-creator profiles with video scraping on, extracts music track names from the last 60 days, and spots which songs are gaining traction organically.

Why choose this scraper

What you get
No API key needed Scrapes public profile pages directly, bypassing TikTok's developer registration and rate limits.
Bulk profile lists Feed in up to a million usernames or URLs per run from a prefill or your own CSV.
Nested video data Optionally collect recent videos per profile with play counts, likes, shares, and music metadata.
Comment depth Enable comment scraping to pull text and author details nested inside each video object.
Fixed output schema Every profile, video, and comment returns in a consistent structure ready for CSV, JSON, Excel, or XML export.

How it compares

This Actor focuses on profile-list scraping with nested video and comment depth, while other TikTok scrapers emphasize hashtag or search-based discovery.

Feature ParseForge TikTok Scraper TikTok Data Extractor
Scrape by username list Yes Not listed Yes
Nested video data per profile Yes Not listed Not listed
Nested comment data per video Yes Not listed Not listed
Video date range filters Yes Not listed Not listed
Video engagement filters (min/max hearts) Yes Not listed Not listed
Exclude pinned videos Yes Not listed Not listed

Configure the run

Drive the Actor from a list of TikTok usernames or profile URLs, and filters run as each video is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "profiles": [
    "charlidamelio",
    "addisonre",
    "bellapoarch",
    "zachking",
    "khaby.lame",
    "willsmith",
    "kyliejenner",
    "therock",
    "selenagomez",
    "arianagrande",
    "billieeilish",
    "mrbeast",
    "doja.cat",
    "mileycyrus",
    "jasonderulo",
    "jlo",
    "shakira",
    "taylorswift",
    "kimkardashian",
    "rihanna",
    "nickiminaj",
    "cardib",
    "badbunnypr",
    "dualipa",
    "edsheeran",
    "brunomars",
    "kendalljenner",
    "mariahcarey",
    "justinbieber",
    "ninaagdal"
  ],
  "maxItems": 10
}

A larger pull:

{
  "profiles": [
    "charlidamelio",
    "addisonre",
    "bellapoarch",
    "zachking",
    "khaby.lame",
    "willsmith",
    "kyliejenner",
    "therock",
    "selenagomez",
    "arianagrande",
    "billieeilish",
    "mrbeast",
    "doja.cat",
    "mileycyrus",
    "jasonderulo",
    "jlo",
    "shakira",
    "taylorswift",
    "kimkardashian",
    "rihanna",
    "nickiminaj",
    "cardib",
    "badbunnypr",
    "dualipa",
    "edsheeran",
    "brunomars",
    "kendalljenner",
    "mariahcarey",
    "justinbieber",
    "ninaagdal"
  ],
  "maxItems": 200
}

Pricing

Pay-per-result: $0.01866 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.87
1,000 results $18.66
10,000 results $186.60

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the TikTok Profile Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to TikTok through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/tiktok-profile-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results for some profiles?

Check that the profiles are public and the usernames are spelled correctly. Private or deleted accounts will be skipped. Review the run log for per-profile warnings.

Why are my video counts lower than expected?

The maxVideosPerProfile setting caps how many videos are collected per profile. Also, date filters and minHearts/maxHearts will further reduce the count. Try raising the cap or widening the filters.

The run is taking a long time with many profiles.

Scraping videos and comments adds significant time per profile. For large lists, start with includeVideos disabled to get profile metadata quickly, then re-run with video scraping on a smaller subset.

I enabled comments but don't see them in the output.

Comments are nested inside each video object, not at the profile level. Expand a video row in your dataset to find the comments array. Also verify maxCommentsPerVideo is set above zero.

Why do I get a 'cannot read properties' error in my integration?

Some profiles may have missing fields if TikTok's page structure changes. Use optional chaining in your code when accessing nested fields like videos or comments, and check the raw JSON output for the exact structure.

FAQ

Question Answer
Do I need a TikTok account or API key to use this? No. The Actor reads public profile pages directly, so no login, API key, or developer registration is required.
Can I scrape private TikTok profiles? No. Only public profiles are accessible. If a profile is set to private, the Actor will skip it and log a warning.
How many profiles can I scrape in one run? You can set maxItems up to 1,000,000 profiles per run. The Actor processes them sequentially and respects platform rate limits automatically.
What video data do I get when I enable includeVideos? Each video returns play count, hearts, shares, comments count, music track name and artist, hashtags, publish date, and a direct video URL.
Can I filter videos by publish date? Yes. Use publishedAfter and publishedBefore in YYYY-MM-DD format to restrict videos to a specific date window.
How do comments work in the output? When includeComments is enabled, each video object contains a nested comments array with comment text, author name, and timestamp. You control the depth with maxCommentsPerVideo.
What format does the data export to? The Actor outputs to CSV, JSON, Excel, or XML. Nested video and comment data is stored as arrays within each profile row.
Can I scrape only profiles without videos? Yes. Keep includeVideos set to false, and the Actor returns only profile-level metadata: username, bio, follower count, following count, likes total, and verified status.
How do I input a list of profiles? Paste TikTok usernames (with or without '@') or full profile URLs into the profiles field. The Actor normalizes them automatically.
Does this Actor handle TikTok rate limiting? Yes. It includes built-in delays and retry logic to stay within TikTok's acceptable request patterns and avoid blocks.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by TikTok Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
profiles array List of TikTok usernames or profile URLs to scrape (e.g. 'charlidamelio', '@khaby.lame', 'https://www.tiktok.com/@bellapoarch') ["charlidamelio","addisonre","bellapoarc
maxItems integer Maximum number of profiles to collect per run. 10
includeVideos boolean Scrape recent videos for each profile. Videos are nested inside each profile's output. false
maxVideosPerProfile integer Maximum number of videos to scrape per profile 30
publishedAfter string Only include videos published after this date (YYYY-MM-DD format) not set
publishedBefore string Only include videos published before this date (YYYY-MM-DD format) not set
minHearts integer Only include videos with at least this many hearts/likes not set
maxHearts integer Only include videos with at most this many hearts/likes not set
excludePinned boolean Exclude pinned videos from the results false
includeComments boolean Scrape comments for each video. Comments are nested inside each video. false
maxCommentsPerVideo integer Maximum number of comments to scrape per video 20

Pricing

from $13.99 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged once when the run starts. $0.005
Result Item Charged once per result collected. $0.01399 to $0.01866

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~tiktok-profile-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run TikTok Profile Scraper on Apify All scrapers