To get TikTok Shop product data programmatically, call a storefront API instead of TikTok's Partner API. TikTok Shop's Partner API is for sellers and approved service providers working on shops that authorize them, so it covers your own shop, not a competitor's listings. Scavio's TikTok Shop API reads the public storefront with no seller account: POST /api/v1/tiktok-shop/search returns up to 30 products per call with price, discount, rating, review count and units sold, /product/reviews returns the reviews with the full star distribution, and /shop/products pages through any seller's catalogue. Each call costs 1 credit, about $0.002 on the Growth plan billed yearly.
That covers the three jobs people ask for most: product research (what sells and at what price), review mining (why it sells) and competitor tracking (everything a rival shop lists).
Step 1: Search products and read units sold
curl -s https://api.scavio.dev/api/v1/tiktok-shop/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"search": "led strip lights"}'On October 26, 2026 this returned 30 products in about 4 seconds, with has_more: true and a next_cursor for the next page. One row, as captured:
{
"product_id": "1729471473917203007",
"title": "200FT 100FT 50FT Smart Led Strip Lights RGB Color Changing Time Setting Music Sync Strip Lights with both App and Remote Control for Bedroom Indoor Lighting, for Christmas Gifts",
"url": "https://shop.tiktok.com/us/pdp/smart-led-strip-lights-by-ksipze-200ft-rgb-music-sync-app-remote-control/1729471473917203007",
"price": {
"current": 6.99,
"original": null,
"currency": "USD",
"discount_percent": null,
"savings": null,
"min": 6.99,
"max": 66.99
},
"rating": { "score": 4.6, "review_count": 18437 },
"sold_count": 140437,
"variant_count": 8,
"shop": { "shop_id": "7495358699414522431", "shop_name": "TOPSKY US" },
"labels": ["Flash sale", "Free shipping"]
}sold_count is the number the storefront shows as sold, which is what product researchers use to tell a real winner from a listing nobody buys. price.min and price.max give the variant price range, and original plus discount_percent show a markdown when there is one. Sorting this one page by sold_count already ranks the category: the top three LED strips had 154,905, 140,437 and 123,290 units sold.
In Python:
import requests
r = requests.post(
"https://api.scavio.dev/api/v1/tiktok-shop/search",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"search": "led strip lights"},
)
products = r.json()["data"]["products"]
for p in sorted(products, key=lambda p: p["sold_count"] or 0, reverse=True)[:5]:
print(p["sold_count"], p["price"]["current"], p["shop"]["shop_name"], p["title"][:50])To get the next 30, send the same body with "cursor" set to the next_cursor you received.
Step 2: Read the reviews behind a best seller
Pass a product_id from step 1:
curl -s https://api.scavio.dev/api/v1/tiktok-shop/product/reviews \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "1729386190839649013"}'The captured response opens with the product's whole rating picture, before any review text:
{
"product_id": "1729386190839649013",
"page": 1,
"total_reviews": 8799,
"rating": {
"score": 4.5,
"review_count": 8799,
"distribution": { "1": 587, "2": 195, "3": 430, "4": 1046, "5": 6541 }
},
"count": 20,
"has_more": true
}Then reviews[] holds 20 reviews a page, each with review_id, rating, text, created_at, a masked reviewer_name and any images. Add "rating": 1 to read only the one-star complaints, "has_media": true for photo and video reviews, "verified_only": true for verified purchases, or "sort": "recent" for the newest first. The 587 one-star reviews on this product are where its defects are written down.
Step 3: Page through a competitor's whole shop
Every product card carries shop.shop_id. Pass it to the shop endpoint:
curl -s https://api.scavio.dev/api/v1/tiktok-shop/shop/products \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"shop_id": "8646959325413279477"}'It returns the seller's catalogue 30 products a page with exact prices, ratings and review counts, plus next_cursor and has_more for paging. Run it on a schedule and diff the results to see when a competitor adds SKUs or moves prices.
The other five endpoints
| Endpoint | What it returns | Credits |
|---|---|---|
/api/v1/tiktok-shop/search | Up to 30 products with price, rating, units sold, shop | 1 |
/api/v1/tiktok-shop/product/reviews | 20 reviews a page plus the 1-5 star distribution | 1 |
/api/v1/tiktok-shop/shop/products | A seller's catalogue, 30 a page, exact prices | 1 |
/api/v1/tiktok-shop/product | Price, description, images, variants with stock, shipping, full shop profile | 1 |
/api/v1/tiktok-shop/categories | The category tree: 28 top-level categories, 240 nodes | 1 |
/api/v1/tiktok-shop/category/products | Products under a category id | 1 |
/api/v1/tiktok-shop/search/suggestions | Keyword autocomplete across 8 marketplace regions | 1 |
/api/v1/tiktok-shop/resolve | Turns a TikTok Shop share link into product and shop ids | 1 |
Why not the Partner API or a scraper you build yourself
- Partner API: built for sellers and service providers managing shops that authorize them, through TikTok's partner review. It is the right tool for your own orders and inventory, and the wrong one for reading a competitor's catalogue.
- Your own scraper: TikTok Shop pages are rendered in the browser and guarded against bots, and the field layout changes without notice. A maintained API returns the same JSON shape every call.
For a side-by-side of every option, see the best TikTok Shop scraper APIs and TikTok Shop API alternatives.
Getting started
- Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
- Copy your API key from the dashboard.
- Send a POST to
/api/v1/tiktok-shop/searchwith your key in theAuthorizationheader.
Try it in the playground first, or call it from Claude and other agents through the MCP server.
Reference: TikTok Shop API overview · search · reviews · shop products · product
Frequently asked questions
Does TikTok Shop have a public API for product data?
Not for marketplace-wide product data. TikTok Shop's Partner API is built for approved sellers and service providers working on shops that authorize them, so it covers that shop's own products, orders and fulfilment rather than competitors' listings. To read any public product's price, units sold and reviews, use a third-party API such as Scavio's TikTok Shop API, which returns the public storefront as JSON with no seller account.
Can I get TikTok Shop units sold through an API?
Yes. Scavio's /api/v1/tiktok-shop/search returns a sold_count for every product card, the number of units the storefront shows as sold. On 2026-10-26 the top result for "led strip lights" showed 154,905 sold alongside its price and rating.
How much does it cost to pull TikTok Shop data with Scavio?
Every TikTok Shop endpoint costs 1 credit per successful call: about $0.002 on the Growth plan billed yearly and $0.0043 on the $30 monthly Project plan. A search call returns up to 30 products, so pricing out a keyword costs well under a cent. New accounts get 50 free credits with no card.
Can I read TikTok Shop reviews through an API?
Yes. /api/v1/tiktok-shop/product/reviews returns 20 reviews per page with rating, text, date, photos and the product's full 1-5 star distribution, and it filters by star rating, photo or video reviews, verified purchases and most recent.
Which TikTok Shop regions does Scavio cover?
Product search returns the US storefront by default, and every product carries its canonical shop.tiktok.com URL so you know which storefront it came from. Search suggestions cover all eight TikTok Shop marketplace regions, and the category tree uses the same ids in every region.