TikTok Scraper — Profiles, Videos & Hashtags
Pricing
Pay per usage
TikTok Scraper — Profiles, Videos & Hashtags
Scrape TikTok profiles and videos from public pages. Extract usernames, follower counts, bio, video descriptions, play counts, likes, comments, shares, music info, and thumbnails. Supports hashtag discovery for trending content. No login required — all public data.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 hours ago
Last modified
Categories
Share
TikTok Scraper -- Profiles, Videos & Hashtags
Scrape public TikTok data without login or API keys. Extract profile statistics, video metadata, engagement metrics, music info, and hashtag analytics from any public TikTok page.
Features
- Profile scraping -- follower count, following count, total likes, video count, bio, avatar, verification status
- Video metadata -- description, play count, likes, comments, shares, bookmarks, duration, creation time
- Music info -- song title, artist, album, music URL for each video
- Hashtag discovery -- view counts, video counts, and trending videos for any hashtag
- Comment extraction -- optionally capture top-level comments embedded in page data
- Hashtag & mention parsing -- extracts all #hashtags and @mentions from video descriptions
- Multiple data sources -- parses
__UNIVERSAL_DATA_FOR_REHYDRATION__,SIGI_STATE,__NEXT_DATA__, and HTML meta fallback - Anti-detection -- rotates 8 User-Agent strings, realistic browser headers, conservative rate limiting
- CAPTCHA handling -- detects TikTok's bot verification and stops gracefully with clear instructions
- Proxy support -- residential proxy configuration for reliable large-scale scraping
- Pay-per-event -- charged per profile/video scraped
Use Cases
Influencer Analytics
Track follower growth, engagement rates, and posting frequency for influencers and brand accounts. Compare metrics across competitors.
Hashtag Research
Discover trending hashtags, measure their reach (view counts), and find the most engaging content for any topic.
Content Strategy
Analyze what types of videos perform best (by likes, shares, plays) to inform your own content creation strategy.
Market Research
Monitor product mentions, brand sentiment, and industry trends through TikTok's public video data.
Competitive Intelligence
Track competitor accounts, their posting frequency, engagement metrics, and content themes over time.
Academic Research
Collect structured social media data for studies on content virality, platform dynamics, and digital culture.
Input
| Field | Type | Default | Description |
|---|---|---|---|
profiles | String[] | [] | TikTok usernames to scrape (without @). Example: ["charlidamelio", "khaby.lame"] |
hashtags | String[] | [] | Hashtags to scrape (without #). Example: ["fyp", "cooking"] |
maxVideos | Integer | 20 | Max videos per profile/hashtag. Set to 0 for all available. |
includeComments | Boolean | false | Extract top-level comments (only pre-rendered ones) |
maxConcurrency | Integer | 2 | Parallel requests. Keep low (1-3) for TikTok. |
proxyConfiguration | Object | (none) | Apify proxy settings. Residential proxies strongly recommended. |
Input Examples
Scrape top TikTok creators
{"profiles": ["charlidamelio", "khaby.lame", "bellapoarch", "addisonre"],"maxVideos": 30,"includeComments": false}
Discover trending hashtag content
{"hashtags": ["fyp", "cooking", "fitness", "smallbusiness"],"maxVideos": 50}
Full profile analysis with comments
{"profiles": ["tiktok", "netflix"],"maxVideos": 0,"includeComments": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Mixed profiles and hashtags
{"profiles": ["garyvee", "hubspot"],"hashtags": ["marketing", "entrepreneur"],"maxVideos": 20,"maxConcurrency": 1}
Output
The actor produces two types of records in the dataset: profiles and videos.
Profile Output
{"type": "profile","username": "charlidamelio","displayName": "Charli D'Amelio","userId": "5831967","followerCount": 155200000,"followingCount": 1423,"likeCount": 11800000000,"videoCount": 2456,"bio": "don't you dare","avatar": "https://p16-sign-va.tiktokcdn.com/...","verified": true,"privateAccount": false,"region": "US","language": "en","profileUrl": "https://www.tiktok.com/@charlidamelio","scrapedAt": "2026-03-01T12:00:00.000Z"}
Video Output
{"type": "video","videoId": "7340123456789012345","description": "new dance with @addisonre #fyp #dance #viral","author": "charlidamelio","authorDisplayName": "Charli D'Amelio","playCount": 45200000,"likeCount": 3800000,"commentCount": 42000,"shareCount": 125000,"bookmarkCount": 89000,"createTime": "2026-02-28T18:30:00.000Z","createTimeRaw": 1740766200,"duration": 15,"videoUrl": "https://www.tiktok.com/@charlidamelio/video/7340123456789012345","thumbnailUrl": "https://p16-sign-va.tiktokcdn.com/...","musicTitle": "original sound","musicAuthor": "Charli D'Amelio","musicUrl": "https://sf16-ies-music-va.tiktokcdn.com/...","musicAlbum": "","hashtags": ["fyp", "dance", "viral"],"mentions": ["addisonre"],"isAd": false,"isPinned": false,"scrapedAt": "2026-03-01T12:00:00.000Z"}
Hashtag Output
{"type": "hashtag","hashtag": "cooking","hashtagId": "20129","description": "Share your cooking videos!","viewCount": 892000000000,"videoCount": 45600000,"hashtagUrl": "https://www.tiktok.com/tag/cooking","scrapedAt": "2026-03-01T12:00:00.000Z"}
How It Works
TikTok server-renders initial page data into embedded JSON script tags. This actor:
- Fetches the public TikTok page via HTTP (no browser required)
- Looks for embedded data in
__UNIVERSAL_DATA_FOR_REHYDRATION__(primary),SIGI_STATE(fallback), or__NEXT_DATA__ - Parses the JSON to extract profile stats, video metadata, and hashtag info
- Falls back to HTML meta tags (
og:title,og:description) if JSON extraction fails - Saves structured data to the Apify dataset
This approach is fast and lightweight (no Puppeteer/Playwright overhead), but is limited to the data TikTok embeds in the initial page load (typically 20-30 videos per profile).
Important Notes
Data Limitations
- TikTok embeds a limited number of videos in the initial HTML (typically 20-30). For complete video histories, you would need browser-based scrolling.
- Comments are only available if TikTok pre-renders them in the page data.
- Private accounts will return limited or no data.
Anti-Bot Measures
TikTok has aggressive bot detection. For reliable scraping:
- Always use residential proxies -- datacenter IPs are almost always blocked
- Keep concurrency low (1-2) to avoid triggering rate limits
- The actor handles CAPTCHAs gracefully -- it logs a warning and saves any data collected before the block
Legal Notice
This actor scrapes only publicly available data from TikTok's web interface. No login, authentication, or private data access is involved. Users are responsible for ensuring their use complies with TikTok's Terms of Service and applicable laws. This tool is intended for research and analytics purposes.
Proxy Configuration
For best results, use Apify's residential proxies:
{"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Without proxies, TikTok will likely block requests from Apify's datacenter IPs. The actor will still attempt to scrape but may encounter CAPTCHAs on most or all requests.
Pricing (Pay Per Event)
This actor uses Apify's pay-per-event model:
- 1 event per profile scraped
- 1 event per video scraped
- 1 event per hashtag scraped
You only pay for successfully extracted data.
Related Actors
- TikTok Shop Scraper — TikTok Shop product data
- Instagram Scraper — Instagram posts and profiles
- Twitter Scraper — Twitter/X posts and profiles
- YouTube Scraper — YouTube video data
- Reddit Scraper — Reddit posts and comments