TikTok Shop Scraper - Products, Prices, Sales & Reviews

Scrape TikTok Shop listings by keyword search, category, or direct product links. Returns title, price, discount, sold count, rating, review count, images, shop name and variations, plus with details enabled: description, rating breakdown and item-level reviews. Supports incremental monitoring.

Open actor on Apify ↗Need a custom scraper?Telegram @abotapi ↗

TikTok Shop Scraper at a glance

TikTok Shop Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its output documents 23 fields, including title, change type (incremental mode), price, was and discount %, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.60 per 1,000 results on the Apify Free plan and from $2.30 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Web data
Pricing
$2.60 per 1,000 results (Free plan), from $2.30 on paid plans
Output
23 documented fields · JSON, CSV, Excel
Inputs
15 options

What TikTok Shop Scraper can do

  • Whole categories, not a first page. Point it at any category and it walks every subcategory to its end, or pick the whole-store mode to cover every category.
  • Four ways in. Category with subcategories, whole store, keyword search, or pasted product links.
  • Full product detail on request. Description, variations, rating breakdown, seller rating and followers, and recent reviews with photos.
  • Category path on every record. Each product carries the category trail it was found under.
  • Incremental monitoring built in. Schedule it and get only new and changed products, unchanged ones are not billed.
  • Streams as it goes. Results are saved category by category, so a long run keeps everything it collected.

Choose what to collect

These inputs let you configure TikTok Shop Scraper - Products, Prices, Sales & Reviews. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose 'category' to scrape a category and its subcategories, 'all' to walk every category in the store, 'search' for keyword search (top 25-40 results per keyword), or 'product' to scrape direct product links.

Choices: category, all, search, product

categoryUrlsarrayTikTok Shop category pages to scrape in category mode, for example https://shop.tiktok.com/us/c/cases-screen-protectors-stickers/601925. Open a category on TikTok Shop and copy its link; it ends in a number. Paste one or more.
includeSubcategoriesbooleanCategory mode: when a link points to a parent category, walk every subcategory under it. A parent category page alone shows only about 80 listings; its subcategories together reach far more. Turn off to scrape only the listings shown on the linked page itself.
queriesarrayOne or more keywords to search on TikTok Shop, for example 'phone case' or 'yoga leggings'. Each keyword is searched separately and returns the top results TikTok Shop shows for it (25-40 per keyword).
productUrlsarrayTikTok Shop product links to scrape in product mode, for example https://shop.tiktok.com/us/pdp/cosrx/1731369897578565803. Paste one or more.
maxItemsintegerMaximum number of listings to return across the whole run. This is the run's cap. Use 0 for unlimited (in 'all' mode, unlimited walks the entire store, which can take many hours).
maxPagesintegerOptional extra limit on how many result pages are loaded per category (each page adds about 10-20 listings). Leave empty or 0, it does not cap anything on its own and defers to Max listings.
Show 8 more inputs
More input fields
InputWhat it controls
fetchDetailsbooleanOpen each listing's product page and extract the full detail: description, variations, rating breakdown and item-level reviews. Turn off for a faster, lighter run that returns only the listing-card fields.
includeReviewsbooleanNest each listing's item-level reviews under its row, in addition to the aggregate rating and review count. Requires Fetch product details. Turn off if you only want the listing fields.
resumeFromRunIdstringPaste a previous run or dataset id to skip listings already collected there and return only the rest.
incrementalModebooleanTurn on for scheduled monitoring: later runs return only new and changed listings. Unchanged listings are suppressed and not billed.
stateKeystringOptional name for this monitoring campaign's saved state. Use different keys to monitor different searches independently.
emitUnchangedbooleanIncremental mode only. Also return, and bill, listings unchanged since the last run.
emitExpiredbooleanIncremental mode only. Also return, and bill, listings no longer found once a run has fully scanned the tracked search.
ignoreFieldsForChangesarrayOutput field names that should NOT make a listing count as UPDATED. images is always ignored, because TikTok Shop re-renders listing image lists with unstable ordering between loads; added or removed photos still change the listing through other fields. Add fields such as description or soldCount here if changes to them are not relevant to you. Ignored fields are still returned in the output.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

