TikTok Data Extractor - Videos & Profiles
Pricing
from $2.00 / 1,000 results
TikTok Data Extractor - Videos & Profiles
Scrape TikTok videos, profiles, hashtags & search. Get plays, likes, shares, comments, bookmarks, captions, hashtags, music, subtitles, ad/sponsored flags, location, plus real creator stats (followers, following, total likes). Clean JSON. Residential-proxy ready.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
API HEROS
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
TikTok Data Extractor
Scrape TikTok videos, profiles, hashtags & search with full engagement metrics, real creator stats, captions, hashtags, music, subtitles, ad flags and location — delivered as clean, flat JSON. Built for scale on residential proxies.
✨ Why this Actor
- Complete video data — plays, likes, shares, comments, bookmarks, caption, hashtags, music, publish date, download & cover URLs.
- Real creator stats — followers, following, total likes, verification and bio, enriched from TikTok's own profile data (not estimates).
- 4 source types in one run — profiles, single videos, hashtag pages and keyword search.
- Anti‑bot resilient — 3‑tier extraction (TikTok internal API → embedded page state → DOM), stealth browser fingerprinting, automatic session rotation and retries.
- Ad & language detection — flags sponsored/ad posts and auto‑detects content language.
- Optional subtitles/captions.
- Clean flat JSON — ready for spreadsheets, BI tools, ML pipelines or your API.
📦 What you get
| Group | Fields |
|---|---|
| Creator | profile_name, profile_handle, profile_url, bio, profile_verified, profile_followers, profile_following, profile_total_likes |
| Engagement | plays, likes, shares, comments, bookmarks |
| Content | video_id, video_url, description, hashtags[], language, music_title, music_author, duration_seconds, created_at, subtitles[] |
| Flags & location | is_ad, is_pinned, is_sponsored, location_created |
| Media | video_download_url, video_cover_url |
| Meta | scraped_at, source_type |
🚀 Quick start
No code (Apify Console)
- Open the Actor, paste TikTok URLs or search terms into Start URLs.
- Set Max videos, click Start.
- Download the dataset as JSON, CSV or Excel.
Via API
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "startUrls": ["https://www.tiktok.com/@tiktok"], "maxItems": 50 }'
Via Apify SDK (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({startUrls: ['https://www.tiktok.com/@tiktok', 'https://www.tiktok.com/tag/dance', 'funny cats'],maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
⚙️ Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | string[] | — | Profile / video / hashtag URLs or search terms (required) |
maxItems | int | 50 | Total videos to return (required) |
maxItemsPerProfile | int | 30 | Cap per source |
proxyConfiguration | object | Apify Residential | Proxy settings (Apify Proxy recommended) |
downloadSubtitles | bool | false | Extract captions/subtitles |
includeProfileDetails | bool | true | Add creator follower/like stats |
scrollPaginationCount | int | 5 | Scroll loads per page (~15-20 videos each) |
customMsDelay | int | 2500 | Delay between actions (ms) |
Supported URLs
https://www.tiktok.com/@username → Profilehttps://www.tiktok.com/@user/video/123 → Single videohttps://www.tiktok.com/tag/dance → Hashtagfunny cats → Search (auto-detected)
📤 Output — real example
{"profile_name": "TikTok","profile_handle": "@tiktok","profile_url": "https://www.tiktok.com/@tiktok","bio": "One TikTok can make a big impact","profile_verified": true,"profile_followers": 94980390,"profile_following": 0,"profile_total_likes": 462128553,"likes": 3027,"shares": 151,"plays": 160100,"comments": 680,"bookmarks": 184,"video_id": "7666214645006421278","video_url": "https://www.tiktok.com/@tiktok/video/7666214645006421278","description": "for 39 days, the For You Feed made the whole world feel like next door 🏆⚽","hashtags": [],"language": "eng","music_title": "original sound - TikTok","created_at": "2026-07-24T21:48:21.000Z","is_ad": false,"is_pinned": false,"is_sponsored": false,"location_created": null,"video_download_url": "https://v16-webapp-prime.tiktok.com/video/tos/...","video_cover_url": "https://p16-common-sign.tiktokcdn.com/...","scraped_at": "2026-07-26T22:19:56.135Z","source_type": "profile_api"}
Hashtag and ad detection in action (another real record):
{ "hashtags": ["TechTok", "TikTokAlgorithm", "ForYouPage", "LearnOnTikTok"], "is_ad": true }
🛡️ Reliability & anti‑bot
- API interception (primary) — captures TikTok's internal JSON responses for the cleanest, fullest data.
- Embedded state fallback — parses
__UNIVERSAL_DATA_FOR_REHYDRATION__/SIGI_STATEif the API path is unavailable. - DOM fallback — last‑resort scraping of visible elements. Plus stealth fingerprinting, residential‑proxy session rotation, and automatic retries on 403/429/CAPTCHA.
🔌 Proxy
TikTok aggressively blocks datacenter IPs. Use Apify Residential proxy (the default) for reliable results. Advanced users can supply their own proxies via proxyConfiguration.proxyUrls.
⚡ Performance
~8–20 videos/minute depending on customMsDelay and proxy latency. Raise scrollPaginationCount and maxItemsPerProfile for large profiles.
💰 Pricing
- Free trial — first 100 videos free.
- Pay‑as‑you‑go — $2 per 1,000 videos (~$0.002/video); pay only for what you scrape.
- Monthly — Starter $29/mo (5,000 videos), Professional $99/mo (30,000 + subtitles + priority), Enterprise custom (unlimited, dedicated proxies, SLA).
Set pricing in Apify Console → your Actor → Monetization. Apify Residential proxy usage is billed by Apify.
❓ FAQ
Do I need my own proxies? No — Apify Residential proxy is the default and recommended.
Why are some fields empty? TikTok doesn't always return every field (e.g. photo carousels have no video_download_url). source_type shows which extraction tier produced the record.
Can I scrape a whole profile? Yes — raise maxItemsPerProfile and scrollPaginationCount.
Is this compliant? Designed for legitimate research/analytics. You must comply with TikTok's ToS, GDPR and CCPA.
📞 Support
Issues? Open the Actor's Issues tab or email support@yourcompany.com. Licensed under Apache‑2.0.