TikTok Trending Products - Product, Video & Price Feed avatar

TikTok Trending Products - Product, Video & Price Feed

Pricing

from $5.00 / 1,000 trending product records

Go to Apify Store
TikTok Trending Products - Product, Video & Price Feed

TikTok Trending Products - Product, Video & Price Feed

Trending TikTok Shop products as a ready-to-use feed: each product with its driving video, price + sale price, 'X sold', rank, and (on scheduled runs) sales velocity + price history. From public Creative Center Top Products + product pages - no seller account, no Shop API. PPE pricing.

Pricing

from $5.00 / 1,000 trending product records

Rating

0.0

(0)

Developer

Seibs.co

Seibs.co

Maintained by Community

Actor stats

0

Bookmarked

20

Total users

13

Monthly active users

6 days ago

Last modified

Share

TL;DR for anyone running a trending-products site, TikTok Shop affiliates, and dropshippers: A ready-to-use data feed of trending TikTok Shop products - each product paired with the video driving it, its price + sale price, "X sold", category, and leaderboard rank. Schedule it daily and it also emits sales velocity (units/day) and price history per product. Built entirely from public surfaces (Creative Center Top Products + public product pages) - no seller account, no TikTok Shop API, no data-security review. Compared to paying Kalodata or FastMoss $99+/mo for a closed dashboard, this hands you the raw, normalized feed you can pipe straight into your own site or app. Priced as PPE: a run that returns nothing costs nothing. Free Apify plan covers small daily pulls on your $5 platform credit.

Run it in 30 seconds

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("seibs.co/tiktok-trending-products").call(run_input={
"mode": "feed",
"region": "US",
"period_days": 7,
"max_products": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Or via curl:

curl -X POST "https://api.apify.com/v2/acts/seibs.co~tiktok-trending-products/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode": "feed", "region": "US", "period_days": 7, "max_products": 50}'

Or click "Try for free" on this page if you prefer the no-code UI.

What you get

Each run produces a clean dataset, filterable in the Apify console and downloadable as CSV or JSON, with two ready-made table views: Trending feed (rank / product / price / sold / driving video / buy link) and Velocity & price history. Each trending_product record is a complete feed item: product, image, price + sale price, "X sold", rating, category, rank, the driving TikTok video (URL + embed + creator + views), and a monetizable buy_url.

What it does

For a region + trend window, it builds a trending-products feed from three public surfaces - none of which need a seller account or the TikTok Shop API:

  1. Creative Center -> Top Products (the trending leaderboard, and the friendliest TikTok surface to read). The browser tier renders the page and captures its own product-list call - we never forge a signature. This gives ranked products + each product's trend signal + the videos/ads that drove it.
  2. Public TikTok Shop product page fills in price, sale price, "X sold", rating that Creative Center does not expose (the enrichment hop).
  3. Public TikTok video page for the driving video's engagement (views/likes/creator).

Then, on every scheduled run, it diffs against the previous snapshot and attaches velocity + price history per product.

Modes

ModeWhat you get
feedFull record: trending product + price/sales enrichment + driving video. The feed.
discoverTrending leaderboard only (name / rank / category / trend). Cheap reconnaissance.

The feed record

{
"record_type": "trending_product",
"rank": 1, "region": "US", "category": "Beauty & Personal Care", "trend_window_days": 7,
"product_id": "1729...", "product_name": "Wonderskin Lip Stain", "image_url": "...",
"price": 24.0, "list_price": 32.0, "on_sale": true, "discount_pct": 25.0, "currency": "USD",
"units_sold": 128500, "rating": 4.7, "shop_name": "Wonderskin Official",
"buy_url": "https://shop.tiktok.com/view/product/1729...?aff_id=YOURID",
"driving_video": {
"video_id": "7390...", "video_url": "https://www.tiktok.com/@beautybyamy/video/7390...",
"embed_url": "https://www.tiktok.com/embed/v2/7390...", "thumbnail_url": "...",
"creator_handle": "@beautybyamy", "views": 4200000, "likes": 388000, "posted_at_epoch": 1718841600
},
"trend": { "trend_score": 0.92, "rank_change": 4, "first_seen": "2026-06-18T00:00:00+00:00" },
"velocity": { "units_sold_delta": 5100, "units_sold_per_day": 5100.0, "price_change": 0.0,
"rank_change": 4, "is_new": false, "days_tracked": 7 },
"scraped_at": "2026-06-25T14:00:00+00:00"
}

A single snapshot only tells you what is popular now. "Trending" is change over time. So when this actor runs under an Apify Schedule, every run diffs against the previous snapshot and derives per product:

  • units_sold_per_day - estimated daily sales velocity from the "X sold" delta (the same method Kalodata/FastMoss sell).
  • price_change / price_change_pct - price history.
  • rank_change - climbing vs fading on the leaderboard.
  • is_new - just entered the leaderboard (the highest-value early signal for an affiliate).

History only accrues forward, so the actor snapshots from its very first run. Schedule it once and your moat compounds daily. Set monitor_webhook_url to get the daily movers digest pushed to Slack.

Inputs

{
"mode": "feed",
"region": "US",
"period_days": 7,
"max_products": 50,
"enrich_price": true,
"affiliate_tag": "aff_id=YOURID&source=dailyvirals",
"monitor_webhook_url": "",
"use_browser_fallback": true,
"browser_cdp_url": ""
}

affiliate_tag is appended to every buy_url so the feed is monetizable out of the box.

Pricing

EventWhat it coversPrice
trending_productOne ranked product + trend signal + driving video$0.005
enriched_productPrice / sale price / "X sold" / rating filled from the product page$0.005
scheduled_delta_runPer scheduled run: velocity + price-history + movers digest$0.050

Pay-per-event: failed fetches are not charged. A run that returns nothing costs nothing.

What you DON'T get

For transparency: this surfaces public, estimated commerce signals. It does not return:

  • TikTok's official GMV (those numbers live behind the authenticated seller/partner API). Sales figures here are estimates derived from the public "X sold" delta - the same basis every third-party tool uses.
  • Other creators' private affiliate analytics (those require each creator's authorization via TikTok's CAP flow).

Reliability

  • The browser tier captures Creative Center's own request (no forged signatures), TLS-impersonation (curl_cffi) for product pages, Apify RESIDENTIAL proxy for the browser leg.
  • Fail-soft throughout: a blocked surface emits a documented surface_pending note and the run still SUCCEEDS. Demo records when a pull comes back empty.
  • The Creative Center product-list endpoint path is confirmed/tuned on the first live browser run; the extractor parses defensively so a TikTok JSON reshape does not break the feed.

Powering a website (e.g. a daily-virals feed)

Schedule the actor daily, then have your site read the run's dataset via the Apify API:

GET https://api.apify.com/v2/acts/seibs.co~tiktok-trending-products/runs/last/dataset/items?token=<TOKEN>&clean=true

That endpoint always returns the latest feed - point your frontend at it (or cache it) and the site updates itself every day. Velocity and price history ride along automatically.