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
Actor stats
0
Bookmarked
26
Total users
13
Monthly active users
2 days ago
Last modified
Categories
Share
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 user's video list with full metadata: views, likes, comments, shares, duration, music, hashtags
- Video details — Get full video data from specific URLs: play count, likes, comments, shares, duration, music, hashtags, mentions
Profiles mode uses lightweight HTTP requests. Posts and video details modes use a real browser to handle TikTok's anti-bot protections.
Why use this scraper?
- No login required — Works with public data only, no TikTok account needed
- Fast and lightweight — Profiles and video URLs use HTTP-only mode (256 MB memory)
- Smart browser mode — Posts mode uses a real browser to intercept TikTok's signed API, getting video lists others can't
- Reliable — Automatic retries with proxy rotation on every request
- Clean output — Flat JSON with consistent field names, ready for analysis
Who is TikTok Scraper 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
- 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 @). Used in profiles and posts modes
- videoUrls — List of full TikTok video URLs. Used in videoUrls mode
- maxVideos — Maximum videos to extract per profile (default: 10, max: 100). Used in posts mode
How much does it cost to scrape TikTok?
TikTok Scraper uses pay-per-event pricing. You only pay for what you scrape.
| Event | Cost | Description |
|---|---|---|
| Start | $0.01 | One-time per run |
| Profile | $0.005 | Per profile extracted |
| Browser session | $0.15 | Per profile in Posts mode |
| Video | $0.005 | Per video extracted |
Example costs:
- 10 profiles: $0.06
- 100 profiles: $0.51
- 1 profile + 5 posts: $0.19
- 1 profile + 50 posts: $0.42
- 2 profiles + 10 posts each: $0.42
The Apify free plan ($5/month) lets you scrape ~900 profiles or ~25 profiles with their video lists per month.
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 — Each profile takes ~5 seconds with proxy rotation
- Posts mode scrolls for videos — It loads the profile in a browser and scrolls to trigger API calls. More videos = more scrolling time
- Error handling — If a username or video URL fails, the scraper skips it and continues with the rest
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 the latest 20 TikTok videos from @khaby.lame"
- "Search TikTok for videos about 'cooking hacks'"
- "Scrape trending TikToks in the US"
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.
Can it scrape video lists from a profile?
Yes! Use the Posts mode. It launches a browser, loads the profile page, and intercepts TikTok's signed API responses to extract the video list with full metadata. Set maxVideos to control how many videos to collect per profile.
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.
Posts mode is slow or timing out — what can I do?
Posts mode launches a real browser and scrolls through the profile page to intercept TikTok's signed API calls. Requesting many videos (50+) from a single profile requires multiple scroll cycles. Try reducing maxVideos or splitting across multiple runs. TikTok's aggressive anti-bot protection can also cause intermittent failures — re-running usually resolves this.
Some profiles return 0 videos in posts mode — why? TikTok may block the browser session for certain profiles, especially those with very high follower counts that receive extra protection. The scraper retries with fresh proxies, but some profiles may require multiple attempts. Profile mode (metadata only) is much more reliable.
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. - Use Posts mode on your top candidates to pull recent video stats and verify that engagement is genuine and recent, not inflated by one viral video.
- 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 scraper costs roughly $0.005 per profile per run — tracking 50 accounts daily costs under $0.25/day.
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 Posts mode on 5–10 competitor accounts with
maxVideos: 30to get a representative recent sample. - For each video, calculate engagement rate using
(diggCount + commentCount + shareCount) / playCount × 100. - Identify the top 10% of videos by engagement rate and analyze their
description,hashtags,musicName, anddurationfor patterns. - 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:
- Posts mode returning 0 videos: TikTok may have blocked the browser session for a high-profile account. These accounts receive extra API-level protection. Retry the run — fresh proxies usually succeed within 1–2 attempts.
- 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.
- Slow Posts mode execution: Each profile in Posts mode requires a full browser session, scrolling to load video lists, and intercepting signed API responses. A profile with 50 videos may take 30–60 seconds. This is expected behavior, not a failure.
- 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.
Other social media scrapers
- 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