TikTok Shop Sales Tracker: Units Sold per Day & Top Products avatar

TikTok Shop Sales Tracker: Units Sold per Day & Top Products

Pricing

from $2.40 / 1,000 products

Go to Apify Store
TikTok Shop Sales Tracker: Units Sold per Day & Top Products

TikTok Shop Sales Tracker: Units Sold per Day & Top Products

Know what's selling on TikTok Shop and how fast: exact units sold, units and revenue per day, rising products and GMV for every product, keyword, shop and category you track. Whole shop catalogues, deep keyword lists, stock per variant, filters, changes only. US, from $3 per 1,000 products.

Pricing

from $2.40 / 1,000 products

Rating

0.0

(0)

Developer

CleanPull

CleanPull

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

Know what's selling on TikTok Shop, and how fast. This actor reads TikTok Shop US products by keyword, shop, category or URL with TikTok's exact units sold (9,857, not "9.8K"), and turns every run into sales velocity: units sold per day, revenue per day and a rising, steady or falling trend for every product. It also adds the totals for every keyword, shop and category you track. Run it once for a snapshot with lifetime GMV estimates. Schedule it and it becomes your own TikTok Shop sales tracker, from $3 per 1,000 products.

What you get

  • Units sold per day for every product. Each run remembers every product's sold count. The next run gives unitsSoldSinceLastRun, unitsPerDay and revenuePerDayEstimate. From the third run, trend says whether sales are speeding up or slowing down.
  • A sales leaderboard for every keyword, shop and category. One summary row each, with units and revenue per day in total, the top 10 sellers, the products whose sales are rising, and products new to that keyword or shop since your last run.
  • A shop's daily sales, from its whole catalogue. Give a store and the actor reads every product, up to 20,000. The shop summary adds up their sales, so you see the shop's units and revenue per day as they happen.
  • Lifetime GMV estimates. gmvEstimate (units sold × price) for every product, and gmvEstimateTotal with a top 10 by GMV for every keyword, shop and category.
  • Deep keyword lists. Each keyword is followed through TikTok's "View more" pages to the end of the list, typically 100 to 140 products for popular terms (raise maxProductsPerKeyword above its default of 100 to get them all), each with its exact sold count.
  • Sale and deal data on every row: price, original price, discount %, when the deal ends, free shipping and TikTok's sale labels.
  • Product details when you want them:
    • stock and price for every variant, with the stock change since the last reading with stock and a low-stock flag;
    • the product's own video, the description and specifications;
    • delivery fee and days, categories with IDs;
    • the star breakdown and featured reviews (verified and incentivized flags);
    • the seller's business name and address;
    • the shop's badge, totals and service scores (positive feedback, on-time delivery, chat).
  • One row per product. A product found by two keywords and a shop is delivered once. It lists every source, its position there and its rank by units per day.
  • Filters that run before you pay: price range, minimum rating, reviews, units sold or units per day; discounted or free-shipping only; title words to include or exclude; sellers to include or exclude. Filtered products are not billed. Filters apply to products found through keywords, shops and categories; products you list directly are always delivered.
  • Changes only. Deliver just the products that sold, changed price or are new. Unchanged products cost $0.50 per 1,000, so a daily tracker stays cheap.

Who it's for

  • Product researchers and dropshippers: find what's taking off this week, not what sold the most since launch.
  • Brands and sellers: track your products and your competitors' daily, with price moves and stock.
  • Agencies and analysts: size a niche by keyword (units and revenue per day, lifetime GMV), compare shops, and feed a dashboard.

Built to be relied on

  • Exact numbers. Sold counts come straight from TikTok Shop's own data, as exact integers. TikTok's note says they count items sold since listing, excluding returns.
  • You never pay for a skipped day. A reading becomes the baseline for next time only once it is delivered, so a run cut by your spending limit or maxItems never loses sales.
  • Runs that finish.
    • A keyword TikTok has no page for, or a removed product, is noted in the run summary, and everything else is delivered.
    • Refused requests are retried automatically.
    • An empty input runs an example keyword, so you can see the output first.
  • Fast and light. Plain HTTP, no browser.

Input

