TikTok Profile Scraper - Videos, Views, Likes and Captions
Pricing
from $0.40 / 1,000 results
TikTok Profile Scraper - Videos, Views, Likes and Captions
Scrape public TikTok profiles into clean JSON: video URL, caption, views, plays, likes, comments, shares, saves, duration, music, cover and post date. Optional profile row with followers and video count, plus a date filter for recent posts.
Pricing
from $0.40 / 1,000 results
Rating
0.0
(0)
Developer
TicTech
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Share
Turn public TikTok profiles and video links into clean metadata in one run. Paste one or more @handle URLs and get video engagement (likes, views, comments, shares, saves, captions, post dates) as snake_case JSON, plus optional profile stats once per account. No residential proxy needed.
Note: Only public profiles and videos. If a URL returns nothing, you get a status row that says why (the run still completes).
Why Use This Tool?
- Automate brand and creator tracking: stop copying TikTok stats by hand.
- Several profiles per run: put multiple profile URLs in
start_urls. - Optional profile metadata: turn on
scrape_profilefor followers, following, video count and bio once per account. - Clean downstream data: consistent snake_case fields for Sheets, warehouses, n8n/Make or your own API.
- Lightweight: plain HTTP, no browser farm, no residential proxy.
Why Choose This Actor?
- Profiles and direct video URLs in one Actor
- Date filter (
until): keep only posts newer than a date - Clear empty results: every URL that returns nothing gets a status row (
older_than_until,no_videos,blocked,skipped) plus a run summary - Apify-native: Console, schedules, webhooks, API, Make, n8n, Zapier
Features
- Scrape TikTok profile URLs and direct video URLs
- Multiple
start_urlsper run (deduped) - Optional
scrape_profile: one profile row per profile (followers, following, video count, handle, display name) - Video fields: caption, likes, views/plays, comments, shares, saves, author, post time, duration, cover, music title when available
- Optional
untildate filter (ISO /YYYY-MM-DD). If every recent video is older thanuntil, the profile row is returned instead so the account still appears - Optional Apify datacenter proxy (residential never required). If the proxy times out, the run retries without it
- Run summary in the
OUTPUTkey-value record:urls_ok,urls_empty,items,reasons - Dataset export: JSON, CSV, Excel
Use Cases
- Social listening and brand monitoring across creator lists
- Influencer vetting: follower counts plus recent engagement in one dataset
- Competitive tracking for product, wellness and DTC accounts
- Content ops: archive captions and URLs for briefs or RAG
- Agency reporting: schedule runs into Sheets or BI
Input Example
{"start_urls": ["https://www.tiktok.com/@tiktok"],"max_items": 20,"scrape_profile": false,"until": "2026-01-01","proxyConfiguration": {"useApifyProxy": false}}
| Field | What it does |
|---|---|
start_urls | Profile and/or video URLs (required) |
max_items | Cap on video/profile rows (default 20; 0 = safe ceiling 5000). Free-tier tip: free tier max items per run ≤ 100 |
scrape_profile | Optional. When true, emit one profile row before the videos (default false) |
until | Optional. Keep posts newer than this date |
proxyConfiguration | Optional Apify proxy. Use none or datacenter |
Output Examples
Video row:
{"url": "https://www.tiktok.com/@tiktok/video/7500000000000000000","caption": "…","like_count": 12000,"view_count": 250000,"play_count": 250000,"comment_count": 300,"share_count": 150,"author": "TikTok","handle": "tiktok","posted_at": "2026-10-10T17:00:00","media_type": "video","platform": "tiktok"}
Profile row (with scrape_profile: true, or when until filters out every video):
{"media_type": "profile","platform": "tiktok","handle": "healthwithanya","url": "https://www.tiktok.com/@healthwithanya","follower_count": 33800,"following_count": 120,"video_count": 358,"like_count": 450000}
Status row (a URL that returned nothing; not billed as a result):
{"media_type": "status","platform": "tiktok","url": "https://www.tiktok.com/@some.account","handle": "some.account","status": "no_videos","reason": "embed returned no public videos"}
How to Run on Apify
- Open the Actor on Apify and click Try for free / Start.
- Paste one or more public TikTok profile or video URLs into start_urls.
- Set max_items (free tier max items per run ≤ 100). Optionally set until.
- Optionally enable Scrape profile metadata, then run and open the Dataset tab.
- Download JSON / CSV / Excel, or connect via API, schedule, Make, n8n or Zapier.
Run from your stack (API sketch)
curl -X POST "https://api.apify.com/v2/acts/tictechid~vanzi-tiktok-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"start_urls":["https://www.tiktok.com/@tiktok"],"max_items":20}'
Limitations
- Public profiles and videos only. Private, removed or region-blocked content returns a status row.
- Recent videos come from TikTok's public embed, typically about the 10 newest per profile. Small or inactive accounts may return none (
no_videos). untilstops at the first older video. Dormant accounts can return only a profile row.- TikTok may block some requests (
blocked). After 3 blocked profiles in a row with nothing collected, the run stops early and marks the restskipped. - No hashtag, keyword, comment or follower-list scraping.
Usage Limits
- Free Apify accounts: use this Actor within your monthly platform credit. Free-tier tip: free tier max items per run ≤ 100.
- Paid plans: runs follow your Apify plan limits.
See Apify Pricing.
FAQ
Do I need a TikTok login? No, public pages only.
Do I need a residential proxy? No. Use none or datacenter.
Why did a profile return a status row? Check its status: older_than_until (move until earlier), no_videos (no public recent videos), blocked (TikTok refused the request, so try again later), or skipped (not attempted after an early stop).
Support: open an Issue on the Actor page.
For more details, contact the maintainer or email us at contact@tictech.id