Answers

Can I get TikTok Shop product prices, units sold and reviews by API without a seller account?

Short answer

Not through TikTok: the TikTok Shop Partner API serves sellers, and apps they authorize, for their own shops only. okdata reads public listings instead: a product search returns 20 products for $0.004, one product's detail costs $0.002, and reviews come 20 a page for $0.002.

A small brand is about to launch a portable blender on TikTok Shop in the US. Before setting a price it wants to know three things about the 30 listings it will compete with: what they charge, how fast they sell, and what buyers complain about. Checking each listing in the app every morning is not a plan; a daily snapshot in a spreadsheet is.

Why the official API does not help here

The TikTok Shop Partner API is built for sellers and for developers whose apps a seller authorizes. It reads the authorizing shop's own products, orders and settings. There is no endpoint for another shop's listings, so competitor data has to come from the public product pages buyers see.

Three endpoints

  • TikTok Shop product search takes a keyword and a country (US by default, and the most complete). Each product has its title, current and original price, units sold, rating, number of reviews, image and shop.
  • TikTok Shop product detail fetches one product by ID or link: price and discount, units sold, rating, review count, every image, and the shop with its rating and followers.
  • TikTok Shop product reviews returns buyers' stars, text, the variant they bought, their photos and whether the purchase is verified.

A month of tracking 30 competitors

Job Calls Cost
Map the field: 3 keyword searches 3 $0.012
Daily detail for 30 products, 30 days 900 $1.80
100 reviews for each of the 30 products 150 $0.30
Total 1,053 {{cost:tiktok.shop.products.search3+tiktok.shop.products.get900+tiktok.shop.products.reviews.list*150}}

Daily snapshot in Python

import csv, datetime, os, requests

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def get(path, **params):
    body = requests.get(API + path, headers=H, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']}")
    return body["data"]

product_ids = ["1732296652516463425"]          # saved from the search
today = datetime.date.today().isoformat()
with open("tiktok_shop_daily.csv", "a", newline="", encoding="utf-8") as f:
    w = csv.writer(f)
    for pid in product_ids:
        p = get("/v1/tiktok/shop/products/get", id=pid, country="US")["item"]
        w.writerow([today, pid, p["title"][:60], p["price"], p["currency"],
                    p["sold"], p["rating"], p["reviews"]])

Run it once a day. The change in sold from one day to the next is your sales estimate per listing.

What to keep in mind

  • Units sold is what the listing displays. Large sellers' counts can be rounded, so daily differences estimate sales; they are not order counts.
  • Outside the US, coverage is thinner. Other country values work, but US listings are the most complete.
  • Prices are in local currency. Read currency before you compare markets.
  • Review order is the shop's. There is no sort parameter, so treat a few pages as a sample.
  • Delisted products come back as an error, and failed calls cost nothing.
  • Public data only. No GMV, traffic sources or ad spend.

Other ways

For your own shop, Seller Center and the Partner API are the right tools. TikTok Shop analytics products such as FastMoss or Kalodata estimate GMV and creator-driven sales across whole categories, which suits a market scan without code. okdata fits when you want raw listings and reviews in your own sheet, database or agent, paid per page. To turn the reviews into product decisions, see mining competitors' reviews and product research.

Updated