TikTok Shop Trending Products — Sold Count, SKU | $1.99/1K avatar

TikTok Shop Trending Products — Sold Count, SKU | $1.99/1K

Pricing

from $1.93 / 1,000 shop products

Go to Apify Store
TikTok Shop Trending Products — Sold Count, SKU | $1.99/1K

TikTok Shop Trending Products — Sold Count, SKU | $1.99/1K

Extract product and shop records from TikTok Shop. Get prices, sold counts, ratings, reviews, variants, images, stock, and shop fields. Run with keywords, product or shop URLs/IDs; no TikTok login. Pricing: $0.00199 per product event on Free.

Pricing

from $1.93 / 1,000 shop products

Rating

0.0

(0)

Developer

Vitalii Bondarev

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

251

Total users

70

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

TikTok Shop Scraper

This Actor extracts product and shop data from TikTok Shop product pages, seller storefronts, and category pages. It uses Apify Residential Proxy; no TikTok login or external proxy account is needed.

  • Compare products and storefronts by region, price ranges, discounts, and sales metrics.
  • Monitor prices, availability, stock fields, and canonical URLs across repeat runs.
  • Collect category, direct product, or storefront records for market research.
  • Combine keyword, product, and shop inputs in one run.

What you get

Field familyFieldsTypeWhat it contains
Record typetypestring (product or shop)Record kind
Product identityproduct_id, title, description, category, brand, shop_id, shop_name, seller_region, product_urlstring; several fields can be nullProduct, shop, region, and link
Pricingprice, original_price, price_min, price_max, ratingnumber; original_price can be nullPrices and rating
CurrencycurrencystringCurrency; never null
Demand and stockdiscount_pct, sold_count, review_count, stock_countinteger; null when unavailableDiscount, sales, reviews, stock
Availabilityis_in_stockboolean or nullAvailability
SKU datasku_variantsarray of objects with name, price, stock; values can be nullVariant pricing and stock; null without variants
Mediaimage_urls, video_urlsarray of strings; null when noneProduct media
Deliveryshippingobject with optional fee, origin, delivery; null when noneShipping details
Parse qualityparse_confidencenumber from 0 to 1Parsing score
Warningswarningsarray of stringsWarning codes
Shop profilefollower_count, product_countintegerFollowers and listed products
Shop profile detailsregion, shop_url, logo_urlstringShop details
Run metadatascraped_atISO 8601 stringDataset timestamp

A field is null when the source does not provide it. Keyword records always have description, video_urls, shipping, stock_count, and is_in_stock as null; sku_variants[].stock is also always null. Shop rows can have shop_id and shop_url filled from the input. Shop mode returns one shop record followed by its listed products.

Sample output

This shortened real product record omits category, price_min, price_max, discount_pct, shop_id, sku_variants, image_urls, video_urls, shipping, stock_count, is_in_stock and scraped_at. It came from a keyword search using the thoi-trang category.

keyword_fallback:

{
"type": "product",
"product_id": "1729484235456352758",
"title": "CHICME Women's Ribbed Racerback Built-in Bra Tank Top - Sleeveless, Short, Casual, Minimalist, Skinny, Padded Everyday Basic Going Out Top",
"description": null,
"brand": "CHICME",
"price": 12.99,
"original_price": 17.99,
"currency": "USD",
"sold_count": 289832,
"rating": 4.4,
"review_count": 17358,
"shop_name": "chicme",
"seller_region": "US",
"product_url": "https://shop.tiktok.com/us/pdp/tank-top-by-chicme-with-built-in-bra-and-ribbed-fabric-for-comfort/1729484235456352758",
"parse_confidence": 1,
"warnings": ["keyword_fallback:thoi-trang"]
}

Pricing

This Actor uses Pay Per Event pricing. The shop-product event represents one TikTok Shop product with sold count, SKU, price, and rating. Products are billed individually; shop profile rows are free. Platform usage is included in the event prices; this Actor does not use the Pay per event + usage option.

Planshop-product event price
Free$0.00199 per product
Bronze$0.0019701 per product
Silver$0.0019502 per product
Gold$0.0019303 per product
Platinum$0.0019104 per product
Diamond$0.0018905 per product

maxResults controls the maximum products returned across a run. Shop records do not count toward that limit. Default 50, range 1–10000. On the Free plan, a run returns at most 5 products and takes 1 keyword, 1 product, and 1 shop; larger values are lowered.

Free-plan example: a Free run of 5 products = 5 × $0.00199. The Apify Free plan includes $5 of monthly platform usage credit.

Paid-plan examples: 1,000 results on Bronze = 1,000 × $0.0019701 = $1.9701; 10,000 results on Bronze = 10,000 × $0.0019701 = $19.701.

