TikTok Scraper v2
Pricing
$400.00 / 1,000 result scrapeds
Pricing
$400.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Web Data Labs
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Scraper — Profiles, Hashtags & Video Data
Scrape TikTok data without the official API — no API key needed. Extract user profiles, video statistics, hashtag content, and individual video details. Export to JSON, CSV, Excel, or connect via Zapier / Make.com integration.
Why Use This TikTok Scraper?
TikTok's official API has strict rate limits, requires business verification, and doesn't expose all the data available on the web. This scraper extracts data directly from TikTok's web interface, giving you access to complete profile data, video statistics, and hashtag content — all without any API key.
No API key needed. No TikTok developer account or business verification required. Just configure your input, run the actor, and download structured data.
Key Features
- Profile scraping — extract user info, follower counts, bio, verification status, and recent videos
- Hashtag discovery — find trending videos for any hashtag with full engagement data
- Video details — get complete stats for any specific TikTok video
- Engagement metrics — views, likes, comments, shares, saves for every video
- Music & hashtag data — track name, artist, and all hashtags used in videos
- No API key needed — zero setup, no TikTok developer account required
- JSON & CSV export — download results in JSON, CSV, Excel, XML, or RSS
- Zapier / Make.com integration — connect to 5,000+ apps via webhooks
- Up to 1,000 videos per profile or hashtag scrape
- Anti-bot handling — built with Playwright and residential proxies for reliable access
Use Cases
1. Influencer Research & Vetting
Evaluate potential influencer partners with hard data. Analyze follower counts, engagement rates, posting frequency, and content themes before committing to partnerships. Compare multiple creators side-by-side.
2. Competitor Content Analysis
Monitor what content your competitors are posting on TikTok. Track their video performance, posting cadence, hashtag strategy, and audience engagement to inform your own content strategy.
3. Hashtag & Trend Discovery
Identify trending hashtags and viral content in your niche. Discover emerging trends early by monitoring hashtag video counts and engagement metrics. Time your content to ride trending waves.
4. Social Media Reporting & Analytics
Build automated reporting dashboards for your TikTok presence or your clients'. Pull engagement data on a schedule and feed it into Google Sheets, Looker, or any BI tool via the API.
5. Music & Audio Trend Tracking
Track which songs and audio clips are trending across TikTok. Invaluable for music labels, brand campaigns, and content creators looking to leverage popular audio in their videos.
6. Market Research & Consumer Insights
Understand what resonates with specific audiences on TikTok. Analyze video content, comments, and engagement patterns to derive insights about consumer preferences and cultural trends.
7. Brand Monitoring & Reputation Tracking
Monitor mentions of your brand on TikTok by searching hashtags and keywords. Track sentiment, engagement, and reach of user-generated content featuring your products or services.
8. Academic & Journalism Research
Collect TikTok data for research on social media behavior, content virality, platform dynamics, or cultural trends. Export clean, structured datasets for statistical analysis.
9. Content Performance Benchmarking
Analyze top-performing videos in your niche to understand what works. Study video lengths, posting times, hashtag counts, and engagement ratios to optimize your own content strategy.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action | string | Yes | "profile" | What to scrape: profile, hashtag, or video. |
username | string | For profile | — | TikTok username (without @). Required when action is profile. |
hashtag | string | For hashtag | — | Hashtag to scrape (without #). Required when action is hashtag. |
url | string | For video | — | Full TikTok video URL. Required when action is video. |
maxItems | integer | No | 5 | Maximum number of videos to scrape per run. Range: 1–1,000. |
proxyConfiguration | object | No | Apify Residential | Proxy settings. Residential proxies are strongly recommended — TikTok blocks datacenter IPs aggressively. |
Action Types
| Action | Description | Required Input |
|---|---|---|
profile | Scrape a user's profile info and recent videos | username |
hashtag | Discover trending videos for a hashtag | hashtag |
video | Get detailed stats for a specific video | url |
Input Examples
Scrape a user profile:
{"action": "profile","username": "tiktok","maxItems": 50}
Discover hashtag content:
{"action": "hashtag","hashtag": "coding","maxItems": 100}
Get specific video details:
{"action": "video","url": "https://www.tiktok.com/@username/video/1234567890"}
Output Format
Profile Scrape Output
Each profile scrape returns the user's profile data plus their recent videos.
Profile fields:
| Field | Type | Description |
|---|---|---|
type | string | Always "profile" |
id | string | TikTok user ID |
username | string | Username (handle) |
nickname | string | Display name |
bio | string | Profile biography text |
verified | boolean | Whether the account is verified |
privateAccount | boolean | Whether the account is private |
followers | integer | Total follower count |
following | integer | Number of accounts followed |
totalLikes | integer | Total likes received across all videos |
totalVideos | integer | Total number of videos posted |
avatarLarger | string | URL of the profile avatar (large) |
profileUrl | string | Full URL to the TikTok profile |
Video fields (within profile or hashtag results):
| Field | Type | Description |
|---|---|---|
videoId | string | Unique video identifier |
description | string | Video caption / description |
views | integer | Total view count |
likes | integer | Total like count |
comments | integer | Total comment count |
shares | integer | Total share count |
saves | integer | Total bookmark/save count |
duration | integer | Video length in seconds |
videoUrl | string | Direct URL to the TikTok video |
coverUrl | string | Video thumbnail image URL |
musicName | string | Name of the audio track used |
musicAuthor | string | Artist/creator of the audio track |
hashtags | array | List of hashtags used in the video |
createTime | string | Video creation timestamp |
Sample Output — Profile
{"type": "profile","id": "107955","username": "tiktok","nickname": "TikTok","bio": "Every second counts","verified": true,"privateAccount": false,"followers": 85200000,"following": 1032,"totalLikes": 2900000000,"totalVideos": 542,"avatarLarger": "https://p16-sign-va.tiktokcdn.com/...","profileUrl": "https://www.tiktok.com/@tiktok","videos": [{"videoId": "7350000000000000000","description": "The feels when your FYP just gets you 🥹","views": 4500000,"likes": 320000,"comments": 8500,"shares": 12000,"saves": 45000,"duration": 15,"videoUrl": "https://www.tiktok.com/@tiktok/video/7350000000000000000","coverUrl": "https://p16-sign-va.tiktokcdn.com/...","musicName": "original sound","musicAuthor": "TikTok","hashtags": ["fyp", "tiktok", "viral"],"createTime": "2026-03-15T14:30:00.000Z"}],"scrapedAt": "2026-04-09T10:30:00.000Z"}
Sample Output — Hashtag
{"type": "hashtag","hashtag": "coding","videoCount": 15000000,"videos": [{"videoId": "7340000000000000000","description": "Day 30 of learning Python 🐍 #coding #learnpython","views": 890000,"likes": 95000,"comments": 2300,"shares": 5600,"saves": 28000,"duration": 45,"videoUrl": "https://www.tiktok.com/@coder123/video/7340000000000000000","author": "coder123","musicName": "Aesthetic","musicAuthor": "Tollan Kim","hashtags": ["coding", "learnpython", "tech", "developer"]}],"scrapedAt": "2026-04-09T10:30:00.000Z"}
Code Examples
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")# Scrape a TikTok profilerun = client.actor("cryptosignals/tiktok-scraper").call(run_input={"action": "profile","username": "charlidamelio","maxItems": 20,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item.get("type") == "profile":print(f"@{item['username']} | {item['followers']:,} followers | {item['totalLikes']:,} likes")for video in item.get("videos", []):print(f" 📹 {video['views']:,} views | {video['likes']:,} likes | {video['description'][:60]}...")
Compare engagement across hashtags:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")hashtags = ["fitness", "cooking", "coding", "fashion"]for tag in hashtags:run = client.actor("cryptosignals/tiktok-scraper").call(run_input={"action": "hashtag","hashtag": tag,"maxItems": 10,})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())for item in items:videos = item.get("videos", [])if videos:avg_views = sum(v.get("views", 0) for v in videos) / len(videos)avg_likes = sum(v.get("likes", 0) for v in videos) / len(videos)print(f"#{tag}: {len(videos)} videos | avg {avg_views:,.0f} views | avg {avg_likes:,.0f} likes")
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });// Scrape hashtag contentconst run = await client.actor('cryptosignals/tiktok-scraper').call({action: 'hashtag',hashtag: 'smallbusiness',maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {for (const video of item.videos || []) {console.log(`${video.views?.toLocaleString()} views | ${video.description?.slice(0, 60)}...`);}}
cURL (Apify API)
Start a profile scrape:
curl -X POST "https://api.apify.com/v2/acts/cryptosignals~tiktok-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"action": "profile","username": "nasa","maxItems": 30}'
Start a hashtag scrape:
curl -X POST "https://api.apify.com/v2/acts/cryptosignals~tiktok-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"action": "hashtag","hashtag": "techreview","maxItems": 50}'
Fetch results:
$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
Integrations
Connect this scraper to 5,000+ apps via Apify's built-in integrations:
- Google Sheets — export TikTok data to spreadsheets for reporting and analysis
- Zapier — trigger workflows when new viral content is detected
- Make (Integromat) — build automated influencer monitoring pipelines
- Slack / Email — get alerts on trending hashtags or competitor activity
- Webhooks — send results to any HTTP endpoint in real-time
- Google BigQuery / Snowflake — load TikTok data into your data warehouse
Pricing
This actor uses pay-per-result pricing. You only pay for data successfully extracted — no charge for failed runs.
| Usage | Estimated Cost |
|---|---|
| 1 profile + 10 videos | ~$0.25–$0.75 |
| 50 hashtag videos | ~$1.00–$3.00 |
| 100 videos | ~$2.00–$5.00 |
| 1,000 videos (max per run) | ~$8.00–$15.00 |
Costs include Apify platform compute time and residential proxy usage (required for TikTok). Check the Apify pricing calculator for exact estimates.
Free tier available: Apify's free plan includes $5/month in platform credits — enough to scrape dozens of profiles and hundreds of videos.
Tips for Best Results
- Use residential proxies — TikTok aggressively blocks datacenter IPs. The default configuration uses Apify's residential proxy group, which is recommended.
- Start with smaller batches — test with 10–20 videos first, then scale up. This saves credits while you validate your workflow.
- Schedule recurring runs — set up daily or weekly runs via Apify Schedules to build a historical engagement database.
- Combine actions — use
profileto identify creators, thenhashtagto discover related content and trends. - Monitor engagement rates — likes/views ratio is more meaningful than raw view counts for influencer evaluation.
Frequently Asked Questions
Do I need a TikTok account or API key?
No. This scraper works without any TikTok credentials. No developer account, API key, or business verification required.
How many videos can I scrape per run?
Up to 1,000 videos per profile or hashtag scrape. For larger datasets, run multiple scrapes with different inputs.
Can I scrape private accounts?
No. Only publicly available profiles and content can be scraped. Private accounts return only basic profile metadata.
What's the difference between profile and hashtag scraping?
Profile scraping extracts a specific user's profile data and their recent videos. Hashtag scraping discovers trending videos for a given hashtag across all creators.
How fresh is the engagement data?
Data is scraped in real-time from TikTok's web interface. View counts, likes, and comments reflect the current state at the time of the scrape.
Can I export results to CSV or Excel?
Yes. Apify datasets support export to JSON, CSV, Excel (XLSX), XML, and RSS. Use the export buttons in the Apify console or append ?format=csv to the API endpoint.
Why do some videos show zero views?
TikTok occasionally delays public view count updates for recent videos. Videos posted in the last few hours may show 0 views temporarily.
Can I track a hashtag over time?
Yes. Use Apify Schedules to run the hashtag scrape daily or weekly. Compare results across runs to track trending content and engagement changes.
Is this compliant with TikTok's terms?
This scraper accesses only publicly available content displayed on TikTok's website. Users are responsible for ensuring their use case complies with applicable laws and platform policies.
Why are residential proxies required?
TikTok employs aggressive anti-bot measures that block most datacenter IP addresses. Residential proxies simulate real user connections and are essential for reliable data extraction.
Limitations
- Maximum 1,000 videos per run
- Only public profiles and content can be scraped
- TikTok's anti-bot measures may occasionally cause partial results — retry with a fresh run
- Video download URLs are not provided (only metadata and statistics)
- Comment text extraction is not included in the current version (engagement counts only)
- TikTok's page structure changes frequently — actor updates are released promptly
Support
Found a bug or have a feature request? Reach out through Apify's messaging system on the actor page, or leave a review with your feedback.
⭐ Found this useful?
If this actor saved you time, please leave a review on the Apify Store — it takes 30 seconds and helps other developers find it.
Questions or issues? Drop a comment below and I'll respond within 24 hours.