TikTok Data Extractor - Videos & Profiles avatar

TikTok Data Extractor - Videos & Profiles

Pricing

from $2.00 / 1,000 results

Go to Apify Store
TikTok Data Extractor - Videos & Profiles

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

API HEROS

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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

GroupFields
Creatorprofile_name, profile_handle, profile_url, bio, profile_verified, profile_followers, profile_following, profile_total_likes
Engagementplays, likes, shares, comments, bookmarks
Contentvideo_id, video_url, description, hashtags[], language, music_title, music_author, duration_seconds, created_at, subtitles[]
Flags & locationis_ad, is_pinned, is_sponsored, location_created
Mediavideo_download_url, video_cover_url
Metascraped_at, source_type

🚀 Quick start

No code (Apify Console)

  1. Open the Actor, paste TikTok URLs or search terms into Start URLs.
  2. Set Max videos, click Start.
  3. 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

FieldTypeDefaultDescription
startUrlsstring[]Profile / video / hashtag URLs or search terms (required)
maxItemsint50Total videos to return (required)
maxItemsPerProfileint30Cap per source
proxyConfigurationobjectApify ResidentialProxy settings (Apify Proxy recommended)
downloadSubtitlesboolfalseExtract captions/subtitles
includeProfileDetailsbooltrueAdd creator follower/like stats
scrollPaginationCountint5Scroll loads per page (~15-20 videos each)
customMsDelayint2500Delay between actions (ms)

Supported URLs

https://www.tiktok.com/@username → Profile
https://www.tiktok.com/@user/video/123 → Single video
https://www.tiktok.com/tag/dance → Hashtag
funny 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

  1. API interception (primary) — captures TikTok's internal JSON responses for the cleanest, fullest data.
  2. Embedded state fallback — parses __UNIVERSAL_DATA_FOR_REHYDRATION__ / SIGI_STATE if the API path is unavailable.
  3. 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.