TikTok Scraper avatar

TikTok Scraper

Pricing

Pay per event

Go to Apify Store
TikTok Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

26

Total users

13

Monthly active users

2 days ago

Last modified

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

  1. Create an Apify account (free tier available)
  2. Open TikTok Scraper in Apify Console
  3. Choose a scraping mode: Profiles, Posts, or Video URLs
  4. Enter TikTok usernames or video URLs
  5. Click "Start" and wait for results
  6. Download data as JSON, CSV, or Excel

Output data

Profile output

FieldTypeDescription
usernamestringTikTok username
nicknamestringDisplay name
verifiedbooleanBlue checkmark status
followersCountnumberNumber of followers
followingCountnumberNumber of accounts followed
heartsCountnumberTotal likes received
videosCountnumberNumber of videos posted
signaturestringBio/description
avatarUrlstringProfile picture URL
urlstringProfile URL

Video output

FieldTypeDescription
idstringVideo ID
urlstringVideo URL
descriptionstringVideo caption
playCountnumberNumber of views
diggCountnumberNumber of likes
commentCountnumberNumber of comments
shareCountnumberNumber of shares
collectCountnumberNumber of saves
durationnumberVideo duration in seconds
authorUsernamestringCreator username
musicNamestringSound/music name
hashtagsarrayHashtags used
coverUrlstringThumbnail URL
createTimestringISO timestamp

Input parameters

  • modeprofiles (default), posts, or videoUrls
  • 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.

EventCostDescription
Start$0.01One-time per run
Profile$0.005Per profile extracted
Browser session$0.15Per profile in Posts mode
Video$0.005Per 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 ApifyClient
client = 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().items
print(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 charlidamelio not @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:

  1. Manually identify 5–10 seed creators in your niche from TikTok's Discover page or by searching relevant hashtags.
  2. Run the scraper in Profiles mode with those usernames to extract followersCount, heartsCount, videosCount, and engagement proxies.
  3. Calculate an engagement rate estimate: heartsCount / (followersCount × videosCount) — higher ratios indicate more engaged audiences.
  4. 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.
  5. 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:

  1. Run Posts mode on 5–10 competitor accounts with maxVideos: 30 to get a representative recent sample.
  2. For each video, calculate engagement rate using (diggCount + commentCount + shareCount) / playCount × 100.
  3. Identify the top 10% of videos by engagement rate and analyze their description, hashtags, musicName, and duration for patterns.
  4. Look for correlations: Do shorter videos (<30s) outperform longer ones? Do certain hashtags correlate with higher share rates? Does using trending audio boost views?
  5. 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