How to search TikTok Shop products and read their reviews

2 endpoints do it: TikTok Shop product search → TikTok Shop product reviews. The worked example below is 6 calls and costs $0.0120 in all; a failed call is not charged.

Open in ChatGPTOpen in Claude

You get the TikTok Shop products for a search term in the United States store, with price, rating and units sold, and the first buyers' reviews of the ones you pick: text, rating, variant bought and photos.

Step 1: TikTok Shop product search

Search the products by your term. Each item has price, original_price, rating, metrics.sold and shop; the next step takes its id.

curl -G "https://api.dataxapi.com/v1/tiktok/shop/products/search" \
  --data-urlencode "query=yoga mat" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.shop.products.search(query="yoga mat")
print(result["data"]["items"])
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.tiktok.shop.products.search({ query: "yoga mat" });
console.log(result.data.items);
dataxapi call tiktok.shop.products.search 'query=yoga mat'
Recorded response
{
  "code": "ok",
  "request_id": "56d10893-6768-479f-b127-a8e6ee077873",
  "data": {
    "items": [
      {
        "id": "1750923004242032614",
        "url": "https://shop.tiktok.com/view/product/1750923004242032614",
        "title": "Yoga mat: a beginner's guide in 8 minutes",
        "price": "18.99",
        "original_price": "19.99",
        "currency": "USD",
        "images": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/93dde11aaaba8ca57d1f~c5_720x720.jpeg"
        ],
        "rating": 4.6,
        "metrics": { "sold": 1232 },
        "shop": { "id": "1719706733287275062", "name": "Pine & Oak Home" }
      },
      // … 22 more
    ]
  },
  "page": {
    "next_cursor": null,
    "cursor_expires_at": null,
    "has_more": false,
    "returned": 23
  },
  "warnings": [],
  "meta": {
    "capability": "tiktok.shop.products.search",
    "result_status": "complete",
    "fetched_at": "2026-10-12T21:46:03.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {
      "description": "capability",
      "metrics.reviews": "capability"
    },
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    }
  }
}

From a response recorded 2026-10-12 21:46 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

TikTok Shop product search · $0.0020 / a call · Parameters, fields and errors on the endpoint's page →

Step 2: TikTok Shop product reviews

Get the reviews of each product you pick by its id, which is also the last segment of the product's link. Each review has text, rating, variant, images and published_at.

curl -G "https://api.dataxapi.com/v1/tiktok/shop/products/reviews/list" \
  --data-urlencode "id=1732488007561286228" \
  -H "Authorization: Bearer $DATAXAPI_API_KEY"
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.shop.products.reviews.list(id="1732488007561286228")
print(result["data"]["items"])
import { DataXAPI } from "@dataxapi/sdk";

const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.tiktok.shop.products.reviews.list({ id: "1732488007561286228" });
console.log(result.data.items);
dataxapi call tiktok.shop.products.reviews.list id=1732488007561286228
Recorded response
{
  "code": "ok",
  "request_id": "bd6a422d-6eae-4338-9039-dc195ae09455",
  "data": {
    "items": [
      {
        "id": "7241346721132232026",
        "product_id": "1711666895973198690",
        "text": "Better quality than I expected, well packed.",
        "rating": 5,
        "published_at": "2025-11-08T18:07:48.019Z",
        "author": {
          "id": "6532506578034157649",
          "name": "Hannah Weiss",
          "avatar_url": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/2d964118424ccf033c18~c5_100x100.jpeg"
        },
        "images": [
          "https://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/3cca00c14d044f99de43~c5_720x720.jpeg"
        ],
        "variant": "Colour: Forest green"
      },
      // … 9 more
    ]
  },
  "page": {
    "next_cursor": null,
    "cursor_expires_at": null,
    "has_more": false,
    "returned": 10
  },
  "warnings": [],
  "meta": {
    "capability": "tiktok.shop.products.reviews.list",
    "result_status": "complete",
    "fetched_at": "2026-10-12T21:49:35.000Z",
    "cached": false,
    "replayed": false,
    "unavailable": {},
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    }
  }
}

From a response recorded 2026-10-12 21:49 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.

TikTok Shop product reviews · $0.0020 / a call · Parameters, fields and errors on the endpoint's page →

What the example costs

one search, then the reviews of 5 of the products found

EndpointCallsPriceSubtotal
Total6$0.0120

Prices are the prices in force when this page was built. A failed call, and an object that does not exist, cost nothing.

In your AI (MCP)

Connect DataXAPI to your AI client once. Then say what you want; the agent finds these endpoints, checks the price and calls them on your balance.

Say: Use DataXAPI to search TikTok Shop for “yoga mat”, take the 5 products that sold the most, and sum up what buyers like and dislike in their reviews.
What the agent sends to the call tool
{
  "capability": "tiktok.shop.products.search",
  "query": "yoga mat",
  "idempotency_key": "<a new UUID>"
}

Sign in to copy the setup prompt with your keyAbout the MCP server →

With a Skill

Good to know

  • Both endpoints read the United States store only.
  • The search gives the first page of results only, as many products as that page holds (60 at most), with no cursor. For other products, change the search term.
  • The reviews are the first 10 as the platform orders them, with no next page.
  • The search returns no product description and no review count. A product ID nobody has cannot be told from a product without reviews: both return an empty list, which is charged, as an empty search is.