titleTitle
changeTypeChange type (incremental mode) (text)
pricePrice
originalPriceWas
discountPercentDiscount %
soldCountSold
ratingRating
reviewCountReviews
shopNameShop
categoryPathCategory (array)
productIdProduct ID
imagesImage (image)
Show 11 more fields
urlURL (link)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
reviewsreviews
reviewIdReview ID
reviewAuthorReviewer
reviewRatingRating (number)
reviewDateDate
reviewBodyReview
reviewPhotosPhotos (array)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "productId": "1730000000000000001",
  "title": "Example Phone Stand, Adjustable",
  "url": "https://shop.tiktok.com/us/pdp/example-phone-stand/1730000000000000001",
  "price": 13.99,
  "currency": "USD",
  "originalPrice": 19.99,
  "discountPercent": 30,
  "soldCount": 3500,
  "rating": 4.6,
  "reviewCount": 1208,
  "ratingHistogram": {
    "1": 9,
    "2": 6,
    "3": 20,
    "4": 88,
    "5": 412
  },
  "images": [
    "https://example.com/image-1.webp"
  ],
  "shopName": "Example Store",
  "shopId": "7490000000000000001",
  "categoryPath": [
    "Phones & Electronics",
    "Mobile Phone Accessories",
    "Phone Holders & Mounts"
  ],
  "description": "Adjustable aluminium stand for phones and small tablets.",
  "variations": [
    {
      "name": "Color",
      "options": [
        "Black",
        "Silver"
      ]
    }
  ],
  "sellerRating": 4.7,
  "sellerProductCount": 120,
  "sellerFollowers": 15400,
  "reviews": [
    {
      "reviewId": "7600000000000000001",
      "reviewAuthor": "A**e",
      "reviewRating": 5,
      "reviewDate": "2026-09-20",
      "reviewBody": "Sturdy and easy to adjust.",
      "reviewPhotos": [],
      "verifiedPurchase": true
    }
  ],
  "searchMode": "browse",
  "scrapedAt": "2026-10-02T04:30:00Z"
}

Ways to use this data

  • Ecommerce analysts: track prices, discounts and sold counts across TikTok Shop categories on a schedule.
  • Sellers and brands: monitor competitor catalogs, ratings and review volume in your niche.
  • Market researchers: map a whole category tree or the full store with structured, comparable records.
  • Deal and arbitrage teams: watch categories for new discounted products.
  • Product sourcing teams: find fast sellers by sold count and rating before they trend elsewhere.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does TikTok Shop Scraper return?

TikTok Shop Scraper returns 23 documented fields, including title, change type (incremental mode), price, was, discount %, sold, rating and reviews. Availability of each field depends on the source page and the selected mode.

How much does TikTok Shop Scraper cost?

It costs $2.60 per 1,000 results on the Apify Free plan and from $2.30 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Why did keyword search return fewer products than I asked for?

TikTok Shop shows visitors only its top 25-40 results per keyword, so that is the most any keyword can return. For more, add more specific keywords, or use category mode, which walks every subcategory to its end, or all mode for the whole store. The run log says so when a search ends early for this reason.

How many reviews do I get per product?

TikTok Shop product pages show their most recent reviews, typically the latest few rather than the full history, and that is what the actor returns under reviews, together with the aggregate rating, review count and rating breakdown. The dataset's Reviews view unwinds them to one row per review.

What is the difference between Resume and Incremental mode?

Resume continues one interrupted run from its run or dataset id and skips what it already collected. Incremental mode remembers products across scheduled runs by itself and returns only new and changed ones each time.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, and unchanged ones are not billed unless you turn that on too.