How to use

  1. Choose keyword collection with keywords, product collection with productUrls or productIds, storefront collection with shopUrls or shopIds, or a combination.
  2. Enter terms, product URLs or IDs, and storefront URLs or IDs in their corresponding lists. Processing order is keywords, products, then shops; maxResults is shared.
  3. Set maxResults within the supported range.
  4. Use Apify Residential Proxy: TikTok blocks datacenter IPs. Set countryCode for product and shop inputs; keyword inputs always use a US exit and ignore countryCode. Without Apify Proxy or proxy URLs, Residential US is used.
  5. Run the Actor and review prices, sold counts, ratings, variants, images, links, parse_confidence, and warnings.
  6. Repeat runs through Apify Schedules, starting daily for product listings or price monitoring.

Example input:

{
"keywords": ["phone case"],
"maxResults": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"countryCode": "US"
}
}

Export the dataset as JSON or CSV, or read it through the Apify dataset API.

Input parameters

ParameterWhat it doesDefault
keywordsProduct terms read from category pages through a US exit; countryCode is ignored. Broader matches carry keyword_fallback:No default
productUrlsTikTok Shop product URLs; reads embedded product JSON. IDs need at least 6 digits; other values go to issues.No default
productIdsBare TikTok Shop product IDs. IDs need at least 6 digits; other values go to issues.No default
shopUrlsTikTok Shop storefront URLs; returns the shop record and listed products. IDs need at least 6 digits; other values go to issues.No default
shopIdsBare TikTok Shop seller or shop IDs. IDs need at least 6 digits; other values go to issues.No default
maxResultsMaximum products across the run; shop records do not count. Default 50, range 1–10000.50
proxyConfigurationResidential Proxy configuration. Product and shop inputs use its country; keyword inputs use a US exit and ignore countryCode. If omitted, Residential US is used.Apify Proxy enabled, RESIDENTIAL, US
disableUsageStatsSet to true to turn off the run summary in Usage statistics.false

Each product or shop input gets at most 3 fetch attempts in total. Attempts start in the selected country, or US if none is set. A region wall or 404 moves to the next country in the order selected country, US, GB; other failures retry in the same country. A product gets up to 2 attempts per country and a shop up to 3, so US and GB may not be reached. Other storefront regions are not verified.

Limits and edge cases

ConditionWhat the buyer seesWhat to do
Free planCapped at 5 products and 1 keyword, 1 product, and 1 shop on non-paying accounts, including the Free plan. Larger values are lowered and noted in the run log; status does not change.Stay within the caps or use a paid Apify plan.
Keyword modeGeneric terms use a US exit. Terms without Latin letters or digits are skipped. Broader-category rows carry keyword_fallback:Use generic product terms and inspect status, warnings, and OUTPUT.
No input returns dataThe run fails with No data returned:. OUTPUT has error: no_data_returned and per-input issues such as blocked site, unavailable item, catalogue not served, unrecognised page, failed request, or server error. Nothing is charged.Review the reported issues.
Pages load but no products matchThe run succeeds with an empty dataset, status No products found for this input…, and OUTPUT.warning: no_products_found. Nothing is charged.Check the input and try a one-result run.
Some inputs failThe run succeeds and lists issues in OUTPUT.Review and rerun affected inputs.
Cost guardWith no products delivered, the run fails with OUTPUT.error: stopped_by_cost_guard and nothing is charged. After products are delivered, it succeeds with OUTPUT.stoppedEarly: MARGIN_GUARD; written rows remain charged.Retry later or with fewer inputs.
No usable inputThe run fails with OUTPUT.error: no_input. IDs need at least 6 digits; rejected inputs are listed in the detail.Provide keywords, product URLs or IDs, or shop URLs or IDs.
Product challenge or shop catalogue not servedA challenged product may be skipped and listed in issues with no charge. If a shop catalogue is unavailable, the shop row is delivered, no products follow, and the input is listed in issues.Retry later or with fewer inputs.
When rows are writtenProduct inputs are written in batches of 10, with the last batch written when the list ends or the run stops early. A shop row is written first, followed by its products; keyword products are written together. Written rows remain charged.Inspect the dataset and issues.

FAQ

How much does it cost to scrape TikTok Shop?

Each product costs the shop-product event price for the selected plan; the Pricing table lists all six plans. A Free run of 5 products = 5 × $0.00199, and shop profile rows are free.

Why is my TikTok Shop result empty?

TikTok Shop can be region-gated, and datacenter IPs can be blocked. Use Apify Residential Proxy. Product and shop inputs use countryCode; keyword inputs use a US exit. Keyword searches with no category can succeed with an empty dataset, with the reason in status and OUTPUT.

Check that values contain generic product terms, product URLs or IDs, or storefront URLs or IDs. Product URL and ID mode reads embedded product JSON. Blocks, CAPTCHA pages, and region walls can still occur.

The Actor collects public data from TikTok Shop. Whether a use is legal or allowed depends on TikTok Shop’s terms, applicable law, and your use case; review those requirements before using the output.

Usage statistics

This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.

A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.

To opt out, set disableUsageStats to true in the input. Nothing is sent then.

Full list of collected fields

⌂ 换网址