TikTok Trending Feed Scraper avatar

TikTok Trending Feed Scraper

Pricing

from $0.20 / 1,000 results

Go to Apify Store
TikTok Trending Feed Scraper

TikTok Trending Feed Scraper

Get TikTok trending videos with creator profiles, captions, plays, likes, shares, and sound details. Choose a region to capture its public feed.

Pricing

from $0.20 / 1,000 results

Rating

0.0

(0)

Developer

Scrappa

Scrappa

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Capture TikTok’s public trending feed for a selected market with video captions, creator profiles, engagement totals, and sound information. Each row represents a trending post.

What data can you extract?

FieldTypeDescription
aweme_idStringTikTok identifier for the video post.
video_idStringAlternate video identifier returned with the post.
regionStringMarket code associated with the feed result.
titleStringShort description or caption attached to the video.
content_descArray<String>Content phrases associated with the post.
coverStringURL of the default video cover image.
ai_dynamic_coverStringURL of the animated or dynamic cover when supplied.
origin_coverStringURL of the original cover image.
durationIntegerVideo length in seconds.
playStringPlayback reference returned for the video.
wmplayStringPlayback reference for a watermarked version, when supplied.
sizeIntegerReported size of the video media asset in bytes.
wm_sizeIntegerReported size of the watermarked media asset in bytes.
musicStringMusic identifier or reference attached to the post.
play_countIntegerNumber of plays reported for the video.
digg_countIntegerNumber of likes reported for the video.
comment_countIntegerNumber of comments reported for the video.
share_countIntegerNumber of shares reported for the video.
download_countIntegerNumber of downloads reported for the video.
collect_countIntegerNumber of saves reported for the video.
create_timeIntegerUnix timestamp when the video was published.
anchorsObject or nullCommercial anchor data, or null when none is supplied.
anchors_extrasStringSerialized metadata for commercial anchors.
is_adBooleanTrue when TikTok marks the post as an advertisement.
commerce_infoObject or nullCommerce and promotion flags, or null when none are supplied.
commercial_video_infoStringCommercial status information for the post.
item_comment_settingsIntegerNumeric comment-setting code returned for the video.
mentioned_usersStringSerialized user mentions attached to the video.
authorObjectPublic TikTok profile details for the video author.
is_nff_or_nrBoolean or nullTikTok content status flag, or null when not supplied.
is_topIntegerNumeric flag indicating whether the video is pinned or top-ranked.
music_infoObjectSound title, author, duration, and cover details for the video.
imagesArray<String>Image URLs associated with photo or carousel content.
author_idStringTikTok profile identifier for the author.
author_usernameStringPublic TikTok handle of the video author.
author_nicknameStringDisplay name on the TikTok profile.
author_avatarStringPublic TikTok profile image URL.
music_titleStringSound title associated with the TikTok video.
music_authorStringSound creator name when music details are returned.
input_regionStringTikTok market code used to select trending videos.
scraped_atStringUTC date and time when this record was collected.

Use cases

  • Social analysts can review public videos gaining reach in a selected market.
  • Content teams can compare trending captions, sounds, and engagement.
  • Researchers can save regional TikTok feed snapshots for later analysis.

How to use

  1. Add a TikTok region code such as GB to regions.
  2. Optionally set count to request up to 20 feed items.
  3. Use maxResults to limit the number of video rows saved.
{
"regions": [
{
"region": "GB"
}
],
"count": 10,
"maxResults": 20
}

Input

FieldTypeRequiredDescription
regionsArray<object>YesTikTok market codes for the trending video feed.
regions[].regionstringYes per entryRegion sent to the source search.
regions[].countintegerNoResults Per Page sent to the source search.
countintegerNoResults Per Page sent to the source search.
maxResultsintegerNoMaximum dataset items to save across this entire run.

Output example

