TikTok Shop Scraper | Fast Search & Full Product Data avatar

TikTok Shop Scraper | Fast Search & Full Product Data

Pricing

from $1.22 / 1,000 product results

Go to Apify Store
TikTok Shop Scraper | Fast Search & Full Product Data

TikTok Shop Scraper | Fast Search & Full Product Data

Scrape TikTok Shop US in two reliable modes: fast keyword search or full product extraction. Get prices, sales, sellers, descriptions, SKUs, stock, shipping, videos, reviews and change tracking. Includes bulk keywords, pagination, filters, sorting, deduplication and retries.

Pricing

from $1.22 / 1,000 product results

Rating

0.0

(0)

Developer

Kelopr

Kelopr

Maintained by Community

Actor stats

2

Bookmarked

201

Total users

82

Monthly active users

3.2 hours

Issues response

3 days ago

Last modified

Share

๐Ÿ›๏ธ TikTok Shop Scraper โ€” Products, Reviews, Sales & Sellers

Search the TikTok Shop US storefront by keyword and receive clean, export-ready product data. Start with fast product discovery, or switch to Full mode for descriptions, variants, stock, shipping, seller details, videos, customer reviews, and change tracking.

Supported storefront: United States (US, currency USD). Other storefronts are intentionally rejected instead of returning US products with an incorrect country label.

๐Ÿš€ Start your first run

  1. Open the Actor's Input tab.
  2. Choose a Mode:
    • โšก Fast Search for product research, prices, sales, ratings, and sellers.
    • ๐Ÿ”ฌ Full Product Data for product-page details, SKUs, reviews, and tracking.
  3. Add one or more Search keywords, for example water bottle or mini printer.
  4. Set Maximum products. This limit applies separately to every keyword.
  5. Keep the default US residential proxy for the most reliable results.
  6. Click Start and open the named output views when the run finishes.

The defaults are designed to work with 1 GB of memory. Invalid or empty input finishes safely with an explanation instead of crashing the Actor.

๐ŸŽฏ Fast or Full?

ModeWhat it collectsRecommended use
โšก fastProduct cards, prices, discounts, sold count, rating, review count, seller, images, tags, and rankingLarge searches, market research, product discovery
๐Ÿ”ฌ fullEverything from Fast plus descriptions, properties, SKUs, stock, shipping, business information, videos, reviews, and changesProduct intelligence, catalog enrichment, review analysis, monitoring

Full mode first searches and filters the products, then enriches only the rows that remain. This avoids spending time on products you do not need.

Use the input field mode to select a mode. dataLevel is an output field and does not switch the Actor to Full mode.

๐Ÿ“‹ Copy-paste examples

{
"mode": "fast",
"keywords": ["water bottle"],
"maxItems": 20,
"maxPages": 1
}

Search several product niches

{
"mode": "fast",
"keywords": ["neck fan", "phone case", "makeup organizer"],
"maxItems": 50,
"maxPages": 3,
"sortBy": "best_sellers",
"dedupe": true,
"maxConcurrency": 3
}

This example can save up to 50 products for each keyword, not 50 products in total.

Full product data with reviews

{
"mode": "full",
"keywords": ["portable blender"],
"maxItems": 25,
"maxPages": 2,
"includeReviews": true,
"maxReviews": 5,
"fullConcurrency": 8
}

Monitor price, sales, and stock changes

{
"mode": "full",
"keywords": ["mini printer"],
"maxItems": 50,
"includeReviews": false,
"trackChanges": true
}

Run the same input again later or schedule it on Apify. The first run creates a baseline; change fields appear from the second run onward.

๐ŸŽ›๏ธ Input reference

Essential settings

FieldDefaultMeaning
modefastfast or full
keywords["water bottle"]One or more TikTok Shop search phrases
maxItems10Maximum saved products per keyword; 0 removes the item cap
maxPages1Maximum search pages loaded for each keyword
sortByrelevancerelevance, best_sellers, price_asc, price_desc, or rating_desc
dedupetrueRemoves repeated product IDs across all keywords and pages

maxItems: 0 does not remove the maxPages limit. Increase both values for deeper collection.

Product filters

FieldWhat it does
minPrice / maxPriceKeeps products within the selected USD price range
minRatingKeeps products at or above the selected rating when a rating is available
minSoldCountKeeps products at or above the selected sold count when it is available
freeShippingOnlyKeeps products where TikTok exposes a free-shipping label

Filtering and sorting happen after TikTok returns the search cards. A filter can therefore reduce the number of saved rows below maxItems.

Full mode settings

FieldDefaultMeaning
includeReviewstrueFetch public customer reviews
maxReviews5Maximum reviews per product; 0 requests all reviews TikTok exposes
reviewSortrecommendedTikTok's recommended order or recent
trackChangesfalseCompare current values with the previous saved snapshot
fullConcurrency8Product-detail requests processed in parallel, from 1 to 12
includeRawDetailfalseAdds the original detail payload for debugging; significantly increases row size

Output and performance

FieldDefaultMeaning
compactOutputtrueRemoves null values and empty arrays/objects for a cleaner dataset
htmlReporttrueCreates a visual product-grid report in the key-value store
maxConcurrency1Number of keywords processed in parallel, from 1 to 10
requestDelayMs0Optional delay between pages for the same keyword
proxyConfigurationUS residentialProxy used for search, product details, and reviews

The timeout and retry controls are intended for advanced troubleshooting. Start with the defaults. Increasing concurrency can improve speed, but overly aggressive values may cause more TikTok security responses.

๐Ÿ“ฆ Output

Every saved product is available in the default dataset. Full-mode rows are also placed in a separate Full dataset with additional views.

