TikTok Profile Posts Scraper avatar

TikTok Profile Posts Scraper

Pricing

from $1.00 / 1,000 profile posts

Go to Apify Store
TikTok Profile Posts Scraper

TikTok Profile Posts Scraper

Scrape the videos of public TikTok profiles - captions, authors, stats, music, hashtags, and video URLs.

Pricing

from $1.00 / 1,000 profile posts

Rating

0.0

(0)

Developer

Harpoon

Harpoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape the videos of any public TikTok profile - captions, authors, stats, music, hashtags, and video URLs - in one clean dataset. Paste a profile URL or @handle, press Start, and get structured JSON/CSV/Excel.

What can this Actor do?

  • Videos of any public profile - latest videos first, paginated until it reaches your max_videos cap.
  • Profile plus content in one row - each row carries the author's followers, total likes, and video count alongside the video stats.
  • Full engagement metrics - plays, likes, comments, shares, and collects per video.
  • Media and music details - cover, dynamic cover, play/download URLs, sound title, artist, and duration.
  • Hashtags - extracted as a clean array.
  • Deduplicated - a video never appears twice, even across pages.

Why use this Actor?

  • No code required - the input form is prefilled with a working example; press Start and it runs as-is.
  • Reliable at scale - rotating proxy pool, request hedging, and automatic retries handle TikTok's variability.
  • Clean schema - a single flat row per video, ready for your warehouse, sheet, or dashboard.
  • Pay per result - you only pay for the videos that actually land in the dataset.

How to use it

  1. Open the Input tab.
  2. Paste one or more profile URLs or @handles into Profiles.
  3. Set Max videos per profile (default 100).
  4. Press Start and download your data from the Output tab.
{
"profiles": ["https://www.tiktok.com/@mahmoudridaabbas"],
"max_videos": 100
}

Accepted profile references: https://www.tiktok.com/@user, @user, or user.

Output

One dataset row per video:

{
"id": "7510595766524710149",
"profile_username": "mahmoudridaabbas",
"description": "🥹🥀#gaza #palestine #freepalestine #support #fypシ゚",
"created_at": 1748696852,
"url": "https://www.tiktok.com/@mahmoudridaabbas/video/7510595766524710149",
"author": {
"username": "mahmoudridaabbas",
"nickname": "Mahmoud Abbas /Palestine",
"id": "7206569119830672410",
"sec_uid": "MS4wLjABAAAA_BrZcjaxkyDTWXD4CWdpKw7noYN_na2xFI2ttMV4THAXq0O6xRRUR2LyEOYdRw6N",
"verified": true,
"private": false,
"signature": "الحساب الرسمي لفلسطين ...",
"avatar_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/e5ee49b75246bfae0df69669c...",
"follower_count": 173400,
"following_count": 28,
"video_count": 157,
"heart_count": 356800
},
"stats": {
"play_count": 70400,
"like_count": 5531,
"comment_count": 412,
"share_count": 276,
"collect_count": 307
},
"music": {
"id": "7327265877370784514",
"title": "suara asli - Hijrah ja",
"author_name": "JojoMBUD",
"duration": 23,
"original": true,
"play_url": "https://v45.tiktokcdn-eu.com/bd730a9dd7d835efe6228082b8baf3c1/6aae955c/video/tos/alis..."
},
"hashtags": ["gaza", "palestine", "freepalestine", "support", "fypシ゚"],
"video": {
"duration": 0,
"ratio": "",
"width": 0,
"height": 0,
"definition": "",
"cover_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-i-photomode-us/1292ab79a3a54756aa...",
"dynamic_cover_url": "",
"play_url": "",
"download_url": ""
},
"scraped_at": "2026-09-18T13:59:29Z"
}
FieldDescription
idNumeric video id
profile_usernameThe profile you requested
descriptionVideo caption
created_atUnix creation timestamp
urlCanonical video URL
authorAuthor profile: username, nickname, id, sec_uid, verified, bio, avatar, follower/following/video/heart counts
statsplay_count, like_count, comment_count, share_count, collect_count
musicSound id, title, artist, duration, original flag, play URL
hashtagsArray of hashtags
videoDuration, ratio, dimensions, definition, cover/dynamic cover/play/download URLs
scraped_atWhen the row was collected (ISO 8601)

Pricing

This Actor is billed per 1,000 results (one result = one video). See the Pricing tab for the current rate. A run that returns no new videos is not charged.

FAQ

Do I need cookies or a login? No. Public profiles only - no TikTok account required. The Actor uses a managed signature service and rotating residential proxies under the hood.

Can I scrape private profiles? No. Private accounts and videos are not returned.

How recent are the videos? Newest first, as TikTok orders the profile grid. Long profiles are paginated until max_videos is reached or the profile is exhausted.

Can I run several profiles at once? Yes. Add one profile per line; they are fetched in parallel.

Limitations

  • Only public profiles.
  • max_videos caps the returned rows; very large profiles take longer.
  • Video play_url/download_url are signed CDN links and can expire; re-run to refresh them.
  • Result order and availability follow TikTok's own profile feed.

Integrate with your stack

Export the dataset as JSON, CSV, Excel, or XML, or pull it from the Apify API. You can also run this Actor from the Apify MCP server so AI agents can call it directly.