TikTok Scraper
Pricing
from $2.80 / 1,000 video scrapeds
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
from $2.80 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
2
Bookmarked
198
Total users
31
Monthly active users
3 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 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 proxy retries plus a public creator-embed fallback handle transient TikTok profile blocking without silently succeeding with empty profile, video, or 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 (with or without @) or profile URLs (trailing slash and query parameters accepted). Video URLs are not profile URLs. Used in profiles and posts modes. When absent or empty, valid profile URLs in
videoUrlsare accepted for compatibility with mode switches/API callers; populatedusernamestake precedence. - 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. The start event is charged once for a valid run even if TikTok has removed or blocked the requested content; profile and video events are charged only for records produced. Invalid mode or missing/malformed profile input fails before the start event is charged.
| 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 and videos produced. At FREE-tier event prices, one profile costs USD 0.009 total ($0.005 start + $0.004 profile); 50 profiles in one run cost USD 0.205. A $5 platform credit covers approximately 1,248 profile or video records plus one start event, before any other account charges. Prices are the live tariff checked on September 23, 2026; verify the Console tariff for your tier before running.
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 a username or public profile URL —
charlidamelio,@charlidamelio, andhttps://www.tiktok.com/@charlidamelio/are accepted - Video URLs must be full links — Use the complete URL like
https://www.tiktok.com/@user/video/1234567890 - Profiles mode is fastest — It avoids browser startup and can recover blocked profile pages through TikTok's public creator embed
- Posts mode is browser-capable — TikTok may require a signed browser request; the optional managed provider, public embed, and bounded browser fallback can recover posts, but inaccessible or removed posts still fail. Large batches share a 75-second browser fallback budget; users with no videos make the run fail, even if other users produced valid records.
- Error handling — Profiles and Video URLs modes fail instead of reporting success when the whole requested batch produces no records. Mixed batches preserve and charge only valid records, and log unresolved inputs with reasons. Posts mode fails if any requested username produces no video records while preserving valid 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.
Data handling, dependencies, and support
- Data recipients — Requested public usernames or video URLs are sent to TikTok through direct or Apify-proxied requests. Posts mode can also use a company-configured ScrapeCreators fallback; users do not provide or pay for that credential.
- No AI processing — The Actor does not call an AI model or send input/output to an AI provider. Optional MCP usage is controlled by your external AI client, not this Actor.
- Stored data — Public profile/video records go to the run's default dataset. Input, operational logs (including unresolved public identifiers), and datasets follow your Apify account's retention settings.
- Deletion — Delete runs and their storages through Apify Console or API. The Actor keeps no separate external database or cross-run copy and cannot delete provider-side request records.
- Secrets — No TikTok login is accepted. Proxy and optional provider credentials are company-managed and are not written to output or logs.
- Failure diagnostics — Failed operations send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed; reports are retained for 30 days.
- Support — Report reproducible problems through the Actor's Issues tab in Apify Console, including the run ID and sanitized input.
This is an independent tool and is not affiliated with, endorsed by, or operated by TikTok.
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. Mixed batches keep valid records and report unresolved usernames in the run log. If every requested profile fails, the run ends with an actionable error instead of a successful empty dataset. The start event may still be charged on a valid run. Re-running can resolve 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