TikTok Shop Scraper | Fast Search & Full Product Data
Pricing
from $1.22 / 1,000 product results
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
Maintained by CommunityActor stats
2
Bookmarked
201
Total users
82
Monthly active users
3.2 hours
Issues response
3 days ago
Last modified
Categories
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, currencyUSD). Other storefronts are intentionally rejected instead of returning US products with an incorrect country label.
๐ Start your first run
- Open the Actor's Input tab.
- Choose a Mode:
- โก Fast Search for product research, prices, sales, ratings, and sellers.
- ๐ฌ Full Product Data for product-page details, SKUs, reviews, and tracking.
- Add one or more Search keywords, for example
water bottleormini printer. - Set Maximum products. This limit applies separately to every keyword.
- Keep the default US residential proxy for the most reliable results.
- 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?
| Mode | What it collects | Recommended use |
|---|---|---|
โก fast | Product cards, prices, discounts, sold count, rating, review count, seller, images, tags, and ranking | Large searches, market research, product discovery |
๐ฌ full | Everything from Fast plus descriptions, properties, SKUs, stock, shipping, business information, videos, reviews, and changes | Product 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
modeto select a mode.dataLevelis an output field and does not switch the Actor to Full mode.
๐ Copy-paste examples
Quick product search
{"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
| Field | Default | Meaning |
|---|---|---|
mode | fast | fast or full |
keywords | ["water bottle"] | One or more TikTok Shop search phrases |
maxItems | 10 | Maximum saved products per keyword; 0 removes the item cap |
maxPages | 1 | Maximum search pages loaded for each keyword |
sortBy | relevance | relevance, best_sellers, price_asc, price_desc, or rating_desc |
dedupe | true | Removes repeated product IDs across all keywords and pages |
maxItems: 0 does not remove the maxPages limit. Increase both values for deeper collection.
Product filters
| Field | What it does |
|---|---|
minPrice / maxPrice | Keeps products within the selected USD price range |
minRating | Keeps products at or above the selected rating when a rating is available |
minSoldCount | Keeps products at or above the selected sold count when it is available |
freeShippingOnly | Keeps 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
| Field | Default | Meaning |
|---|---|---|
includeReviews | true | Fetch public customer reviews |
maxReviews | 5 | Maximum reviews per product; 0 requests all reviews TikTok exposes |
reviewSort | recommended | TikTok's recommended order or recent |
trackChanges | false | Compare current values with the previous saved snapshot |
fullConcurrency | 8 | Product-detail requests processed in parallel, from 1 to 12 |
includeRawDetail | false | Adds the original detail payload for debugging; significantly increases row size |
Output and performance
| Field | Default | Meaning |
|---|---|---|
compactOutput | true | Removes null values and empty arrays/objects for a cleaner dataset |
htmlReport | true | Creates a visual product-grid report in the key-value store |
maxConcurrency | 1 | Number of keywords processed in parallel, from 1 to 10 |
requestDelayMs | 0 | Optional delay between pages for the same keyword |
proxyConfiguration | US residential | Proxy 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.
| Output | What you will find there |
|---|---|
| Products | Clean product overview with image, price, sales, seller, and link |
| Prices & sales | Price, discount, sold count, rating, reviews, and shipping indicators |
| Sellers | Seller identity and products associated with each seller |
| Full product data | Descriptions, variants, stock, shipping, business data, videos, and review status |
| SKUs & variants | One expanded row for every product variant |
| Customer reviews | One expanded row for every fetched review |
| Price & sales changes | Price, sales velocity, and stock differences between tracked runs |
| Errors | Pages or details that could not be verified; these are not product results |
| Run summary | Saved counts, issues, duration, mode, market, and direct output links |
| HTML report | A 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 configuredmaxReviewslimit 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