FieldTypeWhat it does
keywords, maxProductsPerKeywordarray, integerShopping terms; products per keyword (default 100, up to 1,000)
shops, maxProductsPerShoparray, integerStore URLs (shop.tiktok.com/us/store/name/ID) or seller IDs; products per shop (default 200, up to 20,000)
productsarrayProduct URLs (…/pdp/name/ID, …/view/product/ID) or IDs, read from their product pages
categoryUrls, maxPagesPerCategoryarray, integerCategory pages (shop.tiktok.com/us/c/name/ID), 15 products a page; best for discovery, as category lists vary
startUrlsarrayAny mix of product, store, category and keyword URLs
datasetId, datasetFieldstringProducts or shops from another dataset, such as a previous run
monitorNamestringUnits per day are measured against the last run with this name; use one name per list you track
changesOnlybooleanOnly products that sold, changed price or are new (stock changes too, for products you list directly)
minPrice, maxPrice, minRating, minReviewsnumberFilters on price (USD), rating (0–5) and review count
minUnitsSold, minUnitsPerDaynumberFilters on lifetime units sold and on units per day (products without a velocity yet are kept)
onlyDiscounted, onlyFreeShippingbooleanOnly products on sale, or with free shipping
titleIncludes, titleExcludesarrayWords the title must contain, or must not contain
sellers, excludeSellersarraySeller IDs or shop names to keep, or to leave out
includeProductDetails, lowStockThresholdboolean, integerProduct pages: variants with stock, video, description, delivery, reviews, seller and shop details; low-stock level (default 10)
includeSummariesbooleanOne summary row per keyword, shop and category, and one for your listed products (default on)
maxItems, fields, maxConcurrency, proxyConfigurationLimits and tuning; when maxItems cuts the list, the fastest sellers are kept

Example inputs

What's selling fastest in two niches, every day (schedule it daily):

{
"keywords": ["lip gloss", "protein powder"],
"maxProductsPerKeyword": 200,
"monitorName": "beauty-daily"
}

A whole shop's daily sales:

{
"shops": ["https://shop.tiktok.com/us/store/style-rule/7495210231735224924"],
"maxProductsPerShop": 5000
}

Discounted products under $30 rated 4.5 and up, without refills:

{
"keywords": ["lip oil"],
"maxPrice": 30,
"minRating": 4.5,
"onlyDiscounted": true,
"titleExcludes": ["refill"]
}

Your products, with stock per variant, only when something changed:

{
"products": ["https://shop.tiktok.com/us/pdp/1729400216682730076"],
"includeProductDetails": true,
"changesOnly": true
}

Output

A product row (second run, 12 hours after the first):

{
"recordType": "product",
"productId": "1729407202568147235",
"title": "e.l.f. Glow Reviver Lip Oil, Nourishing Lip Oil High-Gloss Finish 0.25 oz (7.6 mL)",
"url": "https://shop.tiktok.com/us/pdp/glow-reviver-lip-oil-by-e-l-f-cosmetics-hydrating-tinted-formula/1729407202568147235",
"image": "https://p16-oec-general-useast5.ttcdn-us.com/…/lip-oil.webp",
"price": 13,
"originalPrice": 16,
"discountPercent": 19,
"dealEndsAt": "2026-10-04T06:59:00.000Z",
"freeShipping": true,
"currency": "USD",
"rating": 4.8,
"reviewCount": 18416,
"unitsSold": 226826,
"gmvEstimate": 2948738,
"unitsSoldSinceLastRun": 412,
"hoursSinceLastRun": 12,
"unitsPerDay": 824,
"revenuePerDayEstimate": 10712,
"trend": "rising",
"previousUnitsPerDay": 610,
"previousPrice": 13,
"priceChangePercent": 0,
"previousStock": null,
"firstSeen": "2026-10-01T08:00:00.000Z",
"tracked": true,
"sellerId": "7494913857786775843",
"shopName": "e.l.f. Cosmetics",
"brand": "e.l.f.",
"labels": ["Flash sale", "Free shipping"],
"sources": [
{
"type": "keyword",
"value": "lip gloss",
"position": 1,
"velocityRank": 1,
"newInSource": false,
"relevantToKeyword": false,
"keywordWordsMissing": ["gloss"]
}
],
"scrapedAt": "2026-10-02T08:00:00.000Z"
}

With includeProductDetails, a details object adds:

  • Stock: stock, stockChange, lowStock, and skus (options, price, stock, available).
  • Content: video (URL, duration, cover), description, specifications, images.
  • Logistics: delivery (free shipping, fee, minimum and maximum days, estimate), categories, categoryIds.
  • Reviews: ratingBreakdown and featuredReviews.
  • Seller and shop: sellerBusinessName, sellerBusinessAddress, and shop (units sold, products, followers, rating, badge, service scores).

