TikTok Profile Scraper - Videos, Views, Likes and Captions avatar

TikTok Profile Scraper - Videos, Views, Likes and Captions

Pricing

from $0.40 / 1,000 results

Go to Apify Store
TikTok Profile Scraper - Videos, Views, Likes and Captions

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

TicTech

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

6 days ago

Last modified

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_profile for 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_urls per 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 until date filter (ISO / YYYY-MM-DD). If every recent video is older than until, 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 OUTPUT key-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
}
}
FieldWhat it does
start_urlsProfile and/or video URLs (required)
max_itemsCap on video/profile rows (default 20; 0 = safe ceiling 5000). Free-tier tip: free tier max items per run ≤ 100
scrape_profileOptional. When true, emit one profile row before the videos (default false)
untilOptional. Keep posts newer than this date
proxyConfigurationOptional 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

  1. Open the Actor on Apify and click Try for free / Start.
  2. Paste one or more public TikTok profile or video URLs into start_urls.
  3. Set max_items (free tier max items per run ≤ 100). Optionally set until.
  4. Optionally enable Scrape profile metadata, then run and open the Dataset tab.
  5. 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).
  • until stops 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 rest skipped.
  • 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