OutputWhat you will find there
ProductsClean product overview with image, price, sales, seller, and link
Prices & salesPrice, discount, sold count, rating, reviews, and shipping indicators
SellersSeller identity and products associated with each seller
Full product dataDescriptions, variants, stock, shipping, business data, videos, and review status
SKUs & variantsOne expanded row for every product variant
Customer reviewsOne expanded row for every fetched review
Price & sales changesPrice, sales velocity, and stock differences between tracked runs
ErrorsPages or details that could not be verified; these are not product results
Run summarySaved counts, issues, duration, mode, market, and direct output links
HTML reportA visual product grid saved as the report key-value-store record

Export any dataset view to JSON, CSV, Excel, XML, or access it through the Apify API.

๐Ÿ”Ž Main fields

Search product fields

  • Identity: productId, title, productUrl, countryCode, query, page.
  • Price: currentPrice, originalPrice, currency, currencySymbol.
  • Demand: soldCount, soldText, rating, reviewCount.
  • Seller: sellerId, sellerName, sellerUrl.
  • Media: imageUrl, imageUrls.
  • Discovery: searchRank, sortedRank, tags, freeShipping, sourceUrl, scrapedAt.

Example:

{
"type": "product_card",
"status": "ok",
"countryCode": "US",
"query": "water bottle",
"productId": "1234567890123456789",
"title": "Example insulated water bottle",
"productUrl": "https://shop.tiktok.com/us/pdp/example-product/1234567890123456789",
"currentPrice": 19.99,
"originalPrice": 24.99,
"currency": "USD",
"soldCount": 1250,
"rating": 4.8,
"reviewCount": 315,
"sellerName": "Example Store",
"imageUrl": "https://example.com/product.webp",
"freeShipping": true,
"searchRank": 1
}

All values in this example are fictional and show the output shape only.

Additional Full fields

  • Status: dataLevel, detailStatus, detailError.
  • Product: description, properties, options, categoryId, availabilityReason.
  • Variants and stock: variants, defaultSkuId, skuCount, skuInStockCount, totalStockQuantity.
  • Commercial metrics: discount, discountPercent, savingsAmount, priceRange, estimatedRevenue.
  • Shipping: shippingName, shippingFee, shippingCurrency, deliveryMinDays, deliveryMaxDays, fulfillable, codAvailable.
  • Seller business data: businessName, businessAddress, sellerLogoUrl.
  • Media: fullImageUrls, videos, videoUrls, videoCount.

estimatedRevenue is a calculated estimate (currentPrice ร— soldCount), not verified seller revenue.

Review fields

Each object in reviews[] can include:

{
"reviewId": "9876543210987654321",
"rating": 5,
"text": "Example review text.",
"createdAt": "2026-08-01T12:00:00Z",
"reviewerName": "A**e",
"reviewCountry": "US",
"verifiedPurchase": true,
"incentivizedReview": false,
"skuSpecification": "Blue / 32 oz",
"imageUrls": ["https://example.com/review-image.webp"]
}

Review summary fields include reviewsFetchedCount, reviewsAvailableCount, reviewsWithTextCount, reviewsWithMediaCount, reviewRatingBreakdown, and reviewsFetchStatus.

reviewsFetchStatus values:

  • complete โ€” every currently exposed review was collected.
  • limited โ€” the configured maxReviews limit was reached.
  • disabled โ€” review collection was turned off.
  • failed โ€” the product was saved, but its reviews could not be fetched after retries.

Change-tracking fields

From the second matching run onward, Full mode can add previousPrice, priceChange, priceChangePct, previousSoldCount, soldSinceLastScrape, soldVelocityPerDay, stockChange, firstSeenAt, and previousScrapedAt.

๐Ÿ’ณ How charging works

  • A product-result event is charged only for a product row saved to the default dataset.
  • Full enrichment is charged only when the product-detail response succeeds.
  • The first five reviews are included with a successful Full result. Reviews above that allowance can use the separate extra-review event shown on the Actor pricing page.
  • A failed search page or rejected storefront is written to Errors, not billed as a product result.

Use maxItems, filters, and Fast mode to control the size and cost of exploratory runs before switching selected searches to Full.

โš ๏ธ Troubleshooting

I received fewer products than requested

TikTok may expose a short feed for a specific phrase, or your filters and global deduplication may remove rows. Try a broader keyword, increase maxPages, or add several distinct keywords.

I received only search fields in a Full test

Check that the input contains exactly "mode": "full". Do not use dataLevel, dataLevelMode, or maxReviewsPerProduct; the current input fields are mode and maxReviews.

Some cells are blank

TikTok does not publish every rating, stock quantity, shipping value, business field, or description for every product. With compactOutput: true, unavailable fields are omitted instead of being filled with invented values.

A Full detail or review failed

The base product row remains available with detailStatus, reviewsFetchStatus, and an explanation. Open Errors and Run summary, then retry with the default US residential proxy or lower concurrency.

Can I request Brazil, Europe, or Asia?

Not in the current public version. Only the verified US storefront is supported. Legacy clients that send a non-US country_code finish with INPUT_NEEDS_ATTENTION; the Actor never relabels US data as another market.

โœ… Reliability guarantees

  • US storefront and USD responses are validated before products are saved.
  • Duplicate product IDs can be removed across keywords and pages.
  • Incorrect or malformed input ends safely with a clear status message.
  • Failed Full enrichment is clearly marked and is never presented as successful Full data.
  • Missing source values stay missing; the Actor does not fabricate product information.

Tags: tiktok shop ยท tiktok shop scraper ยท product research ยท product reviews ยท price tracking ยท best sellers ยท ecommerce ยท dropshipping