A summary row per keyword, shop and category, and one for the products you listed directly (type: product):

  • Coverage: products, complete, productsWithVelocity.
  • Totals: unitsSoldTotal, gmvEstimateTotal, unitsPerDayTotal, revenuePerDayEstimate.
  • Lists: topByUnitsPerDay, topByGmv, rising, newProducts, topNewProducts.
  • Shops also get TikTok's own shop totals.
  • Fees: marketplaceFees, TikTok Shop US's published referral fee list rate (6% for most categories, 5% for some jewelry and pre-owned), with what it leaves out (creator commissions, Fulfilled by TikTok, shipping) and its source.
  • Keywords also get relevantToKeyword: the same totals (products, productsWithVelocity, unitsSoldTotal, gmvEstimateTotal, unitsPerDayTotal, revenuePerDayEstimate) over the products whose title carries the keyword, with relevanceBasis stating the rule and totalsCover saying the main totals cover every product listed. The top lists mark each product relevantToKeyword.

Keyword relevance. TikTok's keyword search also lists related products (a "lip gloss" search lists lip oils, liners and blush), and its list cards carry no category, so a keyword's totals add up unrelated products. Each keyword source on a product row has relevantToKeyword and keywordWordsMissing: a plain title check, true when every word of the keyword (filler words like "for" and "the" left out) is in the title, singular or plural, or written as one ("lipgloss"). It is a clue, not a verdict: synonyms and misspellings are not matched. Nothing is filtered on it, and titles are delivered as TikTok gives them.

The run summary (key-value store, RUN_SUMMARY) gives the outcome (COMPLETE, PARTIAL, NO_CHANGES, EMPTY or FAILED), counts, charges, warnings and anything that could not be read.

Pricing

EventPriceWhen
product$3.00 per 1,000A delivered product row, velocity and GMV included
product-checked$0.50 per 1,000An unchanged product with Changes only
product-details$1.00 per 1,000A product page read for includeProductDetails
source-summary$0.001 eachA summary row per keyword, shop, category or product list

Products given in products are read from their product pages at the product price. Apify subscription discounts apply (10% Silver, 20% Gold and above).

Good to know

  • TikTok Shop US.
  • The first run is the baseline. Units per day appear from the second run under the same monitor name, and the trend from the third. Schedule runs a few hours to a day apart for the steadiest numbers; runs less than 15 minutes apart count from the earlier reading.
  • GMV is an estimate: lifetime units sold × today's price.
  • Summaries cover every product a keyword, shop or category lists, including those your filters leave out of the product rows, so they describe the whole market. For keywords, relevantToKeyword gives the same totals over the products whose title carries the keyword.
  • Categories come with product details only. TikTok's search and list cards carry no category or product type (checked on the keyword, category and shop lists); details.categories comes from the product page with includeProductDetails. A product found through a category page has that category among its sources.
  • Video and image links are signed by TikTok and stop working after a few hours (video.urlExpiresAt); download what you want to keep.
  • Original price and discount come from list cards (keywords, shops, categories); for products you list directly, the row shows the sale labels and the deal end.
  • Category pages vary between visits. Use them to discover products, then track those through keywords, shops or products.
  • Reviews: the star breakdown, the total and the featured reviews shown on the product page.
  • Nothing found: when nothing could be read because none of it exists (a keyword, shop, category or product TikTok Shop has no page for, or a list with no products), the run still succeeds, with one free recordType: "unreadable" row per item giving the reason; nothing is charged. A run near its time limit stops starting sources and product pages, delivers what it read and lists the rest the same way.

Changelog

  • 0.2.x, reliability (2026-10-24): runs that find nothing (keywords, shops, categories or products with no page) end SUCCEEDED with a free unreadable row per item saying why; a run stops starting sources before its time limit and ends with what it read, never TIMED-OUT. A run TikTok blocked on every route still fails. Prices and events unchanged.
  • 0.2.x (2026-10-23): marketplaceFees on summary rows: TikTok Shop US's published referral fee list rate. Prices and events unchanged.
  • 0.2.x (2026-10-16): keyword relevance: relevantToKeyword and keywordWordsMissing on each keyword source of a product row, and keyword summaries with totals over the relevant products next to the totals over all of them. Nothing changes in price, filters or existing fields.
  • 0.2: original price, discount and deal end; lifetime GMV estimates; filters (price, rating, reviews, units, discount, free shipping, title, sellers); product video, description, delivery, category IDs, seller business details, shop badge and service scores; stock change and low-stock flag.
  • 0.1: first release.