TikTok Repost Scraper
Pricing
$3.55 / 1,000 reposts
TikTok Repost Scraper
Collect public reposts from one or more TikTok profiles. Get captions, original creator identity, engagement counts, media and sound links. Add deeper creator details and follower filters when needed.
Pricing
$3.55 / 1,000 reposts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
🔁 See what public TikTok profiles repost
This Actor is for social media researchers, marketers, creators, and teams that need to understand what public TikTok profiles choose to repost. It returns one structured row for each retained repost with its caption, original creator identity, engagement counts, media and sound links, and source profile. That makes it easier to compare what accounts amplify and who made it.
- Collect public profile repost rows with Tiktok Profile Reposts.
- Find reposted videos across submitted profiles with Tiktok Repost Finder.
- Review captions, creators, and engagement for a profile with Tiktok Repost Scraper.
- Browse a public repost feed with Tiktok Anonymous Viewer Repost.
- View saved public repost data with Tiktok Repost Viewer.
📋 Repost rows with creator context
What you get
Each row keeps the repost, the profile that supplied it, and the original creator together. You can review captions, dates, public engagement counts, video and sound links, hashtags, challenges, tags, and sharing permissions. When deeper creator details are requested, the row can also include a bio, bio link, region, audience counts, and a size tier.
⏱️ Collect from public Reposts tabs
The Actor reads each submitted profile's public Reposts tab and saves an eligible row when it finds one. If the same source item appears again in another submitted profile, the first eligible occurrence is kept and later matches are ignored. sourceProfile records the profile that supplied that first row. A smaller maxItemsPerProfile can shorten the run. Leave it empty to return all available reposts until the source is exhausted.
⚙️ Input
Add one or more public TikTok profile URLs or handles. The same settings apply to every profile in the run.
Input fields
| Field | Type | What it does |
|---|---|---|
profiles | Array of strings | Public TikTok profile URLs or handles to read. |
maxItemsPerProfile | Integer | Caps saved reposts for each profile. Leave it empty to return all available reposts until the source is exhausted. |
includeOriginalCreatorDetails | Boolean | Adds deeper public profile fields for the original creator, such as bio, bio link, region, audience counts, content counts, and size tier. |
minOriginalCreatorFollowers | Integer | Keeps reposts only when the original creator has at least this many followers. Leave it empty for no lower bound. |
maxOriginalCreatorFollowers | Integer | Keeps reposts only when the original creator has no more than this many followers. Leave it empty for no upper bound. |
Successful default input
This is the public input from a successful run. It leaves maxItemsPerProfile empty, so the run can return all available reposts until the source is exhausted.
{"profiles": ["https://www.tiktok.com/@tiktok"],"includeOriginalCreatorDetails": false}
Follower bounds apply to the original creator connected to each repost. Use the lower and upper fields together when you want to focus on a follower range.
🧾 Output
Run output
The run output contains a link to the saved dataset.
| Field | Type | What it does |
|---|---|---|
dataset | String | Link to the saved TikTok repost rows. |
Dataset row fields
Each dataset row has the same shape. Some nested values are present only when TikTok provides them or when deeper creator details are requested.
| Field | Type | What it does |
|---|---|---|
repostId | String | TikTok ID of the reposted video. |
caption | String | Caption shown with the reposted video. |
createdAt | Date-time string | Time when the reposted video was created. |
repostUrl | URL string | Public TikTok URL of the reposted video. |
sourceProfile | String | Submitted profile URL or handle that supplied the first eligible occurrence. |
originalCreator | Object | Public identity and audience details for the original creator when available. |
originalCreator.id | String | TikTok ID of the original creator. |
originalCreator.username | String | Public username of the original creator. |
originalCreator.displayName | String | Public display name of the original creator. |
originalCreator.profileUrl | URL string | Public TikTok profile URL of the original creator. |
originalCreator.isVerified | Boolean | Whether TikTok marks the original creator as verified. |
originalCreator.followerCount | Integer | Public follower count of the original creator. |
originalCreator.followingCount | Integer | Public following count of the original creator. |
originalCreator.likeCount | Integer | Total likes shown for the original creator. |
originalCreator.videoCount | Integer | Number of videos shown for the original creator. |
originalCreator.bio | String | Public bio of the original creator when available. |
originalCreator.bioLink | URL string | Public link shown in the original creator's bio when available. |
originalCreator.region | String | Public region listed for the original creator when available. |
originalCreator.sizeTier | String | Audience size tier for the original creator when available. |
engagement | Object | Public counts for the reposted video. |
engagement.playCount | Integer | Public play count for the reposted video. |
engagement.likeCount | Integer | Public like count for the reposted video. |
engagement.commentCount | Integer | Public comment count for the reposted video. |
engagement.shareCount | Integer | Public share count for the reposted video. |
engagement.collectCount | Integer | Public collection count for the reposted video. |
media | Object | Video details and a source media link. |
media.durationSeconds | Number | Video duration in seconds. |
media.width | Integer | Video width in pixels. |
media.height | Integer | Video height in pixels. |
media.quality | String | Quality label for the video when available. |
media.videoUrl | URL string | Main source video URL for playback or download when available. |
media.cover | Object | Cover image details for the video. |
media.cover.url | URL string | Source URL of the video cover image. |
media.cover.width | Integer | Cover image width in pixels when available. |
media.cover.height | Integer | Cover image height in pixels when available. |
music | Object | Sound details, creator, and source audio links. |
music.id | String | TikTok ID of the sound. |
music.title | String | Public title of the sound when available. |
music.creator | Object | Public creator linked to the sound. |
music.creator.id | String | TikTok ID of the sound creator when available. |
music.creator.username | String | Public username of the sound creator when available. |
music.creator.displayName | String | Public display name of the sound creator when available. |
music.creator.profileUrl | URL string | Public TikTok profile URL of the sound creator when available. |
music.durationSeconds | Number | Sound duration in seconds when available. |
music.isOriginal | Boolean | Whether TikTok marks the sound as original. |
music.audioUrl | URL string | Main source audio URL for playback or download when available. |
music.pageUrl | URL string | Public TikTok page URL for the sound. |
hashtags | Array of strings | Hashtags shown on the reposted video. |
challenges | Array of strings | Challenge labels linked to the reposted video. |
tags | Array of strings | Tag or mention labels linked to the reposted video. |
permissions | Object | Public settings for comments, Duets, and Stitches. |
permissions.allowComments | Boolean | Whether public comments are allowed. |
permissions.allowDuet | Boolean | Whether public Duets are allowed when available. |
permissions.allowStitch | Boolean | Whether public Stitches are allowed when available. |
Example row from a successful run
This genuine row came from a successful run with includeOriginalCreatorDetails set to true. It shows the complete row returned for that item.
{"repostId": "7671088500850101534","caption": "AND ITS LIVE ON @TikTok and @iHeartRadio IN 1 HOUR","createdAt": "2026-08-07T01:01:20.000Z","repostUrl": "https://www.tiktok.com/@alexwarren/video/7671088500850101534","sourceProfile": "https://www.tiktok.com/@tiktok","originalCreator": {"id": "292342703596507136","username": "alexwarren","displayName": "Alex Warren","profileUrl": "https://www.tiktok.com/@alexwarren","isVerified": true,"followerCount": 21200000,"followingCount": 5003,"likeCount": 1200000000,"videoCount": 1272,"sizeTier": "mega","bio": "MY ALBUM WILDCHILD AUGUST 28TH"},"engagement": {"playCount": 1500000,"likeCount": 132200,"commentCount": 1747,"shareCount": 1614,"collectCount": 6344},"media": {"durationSeconds": 9,"width": 720,"height": 1280,"quality": "720p","videoUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast8/tos-useast8-pve-0068-tx2/owIzwIA1LO1LYiOxyl9BmAQCqwifAHABGECKip/?a=1988&bti=ODszNWYuMDE6&&bt=1747&ft=4KJMyMzm8Zmo0z42Ha4jVqMuQpWrKsd.&mime_type=video_mp4&rc=Zzk1NztpZDM0NztmZTk8aUBpampyNWw5cjZsPDMzaTczNEBeNmFfMV5iNjExNTVgLjFhYSNmcWQtMmRzbG5hLS1kMTJzcw%3D%3D&expire=1787793942&l=202608250125335FA166A75676321BC0E6&ply_type=2&policy=2&signature=17a951026cd91a2b48eb219dd969b0b3&tk=tt_chain_token&btag=e000b0000","cover": {"url": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oIDZ1lfyAV6lUFAIpn4EAeqQE6IILEeAjIBA66~tplv-tiktokx-origin.image?dr=9636&x-expires=1787792400&x-signature=B1XFyVbYLxtZfKIFWX%2B5pQv5sRQ%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8"}},"music": {"id": "7667300537578801950","title": "RESCUER BRIDGE","creator": {"username": "Alex Warren","displayName": "Alex Warren"},"durationSeconds": 18,"isOriginal": true,"audioUrl": "https://v16m.tiktokcdn-us.com/ae1da866e161a66efd5e77b78a5b0cd5/6a8d437f/video/tos/useast8/tos-useast8-v-27dcd7-tx2/ooBzqETEG9kK3CuuAIeUEmAAfLzfAUIoatYTVn/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7ThEXBkGXq8Zmo&mime_type=audio_mpeg&rc=M2h1aXU5cmx1PDMzaTU8NEBpM2h1aXU5cmx1PDMzaTU8NEBgc3NiMmRjZmdhLS1kMTJzYSNgc3NiMmRjZmdhLS1kMTJzcw%3D%3D&vvpl=1&l=202608250125335FA166A75676321BC0E6&btag=e00078000","pageUrl": "https://www.tiktok.com/music/sound-7667300537578801950"},"hashtags": [],"challenges": [],"tags": ["tiktok","iheartradio"],"permissions": {"allowComments": true,"allowDuet": true,"allowStitch": true}}
💳 Pricing
Charged event
Each saved public repost is one charged event. See the Pricing tab for the current rate. A smaller maxItemsPerProfile can reduce the number of saved repost events. Leaving it empty returns all available reposts until the source is exhausted.
🔌 Integrations
Video guide
Use the dataset link in the run output to review or export the saved rows. The public data can also be read through the Apify run and dataset tools.
❓ FAQ
What does a repost row represent?
It is a public video shown in a submitted profile's Reposts tab. The originalCreator fields describe the creator of that video, while sourceProfile identifies the profile that supplied the first saved occurrence.
What happens if the same repost appears in more than one profile?
The first eligible occurrence is saved. Later matches are ignored, and the row keeps the first sourceProfile.
Can I use more than one profile?
Yes. Add one or more public profile URLs or handles. The same settings apply to all profiles in the run.
What does an empty maxItemsPerProfile do?
It returns all available reposts until the source is exhausted. Set a value when you want a shorter run or fewer rows to review.
What does includeOriginalCreatorDetails add?
It asks for deeper public fields such as the original creator's bio, bio link, region, audience counts, content count, and size tier when available.
Can I filter by the original creator's follower count?
Yes. Set a minimum, a maximum, or both. The Actor keeps reposts whose original creator meets those bounds.
Why did a profile return fewer rows than I expected?
The public Reposts tab may expose fewer items at run time. Follower bounds can also remove rows, and repeated matches are ignored after the first eligible occurrence.
Does this collect private profiles or unrelated TikTok data?
No. It reads public repost content from the profiles you submit. It does not perform global TikTok search or collect private content, comments, messages, or account analytics.
Does the Actor save media files?
No. It returns available source media and sound links with their metadata. It does not store the media files themselves.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- TikTok Profile Mention Scraper finds public videos that mention a profile handle so you can compare mentions with repost activity.
- TikTok Search Scraper searches public videos or creator profiles by keyword for wider TikTok context.
- TikTok Repost Scraper: Original Creator Data & Filters provides another public repost view with original creator details and follower filters.
- Tiktok Repost Scraper collects another view of a public profile's Reposts tab with raw video, sound, and media fields.
- TikTok Repost Scraper gives a separate public repost feed for review and comparison.
Made with ❤️ by Maxime Dupré