TikTok Scraper
Pricing
Pay per event
TikTok Scraper
Extract TikTok profile stats, video lists from any user, and individual video details. Get followers, views, likes, comments, hashtags, and music info without login.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
1
Bookmarked
101
Total users
11
Monthly active users
2 days ago
Last modified
Categories
Share
⚠️ DEPRECATED — This actor is no longer maintained.
Please use our dedicated TikTok actors instead:
- TikTok Profile Scraper — for profile metadata (followers, bio, stats)
- TikTok Video Scraper — for video details (views, likes, comments, shares)
- TikTok Comments Scraper — for video comments
- TikTok Hashtag Scraper — for hashtag search results
- TikTok Search Scraper — for keyword search results
- TikTok Shop Products Scraper — for TikTok Shop product data
- TikTok Trends Scraper — for trending content
This actor may stop working at any time. Migrate to the dedicated actors above for continued support and updates.
Scrape TikTok profiles and video details without login. Extract follower counts, engagement stats, video captions, music info, and more from any public TikTok account or video.
What does TikTok Scraper do?
TikTok Scraper extracts publicly available data from TikTok. It supports three modes:
- Profiles — Get user metadata: followers, following, hearts, video count, bio, avatar, verification status
- Posts — Get a profile record plus up to
maxVideosrecent video records for each username - Video details — Get full video data from specific URLs: play count, likes, comments, shares, duration, music, hashtags, mentions
Why use this scraper?
- No login required — Works with public data only, no TikTok account needed
- Efficient by mode — Profile and direct-video requests use HTTP; posts mode adds a browser fallback when TikTok requires signed requests
- Reliable — Bounded retries and proxy fallback handle transient TikTok blocking without silently returning profile-only posts output
- Clean output — Flat JSON with consistent field names, ready for analysis
Who is it for?
- Marketing and brand teams — track follower growth, monitor competitor content strategies, and measure engagement rates across TikTok creators
- Agencies and influencer platforms — build creator databases, compare profile stats, and track sponsored campaign performance at scale
- Academic researchers — collect TikTok data for social media studies, trend analysis, and cultural research
- Data engineers and developers — feed TikTok metrics into dashboards, analytics pipelines, or ML models for content recommendation
Use cases
Marketing and brand teams
- Social media monitoring — Track follower growth and engagement for influencers or competitors
- Content analysis — Extract video metadata, hashtags, and music to understand what drives engagement
- Market research — Analyze engagement rates and content performance by niche
Agencies and influencer platforms
- Influencer research — Compare profile stats across multiple TikTok creators before partnerships
- Campaign tracking — Monitor video performance metrics during sponsored campaigns
- Lead generation — Build lists of TikTok creators by follower count and engagement
Research and data teams
- Academic research — Collect TikTok data for social media studies and trend analysis
- Trend detection — Track viral sounds, hashtags, and content formats as they emerge
- Dataset building — Create structured TikTok datasets for analytics or ML training
How to scrape TikTok
- Create an Apify account (free tier available)
- Open TikTok Scraper in Apify Console
- Choose a scraping mode: Profiles, Posts, or Video URLs
- Enter TikTok usernames or video URLs; for Posts, set
maxVideosper profile (1–50) - Click "Start" and wait for results
- Download data as JSON, CSV, or Excel
Output data
Profile output
| Field | Type | Description |
|---|---|---|
| username | string | TikTok username |
| nickname | string | Display name |
| verified | boolean | Blue checkmark status |
| followersCount | number | Number of followers |
| followingCount | number | Number of accounts followed |
| heartsCount | number | Total likes received |
| videosCount | number | Number of videos posted |
| signature | string | Bio/description |
| avatarUrl | string | Profile picture URL |
| url | string | Profile URL |
Video output
| Field | Type | Description |
|---|---|---|
| id | string | Video ID |
| url | string | Video URL |
| description | string | Video caption |
| playCount | number | Number of views |
| diggCount | number | Number of likes |
| commentCount | number | Number of comments |
| shareCount | number | Number of shares |
| collectCount | number | Number of saves |
| duration | number | Video duration in seconds |
| authorUsername | string | Creator username |
| musicName | string | Sound/music name |
| hashtags | array | Hashtags used |
| coverUrl | string | Thumbnail URL |
| createTime | string | ISO timestamp |
Input parameters
- mode —
profiles(default),posts, orvideoUrls - usernames — List of TikTok usernames (without @) or profile URLs. Used in profiles and posts modes
- maxVideos — Maximum videos per username in posts mode. Defaults to 30 and is capped at 50
- videoUrls — List of full or short TikTok video URLs. Used in videoUrls mode
How much does it cost to scrape TikTok?
TikTok Scraper uses pay-per-event pricing. You only pay for what you scrape.
| Event price (USD) | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
|---|---|---|---|---|---|---|
| Start | $0.005 | $0.00475 | $0.00425 | $0.00375 | $0.003 | $0.0025 |
| Profile | $0.004 | $0.0038 | $0.0034 | $0.0028 | $0.0022 | $0.0018 |
| Video | $0.004 | $0.0038 | $0.0034 | $0.0028 | $0.0022 | $0.0018 |
Estimate a run's event charge as the applicable start price plus the applicable per-result price multiplied by the number of profiles or videos scraped.
At FREE-tier event prices, $5 of platform credit covers approximately 1,248 profile or video events plus one run start, before any other account charges.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/tiktok-scraper').call({mode: 'profiles',usernames: ['charlidamelio', 'khaby.lame'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('automation-lab/tiktok-scraper').call(run_input={'mode': 'profiles','usernames': ['charlidamelio', 'khaby.lame'],})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/automation-lab~tiktok-scraper/runs" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "profiles", "usernames": ["charlidamelio"]}'
Tips
- Use usernames without @ — Enter
charlidamelionot@charlidamelio - Video URLs must be full links — Use the complete URL like
https://www.tiktok.com/@user/video/1234567890 - Profiles mode is fastest — It normally avoids browser startup
- Posts mode is browser-capable — TikTok may require a signed browser request; blocked sessions are retried within a bounded time budget
- Error handling — Posts mode fails the run if any requested username produces no video records, while preserving any valid profile output already collected
Integrations
Connect TikTok Scraper to your workflow using Apify integrations:
- Google Sheets — Export profiles and video stats to a spreadsheet for tracking creator performance over time
- Slack / Discord — Get notifications when scraping completes or when new videos exceed engagement thresholds
- Zapier / Make — Automate workflows, e.g., save top-performing TikTok videos to a content calendar or trigger outreach for high-follower creators
- Webhooks — Send results to your own API endpoint for custom processing
- Scheduled runs — Set up daily or weekly scrapes to monitor creator accounts or trending content
- Data warehouses — Pipe data to BigQuery, Snowflake, or PostgreSQL for large-scale analytics
- AI/LLM pipelines — Feed video captions and engagement data into trend analysis or content recommendation models
Use with AI agents via MCP
TikTok Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP). This lets you use natural language to scrape data — just ask your AI assistant and it will configure and run the scraper for you.
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/tiktok-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/tiktok-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Get TikTok profile stats for @khaby.lame"
- "Scrape these TikTok video URLs and give me the engagement metrics"
Learn more in the Apify MCP documentation.
Legality
This scraper only accesses publicly available data on TikTok. It does not bypass any login walls, CAPTCHAs, or access controls. The data collected is the same as what any visitor can see on TikTok's website.
Web scraping of publicly available data is generally legal, but you should review TikTok's Terms of Service and applicable laws in your jurisdiction. Use the data responsibly and in compliance with privacy regulations like GDPR.
FAQ
Does this scraper require a TikTok account? No. It works with public data only — no login, cookies, or account needed.
Can it scrape private accounts? No. Only public profiles and videos are accessible.
How many profiles can I scrape at once? There's no hard limit. The scraper processes profiles sequentially with random delays to avoid rate limiting. Expect ~5 seconds per profile.
Why did some profiles fail? TikTok occasionally blocks requests from certain proxy IPs. The scraper retries with a fresh proxy, but some requests may still fail. Re-running usually resolves intermittent failures.
What data format is the output? Flat JSON objects with consistent field names. You can export as JSON, CSV, Excel, or XML from the Apify Console.
How do I find TikTok influencers in a specific niche?
Building an influencer list with this scraper requires a list-first approach since TikTok search isn't directly available. Here's an effective workflow:
- Manually identify 5–10 seed creators in your niche from TikTok's Discover page or by searching relevant hashtags.
- Run the scraper in Profiles mode with those usernames to extract
followersCount,heartsCount,videosCount, and engagement proxies. - Calculate an engagement rate estimate:
heartsCount / (followersCount × videosCount)— higher ratios indicate more engaged audiences. - Export to a spreadsheet and filter by follower tier (micro: 10K–100K, macro: 100K–1M, mega: 1M+) and engagement rate to build tiered outreach lists.
This approach lets you evaluate hundreds of profiles for the cost of a few dollars, far cheaper than influencer marketplace subscription fees.
Can I track how a TikTok account's follower count changes over time?
Yes. Schedule the scraper in Profiles mode to run daily or weekly against the same list of usernames. Each run captures a snapshot of followersCount, heartsCount, and videosCount at that point in time.
Store results in a database or Google Sheet with the scrapedAt timestamp as a time-series column. Join snapshots on username to calculate:
- Weekly follower growth rate
- Engagement trajectory (hearts per video over time)
- Posting frequency changes
This is useful for tracking competitor brand accounts, monitoring influencer growth before a partnership decision, or benchmarking your own account's growth against industry peers. The estimated FREE-tier event charge for tracking 50 accounts in one run is $0.205 ($0.005 start + 50 × $0.004/profile).
What data can I get from a TikTok video without logging in?
Without any TikTok account, this scraper extracts the following public video data:
- Engagement metrics: view count (
playCount), likes (diggCount), comments (commentCount), shares (shareCount), and saves (collectCount) - Content metadata: caption/description, hashtags used, mentions, video duration
- Creator info: username, display name, verification status
- Media: thumbnail/cover image URL
- Audio: music name and sound used in the video
- Timing: creation timestamp
What you cannot get without login: follower-gated content, private account posts, direct messages, or internal analytics like audience demographics. All data extracted by this scraper is identical to what any anonymous visitor sees on TikTok's website.
How do I analyze TikTok engagement rates for competitor research?
Engagement rate on TikTok is typically calculated as: (likes + comments + shares) / views × 100. A strong TikTok engagement rate is generally 4–18% — much higher than Instagram or YouTube due to the platform's algorithmic amplification.
Workflow for competitive analysis:
- Run Video details mode on specific videos of interest to get
diggCount,commentCount,shareCount, andplayCount. - For each video, calculate engagement rate using
(diggCount + commentCount + shareCount) / playCount × 100. - Identify patterns in high-engagement videos: video
description,hashtags,musicName, andduration. - Look for correlations: Do shorter videos (<30s) outperform longer ones? Do certain hashtags correlate with higher share rates? Does using trending audio boost views?
- Export insights to inform your own content strategy.
The shareCount field is particularly valuable — shares indicate content that resonates strongly enough for users to send to others, often a better signal of viral potential than raw likes.
Why does TikTok scraping sometimes fail or return incomplete data?
TikTok is one of the more aggressively protected platforms for data collection. Common failure modes and their causes:
- Profile metadata missing fields: TikTok occasionally A/B tests different page layouts, which can temporarily change which fields are available in the HTML. The scraper handles most variants, but edge cases may leave some fields empty.
- Rate limiting on large batches: Processing many profiles in quick succession can trigger IP-based throttling. The scraper adds random delays between requests, but very large batches (50+ profiles in one run) may see increased failure rates. Split large lists across multiple runs for better reliability.
Related actors
- Instagram Scraper — scrape Instagram posts, profiles, and reels
- Threads Scraper — scrape Meta Threads posts, profiles, and search results
- Twitter/X Scraper — scrape tweets and user profiles
- Pinterest Scraper — scrape Pinterest pins, boards, and profile data
- Bluesky Scraper — scrape Bluesky posts and profiles
- YouTube Scraper — scrape YouTube videos, channels, and comments
- Reddit Scraper — scrape Reddit posts and comments