TikTok Shop Product Details + Colour Swatches avatar

TikTok Shop Product Details + Colour Swatches

Pricing

from $5.00 / 1,000 products

Go to Apify Store
TikTok Shop Product Details + Colour Swatches

TikTok Shop Product Details + Colour Swatches

Full TikTok Shop US product data: gallery, options with one image per colour value, every SKU with its swatch and stock, lifetime sold count. Pay per product.

Pricing

from $5.00 / 1,000 products

Rating

0.0

(0)

Developer

Simoki

Simoki

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Full product data for TikTok Shop US listings, including the one field other scrapers leave empty: a swatch image for every colour value, attached to every SKU.

Give it product URLs or ids. Get back the gallery, the option tree, every SKU with its own image and stock status, the lifetime sold count and the seller.

What you get per product

{
"productId": "1731406217255686451",
"url": "https://shop.tiktok.com/view/product/1731406217255686451",
"title": "OEAK Women Jelly Bras Wirefree Full Coverage …",
"description": "…",
"soldCount": 882675,
"images": ["https://p16-oec-general-useast8.ttcdn-us.com/…", "…"],
"mainImage": "https://p16-oec-general-useast8.ttcdn-us.com/…",
"options": [
{ "id": "100000", "name": "Color", "hasImages": true,
"values": [ { "id": "7026545190341216005", "name": "Dark Nude", "image": "https://p16-oec-general-useast5.ttcdn-us.com/…" }, "…" ] },
{ "id": "100007", "name": "Size", "hasImages": false,
"values": [ { "id": "1003579", "name": "S", "image": null }, "…" ] }
],
"swatchCount": 25,
"skus": [
{ "skuId": "1731936062929015091", "skuName": "E1110587", "active": true,
"options": { "Color": "Dark Nude", "Size": "S" },
"image": "https://p16-oec-general-useast5.ttcdn-us.com/…",
"availableQuantity": 91, "inStock": true }
],
"skuCount": 200,
"activeSkuCount": 162,
"seller": { "id": "7495342967492151603", "name": "OEAK Apparel" },
"scrapedAt": "2026-09-19T02:40:11.000Z"
}
  • options[].values[].image is the swatch for that value. Colour options carry one per value; size-type options carry null.
  • skus[].image is the swatch of the SKU's colour value, so every variant can be shown with its own picture.
  • Image URLs are TikTok CDN links and load without authentication.
  • A product that no longer exists comes back as { "productId": "…", "error": "not_found" }, so your ids stay accounted for. These are free.

Input

fieldmeaning
productsTikTok Shop product URLs or 18–19 digit product ids. Duplicates are collapsed.
paceMsDelay between products, default 5000. Leave it unless you have a reason.
maxItemsStop after N products (0 = all).
includeInactiveSkusKeep SKUs TikTok marks inactive (flagged active: false). Default on.

Speed and rate limits

The default pace of one product every 5 seconds is the tested safe setting, about 700 products an hour. Faster settings tend to trigger TikTok rate limiting, which only makes the run slower: on the first hit the run pauses for 90 seconds and retries; on a second hit it stops cleanly with everything collected so far and marks the remaining ids error: "rate_limited". Re-run those later.

For large lists, run them as they are. There is no benefit to splitting them into parallel runs.

Scope

  • US market only. Products listed in other TikTok Shop regions are out of scope.
  • No price. TikTok does not expose a stable public price for most listings; pair with a search-based actor if you need one.
  • Lifetime sold only. soldCount is TikTok's cumulative figure. Sales over a time window come from comparing two runs a few days apart.

Pricing

Pay per product returned. Products that were not found or could not be read are not charged.

Output views

The dataset has two ready-made views in the console: Overview (one row per product with image, sold count, swatch and SKU counts, seller) and SKUs (one row per variant with its swatch image, options and stock). The run's key-value store holds a SUMMARY record with the counts for the run.