TikTok Scraper — Profiles, Videos, Comments & Search
Pricing
from $1.50 / 1,000 profile scrapeds
TikTok Scraper — Profiles, Videos, Comments & Search
Stop paying $3.70/1K for TikTok data. 6 scrapers in one actor. Profiles, videos, comments, search - 30-68% cheaper than Clockworks. 59+ fields, Clockworks-compatible output. MCP-ready for AI agents. No TikTok API needed. Integrates w n8n, Make, Zapier, Google Sheets.
Pricing
from $1.50 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Japi Cricket
Actor stats
0
Bookmarked
6
Total users
4
Monthly active users
5 days ago
Last modified
Categories
Share
What's new in 0.1.96 — Fuzzy username search (finds @gordonramsayofficial from "gordonramsay"), comment reply threading (50 replies/comment), related video discovery, error categorization, parallel scraping (3x faster), smart input parsing, run summary dashboard.
What does All-in-One TikTok Scraper do?
All-in-One TikTok Scraper extracts structured data from TikTok profiles, videos, comments, and user searches. 30–68% cheaper than Clockworks with the same output fields — drop-in replacement.
6 scrapers in one actor: Profile Scraper, Video Scraper, User Search, Comments Scraper, plus All-in-One and Data Extractor modes. Clockworks-compatible output format.
What data can you get from TikTok?
All-in-One TikTok Scraper can gather the following data:
- 👤 Profile name, nickname, bio, avatar, bio link
- ❤️ Likes (hearts), followers, following, video count
- ✅ Verified status, private account, TikTok Shop seller
- ▶️ Video views (plays), likes, shares, comments, saves
- 🔗 Video URL, profile URL, cover image
- 📝 Video caption/description
- 🎵 Music name, author, original sound
- ⏱️ Video duration, dimensions, format
- 🏷️ Hashtags used in video
- 📢 Ad post, pinned post, sponsored, slideshow
- 📍 Location of creation
- 💬 Full comment text, likes, reply count
- 👥 Comment author info (username, nickname)
- 📋 Mentions and detailed mentions
How to scrape TikTok with All-in-One TikTok Scraper?
- Create a free Apify account using your email
- Open All-in-One TikTok Scraper
- Choose your scraper mode (profiles, videos, comments, or search)
- Add usernames, video URLs, or search queries
- Click Start and wait for the data to be extracted
- Download your data in JSON, CSV, Excel, XML, or HTML
🔧 6 Scraping Modes
| Mode | Description | Input Field | Best For |
|---|---|---|---|
| 👤 Profile Scraper | Scrape TikTok user profiles with full stats | profiles | Influencer research, lead generation |
| 📹 Video Scraper | Scrape specific videos with full engagement data | postURLs | Content analysis, trend tracking |
| 🔍 User Search | Look up TikTok users by username | searchQueries | Creator discovery, competitor research |
| 💬 Comments Scraper | Scrape video comments with likes and replies | postURLs | Sentiment analysis, audience insights |
| 🎹 All-in-One | Combine profiles + videos + search in one run | All fields | Comprehensive data collection |
| 📊 Data Extractor | Lightweight version of All-in-One | All fields | Quick data extraction |
🧭 Which Mode Should I Use?
| Your Goal | Use This Mode | Why |
|---|---|---|
| "I need creator profiles for outreach" | Profile Scraper + User Search | Get 100+ usernames in one run, then deep-dive into follower stats and bio data |
| "I'm analyzing a viral video's engagement" | Video Scraper | Full stats (likes, views, shares, saves) + music metadata + author info in 59+ fields |
| "I want to find a creator but don't know their exact handle" | User Search | Fuzzy matching finds @gordonramsayofficial from just "gordonramsay" — tries 21 variations |
| "I need comment sentiment for a brand" | Comments Scraper | Full comment text, likes, threaded replies (up to 50/comment), author info, language detection |
| "I'm building a TikTok analytics dashboard" | All-in-One | Profiles + videos in one run — feed directly into Google Sheets, Airtable, or your data warehouse |
| "I just need quick data, keep it simple" | Data Extractor | Same as All-in-One but at a lower price point — ideal for high-volume, cost-sensitive workloads |
💰 Pricing — Pay Per Result, No Monthly Fee
| Mode | Price per 1,000 | Clockworks Price | You Save |
|---|---|---|---|
| Comments Scraper | from $0.40 | $1.25/1K | 68% |
| Data Extractor | from $1.38 | $2.00/1K | 31% |
| Profile Scraper | from $1.50 | $4.00/1K | 63% |
| All-in-One | from $1.50 | $3.70/1K | 59% |
| User Search | from $2.00 | $3.23/1K | 38% |
| Video Scraper | from $3.10 | $5.00/1K | 38% |
"From" prices are for Business/Gold tier. Free tier prices are higher (e.g. Profile $2.40/1K). See the Pricing tab for exact tier pricing. No proxy needed. No add-on fees.
💡 Cheapest way to get started: Comments scraping at $0.40/1K (Business) or $0.65/1K (Free) — great for sentiment analysis and audience research without breaking the bank.
Cost examples:
- 100 profiles: $0.15 (Business) / $0.24 (Free)
- 1,000 video comments: $0.40 (Business) / $0.65 (Free)
- 500 videos with engagement: $1.55 (Business) / $2.50 (Free)
- 10,000 comments: $4.00 (Business) — cheapest entry point
⚡ Key Features
- 6 scraping modes for every TikTok use case
- 59+ data fields per video — full Clockworks compatibility
- No proxy needed — all modes work on standard infrastructure
- Pay per result — no monthly fee, no minimum
- 30–68% cheaper than Clockworks across all modes
- MCP-compatible for AI agents (Claude, GPT, Cursor)
- Clockworks drop-in replacement — same output field names
- Smart input parsing — paste URLs, @handles, or usernames — auto-detected
- Automatic deduplication — duplicate inputs are removed before scraping
- Parallel scraping — up to 3 concurrent requests for faster results
- Memory-aware — automatically reduces concurrency if memory is high
- Run summary — every run saves a
summary.jsonto the key-value store with stats, duration, and success rate - Related video discovery — finds more videos per profile by following related video links (goes beyond the ~10 embed page limit)
- Comment reply threading — automatically fetches replies for each comment (up to 50 replies per comment)
- Error categorization — classifies failures as DELETED, RATE_LIMITED, FORMAT_CHANGE, NETWORK, or BLOCKED for easy debugging
- Download URL validation —
videoMeta.downloadUrlValidflag tells you if download URLs are fresh - Fuzzy username search — searching "gordonramsay" finds @gordonramsayofficial automatically (tries suffixes like official, real, tiktok + dot/underscore variations)
📥 Input Examples
Profile Scraping
{"scrapeMode": "tiktok-profile-scraper","profiles": ["charlidamelio", "khaby.lame", "bellapoarch"],"resultsPerPage": 20}
Video Scraping (full engagement data)
{"scrapeMode": "tiktok-video-scraper","postURLs": ["https://www.tiktok.com/@khaby.lame/video/7505030969712217366","https://www.tiktok.com/@khaby.lame/video/7494637665753713942"]}
Comments Scraping
{"scrapeMode": "tiktok-comments-scraper","postURLs": ["https://www.tiktok.com/@khaby.lame/video/7505030969712217366"],"resultsPerPage": 100}
User Search (by username)
{"scrapeMode": "tiktok-user-search-scraper","searchQueries": ["gordonramsay", "addisonre", "zachking"],"maxProfilesPerQuery": 1}
All-in-One (profiles + videos in one run)
{"scrapeMode": "tiktok-scraper","profiles": ["charlidamelio", "khaby.lame"],"resultsPerPage": 10}
Data Extractor (lightweight)
{"scrapeMode": "tiktok-data-extractor","profiles": ["charlidamelio"],"resultsPerPage": 5}
📊 Output — All 6 Modes
1. Profile Scraper (tiktok-profile-scraper) — 21 fields
| Field | Type | Description |
|---|---|---|
id | string | TikTok user ID |
name | string | Username (uniqueId) |
nickName | string | Display name |
verified | boolean | Verified account |
signature | string | Bio text |
avatar | string | Avatar thumbnail URL |
avatarMedium | string | Medium-size avatar URL |
originalAvatarUrl | string | Full-size avatar URL (highest resolution) |
bioLink | string | Link in bio |
privateAccount | boolean | Private account |
ttSeller | boolean | TikTok Shop seller |
roomId | string | Live room ID |
fans | integer | Follower count |
following | integer | Following count |
friends | integer | Friends count |
heart | integer | Total likes received |
video | integer | Video count |
digg | integer | Liked videos count |
secUid | string | Secure user ID |
profileUrl | string | Full profile URL |
region | string | Region code |
input | string | Input that produced this result |
2. Video Scraper (tiktok-video-scraper) — 59+ fields
| Category | Fields |
|---|---|
| Core | id, text, createTime, createTimeISO, webVideoUrl, mediaUrls[], textLanguage |
| Engagement | diggCount, shareCount, playCount, collectCount, commentCount |
| Flags | isAd, isMuted, isPinned, isSlideshow, isSponsored, locationCreated |
| Author | authorMeta.id, .name, .profileUrl, .nickName, .verified, .signature, .bioLink, .avatar, .originalAvatarUrl, .privateAccount, .ttSeller, .roomId, .commerceUserInfo.commerceUser, .following, .friends, .fans, .heart, .video, .digg |
| Music | musicMeta.musicName, .musicAuthor, .musicOriginal, .musicAlbum, .playUrl, .coverMediumUrl, .musicId |
| Video | videoMeta.height, .width, .duration, .definition, .format, .coverUrl, .originalCoverUrl, .downloadAddr, .originalDownloadAddr, .downloadUrlValid, .subtitleLinks[] |
| Social | hashtags[], mentions[], detailedMentions[], effectStickers[], slideshowImageLinks[] |
3. User Search (tiktok-user-search-scraper) — 21 fields
| Field | Type | Description |
|---|---|---|
id | string | TikTok user ID |
name | string | Username (uniqueId) |
nickName | string | Display name |
verified | boolean | Verified account |
signature | string | Bio text |
avatar | string | Avatar thumbnail URL |
avatarMedium | string | Medium-size avatar URL |
originalAvatarUrl | string | Full-size avatar URL (highest resolution) |
bioLink | string | Link in bio |
privateAccount | boolean | Private account |
ttSeller | boolean | TikTok Shop seller |
roomId | string | Live room ID |
fans | integer | Follower count |
following | integer | Following count |
friends | integer | Friends count |
heart | integer | Total likes received |
video | integer | Video count |
digg | integer | Liked videos count |
secUid | string | Secure user ID |
profileUrl | string | Full profile URL |
region | string | Region code |
input | string | Input that produced this result |
4. Comments Scraper (tiktok-comments-scraper) — 16+ fields
| Field | Type | Description |
|---|---|---|
id | string | Comment ID |
videoId | string | Parent video ID |
text | string | Comment text |
createTime | string | ISO timestamp |
likes | integer | Comment likes |
replyCount | integer | Number of replies |
isAuthorLiked | boolean | Liked by video author |
language | string | Comment language |
author.id | string | Commenter user ID |
author.uniqueId | string | Commenter username |
author.nickname | string | Commenter display name |
author.avatar | string | Commenter avatar URL |
author.verified | boolean | Commenter verified |
replies[] | array | Threaded replies (up to 50 per comment, same fields as parent) |
replies[].parentCommentId | string | ID of parent comment |
replies[].isReply | boolean | true for reply comments |
videoUrl | string | Parent video URL |
input | string | Input that produced this result |
5. All-in-One (tiktok-scraper) — Video output (59+ fields)
Discovers recent videos for each profile via TikTok's embed page, then scrapes each video page for full engagement data.
| Category | Fields |
|---|---|
| Core | id, text, createTime, createTimeISO, webVideoUrl, mediaUrls[], textLanguage |
| Engagement | diggCount, shareCount, playCount, collectCount, commentCount |
| Flags | isAd, isMuted, isPinned, isSlideshow, isSponsored, locationCreated |
| Author | authorMeta.id, .name, .profileUrl, .nickName, .verified, .signature, .bioLink, .avatar, .originalAvatarUrl, .privateAccount, .ttSeller, .roomId, .commerceUserInfo.commerceUser, .following, .friends, .fans, .heart, .video, .digg |
| Music | musicMeta.musicName, .musicAuthor, .musicOriginal, .musicAlbum, .playUrl, .coverMediumUrl, .musicId |
| Video | videoMeta.height, .width, .duration, .definition, .format, .coverUrl, .originalCoverUrl, .downloadAddr, .originalDownloadAddr, .downloadUrlValid, .subtitleLinks[] |
| Social | hashtags[], mentions[], detailedMentions[], effectStickers[], slideshowImageLinks[] |
6. Data Extractor (tiktok-data-extractor) — Video output (59+ fields)
Lightweight version of All-in-One. Discovers and scrapes profile videos with full engagement data.
| Category | Fields |
|---|---|
| Core | id, text, createTime, createTimeISO, webVideoUrl, mediaUrls[], textLanguage |
| Engagement | diggCount, shareCount, playCount, collectCount, commentCount |
| Flags | isAd, isMuted, isPinned, isSlideshow, isSponsored, locationCreated |
| Author | authorMeta.id, .name, .profileUrl, .nickName, .verified, .signature, .bioLink, .avatar, .originalAvatarUrl, .privateAccount, .ttSeller, .roomId, .commerceUserInfo.commerceUser, .following, .friends, .fans, .heart, .video, .digg |
| Music | musicMeta.musicName, .musicAuthor, .musicOriginal, .musicAlbum, .playUrl, .coverMediumUrl, .musicId |
| Video | videoMeta.height, .width, .duration, .definition, .format, .coverUrl, .originalCoverUrl, .downloadAddr, .originalDownloadAddr, .downloadUrlValid, .subtitleLinks[] |
| Social | hashtags[], mentions[], detailedMentions[], effectStickers[], slideshowImageLinks[] |
📝 Sample Output — 1. Profile Scraper
{"id": "5831967","name": "charlidamelio","nickName": "Charli D'Amelio","verified": true,"signature": "don't you dare","fans": 156400000,"following": 1406,"heart": 3421670739,"video": 3010,"profileUrl": "https://www.tiktok.com/@charlidamelio","input": "charlidamelio"}
📝 Sample Output — 2. Video Scraper
{"id": "7619450446956006686","text": "wise words from @Charlie Puth to all of the artists out there...","createTimeISO": "2026-03-20T21:19:23.000Z","diggCount": 1265,"playCount": 45300,"shareCount": 44,"commentCount": 286,"collectCount": 147,"webVideoUrl": "https://www.tiktok.com/@tiktok/video/7619450446956006686","authorMeta": {"name": "tiktok","nickName": "TikTok","verified": true,"fans": 83200000},"musicMeta": {"musicName": "original sound","musicAuthor": "TikTok","musicOriginal": true},"hashtags": [],"submittedVideoUrl": "https://www.tiktok.com/@tiktok/video/7619450446956006686","input": "https://www.tiktok.com/@tiktok/video/7619450446956006686"}
📝 Sample Output — 3. User Search
{"id": "6840164168579728389","name": "dance","nickName": "Phoenix Dance Studio","verified": false,"signature": "The Official @dance on TikTok","fans": 33300,"following": 6,"friends": 4,"heart": 2043,"video": 0,"secUid": "MS4wLjABAAAAkV6s6lQu-8pXYcs8A84O5Anoj-8i2PVUO9WWgsM-LfYC2_lNP8swHcp9vUh160XU","profileUrl": "https://www.tiktok.com/@dance","input": "dance"}
📝 Sample Output — 4. Comments Scraper
{"id": "7619450743552656149","videoId": "7619450446956006686","text": "helal olsun","createTime": "2026-03-20T21:20:44.000Z","likes": 9,"replyCount": 1,"isAuthorLiked": false,"language": "tr","author": {"id": "7382251706498024454","uniqueId": "erkannnnn42","nickname": "erkannn42","verified": false},"replies": [{"id": "7619451234567890123","videoId": "7619450446956006686","text": "agreed!","createTime": "2026-03-20T21:25:10.000Z","likes": 2,"replyCount": 0,"isAuthorLiked": false,"parentCommentId": "7619450743552656149","isReply": true,"author": {"id": "7382251706498024455","uniqueId": "user123","nickname": "User 123","verified": false}}],"videoUrl": "https://www.tiktok.com/@tiktok/video/7619450446956006686","input": "https://www.tiktok.com/@tiktok/video/7619450446956006686"}
📝 Sample Output — 5. All-in-One
{"id": "7619450446956006686","text": "wise words from @Charlie Puth to all of the artists out there...","createTime": "1742504363","createTimeISO": "2026-03-20T21:19:23.000Z","diggCount": 1263,"playCount": 45300,"shareCount": 44,"commentCount": 285,"collectCount": 147,"webVideoUrl": "https://www.tiktok.com/@tiktok/video/7619450446956006686","isAd": false,"isPinned": false,"isSlideshow": false,"authorMeta": {"id": "107955","name": "tiktok","nickName": "TikTok","verified": true,"fans": 83200000,"following": 892,"heart": 645000000},"musicMeta": {"musicName": "original sound","musicAuthor": "TikTok","musicOriginal": true,"musicId": "7619450420871595776"},"videoMeta": {"height": 1024,"width": 576,"duration": 57,"definition": "720p"},"hashtags": [],"mentions": ["charlieputh"],"input": "tiktok"}
📝 Sample Output — 6. Data Extractor
{"id": "7619450446956006686","text": "wise words from @Charlie Puth to all of the artists out there...","createTime": "1742504363","createTimeISO": "2026-03-20T21:19:23.000Z","diggCount": 1268,"playCount": 45400,"shareCount": 44,"commentCount": 287,"collectCount": 149,"webVideoUrl": "https://www.tiktok.com/@tiktok/video/7619450446956006686","isAd": false,"isPinned": false,"isSlideshow": false,"authorMeta": {"id": "107955","name": "tiktok","nickName": "TikTok","verified": true,"fans": 83200000,"following": 892,"heart": 645000000},"musicMeta": {"musicName": "original sound","musicAuthor": "TikTok","musicOriginal": true,"musicId": "7619450420871595776"},"videoMeta": {"height": 1024,"width": 576,"duration": 57,"definition": "720p"},"hashtags": [],"mentions": ["charlieputh"],"input": "tiktok"}
📥 Download Your Data
After every run, download your data in any format:
- JSON — for developers and API integrations
- CSV — for spreadsheets and data analysis
- Excel (XLSX) — for business users
- XML — for data pipelines
Google Sheets: Use =IMPORTDATA() with the CSV download link for instant import.
All 7 Apify export formats available: JSON, JSONL, CSV, XLSX, XML, HTML Table, RSS.
🤖 MCP-Compatible for AI Agents
This scraper works with AI agents via the Model Context Protocol (MCP). Connect it to Claude Desktop, Cursor, GPT, or any MCP-compatible client.
Setup:
- Go to mcp.apify.com
- Add "All-in-One TikTok Scraper" to your MCP server
- Ask your AI: "Scrape the TikTok profile for charlidamelio and get follower stats"
🎯 Use Cases
- Influencer Research: Find creators by username, compare follower counts and engagement rates
- Trend Tracking: Monitor viral videos with play counts, likes, and shares
- Campaign Planning: Research hashtags, engagement rates, and audience sentiment before launching
- Sentiment Analysis: Analyze video comments for brand perception and customer feedback
- Competitor Analysis: Track competitor content performance and follower growth
- Academic Research: Collect structured data for social media studies
- AI Agent Workflows: Feed TikTok data into Claude, GPT, or custom AI pipelines via MCP
💻 Getting Started with Code
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });// Scrape TikTok profilesconst run = await client.actor('get-leads/all-in-one-tiktok-scraper').call({scrapeMode: 'tiktok-profile-scraper',profiles: ['charlidamelio', 'khaby.lame'],resultsPerPage: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")# Scrape TikTok profilesrun = client.actor("get-leads/all-in-one-tiktok-scraper").call(run_input={"scrapeMode": "tiktok-profile-scraper","profiles": ["charlidamelio", "khaby.lame"],"resultsPerPage": 20,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/get-leads~all-in-one-tiktok-scraper/runs?token=YOUR_TOKEN" \-X POST \-H "Content-Type: application/json" \-d '{"scrapeMode": "tiktok-profile-scraper","profiles": ["charlidamelio"],"resultsPerPage": 20}'
🔄 Integrations
Connect TikTok Scraper to any workflow — no coding required:
| Integration | Example Workflow |
|---|---|
| Google Sheets | Auto-export influencer profiles to a spreadsheet every Monday for weekly reporting |
| Zapier | When new videos are scraped, send a Slack message with engagement stats to your marketing team |
| Make (Integromat) | Scrape competitor TikTok profiles daily → compare follower growth in Airtable → alert on spikes |
| n8n | Monitor brand mentions in comments → run sentiment analysis → create tickets for negative feedback |
| Slack | Get notified when a scheduled scrape completes with a summary of top-performing videos |
| Webhooks | Trigger your custom API when new data is ready — build real-time dashboards or feed into ML pipelines |
| REST API | Integrate into any app — start runs, poll status, download results programmatically |
| JavaScript/Python SDK | Build custom data pipelines with full control over input, output, and scheduling |
| MCP for AI Agents | Ask Claude or GPT to scrape TikTok and analyze trends in a single conversation |
Scheduled runs: Set up daily, weekly, or hourly scrapes directly in the Apify Console — no cron jobs or servers needed.
❓ FAQ
How much does it cost to use All-in-One TikTok Scraper? Pay-per-result pricing from $0.40/1K (comments) to $3.10/1K (videos) at Business tier. Free tier starts at $0.65/1K. 30–68% cheaper than Clockworks across all modes. See the Pricing tab for exact costs.
Is there a monthly subscription? No. Pay only for what you scrape. No minimum, no commitment.
Do I need a proxy? No. All modes work without proxy on Apify's standard infrastructure.
What data do I get from video scraping? Full engagement data: likes (diggCount), views (playCount), shares, comments, saves (collectCount), plus author info, music metadata, video duration, hashtags, mentions, and cover images.
Can I scrape comments? Yes. The comments scraper returns full comment text, likes, reply count, user info, and creation timestamp. Supports pagination up to the full comment count.
How does this compare to Clockworks TikTok scrapers? Same output fields, same data quality, 30–68% cheaper. Clockworks-compatible output format means you can switch without changing your data pipeline.
Can I scrape thousands of profiles? Yes. Provide a list of usernames and the scraper processes them in parallel (3 concurrent) with built-in retry logic and error recovery.
How do I use this with AI agents? Connect via MCP at mcp.apify.com. Add this actor to your MCP server, then ask your AI to scrape TikTok.
How fast is it? Parallel scraping: 3 profiles/videos at once, 2 search queries at once. ~15 seconds per 20 profiles (with parallel). Comments: ~5 seconds per 100 comments. Video scraping: ~1-2 seconds per video. No proxy overhead.
What happens with private or deleted profiles? Private profiles return limited data (username, verified status, private flag). Deleted or non-existent profiles are skipped with a warning in the run log. The scraper continues with the remaining inputs.
What happens if a video is deleted or unavailable? The scraper logs a warning and moves to the next video. You're only charged for successfully scraped results.
Can I use integrations with this scraper? Yes — Make, Zapier, Slack, Airbyte, Google Sheets, Google Drive, webhooks, REST API, and more.
What input formats are accepted?
Profiles: usernames (charlidamelio), @handles (@charlidamelio), or full URLs (https://www.tiktok.com/@charlidamelio). Videos: full URLs or just the video ID (19+ digits). All formats are auto-detected. Duplicates are removed automatically.
What if I don't know the exact TikTok username? The user search mode has fuzzy matching — searching "gordonramsay" will automatically find @gordonramsayofficial. It tries common TikTok username suffixes (official, real, tiktok) and dot/underscore variations.
How much does it cost to get started? Apify gives you $5 free usage credits every month on the Free plan. That's enough for ~7,700 comments, ~2,000 profiles, or ~1,000 videos. For regular scraping, the $49/month Scale plan gives you the best value with 25% volume discounts.
How can I use TikTok Scraper with the Apify API? The Apify API gives you full programmatic access — start runs, fetch results, manage schedules, and more. Use the apify-client NPM package for Node.js or the apify-client PyPI package for Python. See the Apify API reference for full details, or click the API tab above for code examples.
Is it legal to scrape TikTok? This scraper only extracts publicly available data. It does not extract private user data such as email addresses, gender, or location. Personal data is protected by GDPR and other regulations — ensure you have a legitimate reason for processing any personal data you collect. Read more about the legality of web scraping and ethical scraping on the Apify blog.
🔗 More Scrapers by get-leads
Need data from other platforms? Check out our other scrapers:
| Scraper | What it does | Price |
|---|---|---|
| All-in-One Amazon Scraper | Products, reviews, sellers, bestsellers, deals — 15 marketplaces | from $0.75/1K |
| All-in-One LinkedIn Scraper | Profiles, companies, jobs, posts, search | from $2.00/1K |
| Real Estate Agent Scraper | Agents from Google Maps with email, phone, license | from $3.00/1K |
| Google Maps Scraper | Any business from Google Maps — 35+ fields per place | from $1.00/1K |
All scrapers: no proxy needed, MCP-ready, Clockworks-compatible where applicable.
📋 Changelog
0.1.97 (2026-03-22)
- "Which Mode Should I Use?" decision matrix — helps users self-serve the right mode for their use case
- "What's New" banner — highlights latest features at the top of the README
0.1.96 (2026-03-22)
- Cross-linking — README links to all get-leads scrapers (Amazon, LinkedIn, Real Estate, Google Maps)
- Free credits FAQ — mentions $5/month free Apify credits and Scale plan recommendation
- API reference FAQ — links to Apify API docs, NPM and PyPI client packages
- Legality blog links — links to Apify blog posts on legality and ethical scraping
0.1.92 (2026-03-22)
- Fuzzy username search — searching "gordonramsay" now finds @gordonramsayofficial automatically. Tries common suffixes (official, real, tiktok) and dot/underscore variations. Up to 21 variations per query.
0.1.88 (2026-03-22)
- SEO optimization — improved title, SEO description, and categories for Apify Store discoverability
- Error categorization — failures classified as DELETED, RATE_LIMITED, FORMAT_CHANGE, NETWORK, or BLOCKED with
errorsByCategoryin run summary - Download URL validation —
videoMeta.downloadUrlValidflag,mediaUrlsfallback toplayAddr - High-res profile avatars — new
avatarMediumfield,originalAvatarUrlnow always returns highest resolution - Stale test detection — daily test schedules updated with redundant inputs (2 profiles, 2 videos)
0.1.87 (2026-03-22)
- More videos per profile — follows related video links from each video page to discover beyond the ~10 embed page limit
- Comment reply threading — automatically fetches up to 50 replies per comment with
parentCommentIdandisReplyfields
0.1.86 (2026-03-22)
- Smart input parsing — paste full TikTok URLs, @handles, or plain usernames in the profiles field — auto-detected and extracted
- Automatic deduplication — duplicate profiles, video URLs, and search queries are removed before scraping
- Input validation — warns you immediately if you paste a profile URL in the video/comments field (or vice versa)
- Run summary — every run saves
summary.jsonto the key-value store with results, errors, duration, and memory usage - Memory-aware concurrency — automatically reduces parallel requests if memory exceeds 170MB to prevent crashes
0.1.84 (2026-03-22)
- Parallel scraping — 3x faster for large batches (profiles/videos run 3 concurrent, search/comments run 2 concurrent)
- Retry logic — automatic retry with exponential backoff on all HTTP requests (no more lost results from temporary errors)
- Better error messages — detects when you accidentally paste a profile URL in comments mode and tells you what to fix
0.1.73 (2026-03-21)
- Published to Apify Store — all 6 scraping modes live
- Pay-per-event billing — 6 separate pricing tiers for different data types
- 59+ video fields — full Clockworks-compatible output
- Comment scraping — full pagination support via TikTok's comment API
- Video discovery — embed page extraction for All-in-One mode
0.1.55 (2026-03-21)
- Video scraper, comment scraper, and user search modes added
- Embed page video discovery for All-in-One mode
- Native fetch for comment API (Impit JSON truncation fix)
0.1.18 (2026-03-19)
- Initial HTTP-only profile scraper
- Impit Chrome TLS fingerprinting
- SessionPool with cookie jar rotation
Your feedback
We're always working on improving performance. If you have technical feedback or found a bug, please create an issue in the Issues tab or leave a review.
Built by get-leads — the team behind Real Estate Agent Scraper, Amazon Product Scraper, LinkedIn Scraper, and Google Maps Scraper.