{
"aweme_id": "7419000123456789012",
"video_id": "7419000123456789012",
"region": "GB",
"title": "A simple guide to crisp sourdough at home",
"content_desc": [
"fresh sourdough",
"home baking"
],
"cover": "https://p16-sign.tiktokcdn.com/obj/tos-useast5-p-0068/loaf-cover.jpeg",
"ai_dynamic_cover": "https://p16-sign.tiktokcdn.com/obj/tos-useast5-p-0068/loaf-dynamic.jpeg",
"origin_cover": "https://p16-sign.tiktokcdn.com/obj/tos-useast5-p-0068/loaf-origin.jpeg",
"duration": 36,
"play": "https://v16-webapp.tiktok.com/video/loaf-play.mp4",
"wmplay": "https://v16-webapp.tiktok.com/video/loaf-watermarked.mp4",
"size": 4821032,
"wm_size": 4938200,
"music": "7418000123456789012",
"play_count": 128000,
"digg_count": 9800,
"comment_count": 310,
"share_count": 740,
"download_count": 210,
"collect_count": 1400,
"create_time": 1758205931,
"anchors": null,
"anchors_extras": "[]",
"is_ad": false,
"commerce_info": {
"auction_ad_invited": false,
"with_comment_filter_words": false,
"adv_promotable": false,
"branded_content_type": 0,
"organic_log_extra": "{}",
"is_diversion_ad": 0
},
"commercial_video_info": "organic",
"item_comment_settings": 0,
"mentioned_users": "[]",
"author": {
"id": "7123456789012345678",
"unique_id": "harborbakehouse",
"nickname": "Harbor Bakehouse",
"avatar": "https://p16-sign.tiktokcdn.com/tos-maliva-avt-0068/harborbakehouse.jpeg"
},
"is_nff_or_nr": false,
"is_top": 0,
"music_info": {
"id": "7418000123456789012",
"title": "Warm Morning",
"play": "https://www.tiktok.com/music/warm-morning-7418000123456789012",
"cover": "https://p16-sign.tiktokcdn.com/music/warm-morning.jpeg",
"author": "North Pier Audio",
"original": false,
"duration": 42,
"album": "Morning Light"
},
"images": [
"https://p16-sign.tiktokcdn.com/obj/loaf-step-one.jpeg",
"https://p16-sign.tiktokcdn.com/obj/loaf-step-two.jpeg"
],
"author_id": "7123456789012345678",
"author_username": "harborbakehouse",
"author_nickname": "Harbor Bakehouse",
"author_avatar": "https://p16-sign.tiktokcdn.com/tos-maliva-avt-0068/harborbakehouse.jpeg",
"music_title": "Warm Morning",
"music_author": "North Pier Audio",
"input_region": "GB",
"scraped_at": "2026-10-01T12:00:00Z"
}

Pricing

$0.30 per 1,000 results. Apify saves one dataset item per result and applies the Actor’s per-result price to saved items.

Set maxResults to cap the number of dataset items saved in one run.

FAQ

Rules depend on the source, location, data type, and intended use. Check applicable laws and source terms, and make sure your workflow follows privacy and data protection requirements.

What limits apply?

Submit up to 100 batch entries per run. Use maxResults to cap saved items. Results also depend on source availability and your Scrappa API plan.

Can I start runs through the Apify API?

Yes. Send a POST request to https://api.apify.com/v2/acts/thescrappa~tiktok-trending-feed-scraper/runs with your Actor input, or use an Apify client library. Read the output from the run dataset.

Can I connect the results to other tools?

Yes. Apify integrations and APIs can pass dataset results to Make, Zapier, n8n, Google Sheets, and other data workflows.

What happens when one input fails?

The Actor logs a short source error and continues with the remaining entries. Transient rate limits and gateway errors are retried; if every entry fails, the run reports an error.

Why does the US feed sometimes fail?

Feed availability can vary by market and source response. Choose another supported region if a market is temporarily unavailable.