# 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.

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 by step

### 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`. ([TikTok Shop product search](https://dataxapi.com/apis/tiktok/shop/products/search/), $0.0020 / a call)

cURL

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

Python

```python
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.shop.products.search(query="yoga mat")
print(result["data"]["items"])
```

TypeScript

```typescript
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);
```

CLI

```bash
dataxapi call tiktok.shop.products.search 'query=yoga mat'
```

Recorded response: 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.

```jsonc
{
  "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"
    }
  }
}
```

### 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`. ([TikTok Shop product reviews](https://dataxapi.com/apis/tiktok/shop/products/reviews/list/), $0.0020 / a call)

cURL

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

Python

```python
from dataxapi import DataXAPI

dx = DataXAPI()  # reads DATAXAPI_API_KEY
result = dx.tiktok.shop.products.reviews.list(id="1732488007561286228")
print(result["data"]["items"])
```

TypeScript

```typescript
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);
```

CLI

```bash
dataxapi call tiktok.shop.products.reviews.list id=1732488007561286228
```

Recorded response: 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.

```jsonc
{
  "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"
    }
  }
}
```

## What the example costs

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

| Endpoint | Calls | Price | Subtotal |
| --- | --- | --- | --- |
| [TikTok Shop product search](https://dataxapi.com/apis/tiktok/shop/products/search/) | 1 | $0.0020 | $0.0020 |
| [TikTok Shop product reviews](https://dataxapi.com/apis/tiktok/shop/products/reviews/list/) | 5 | $0.0020 | $0.0100 |
| Total | 6 |  | $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: 

```json
{
  "capability": "tiktok.shop.products.search",
  "query": "yoga mat",
  "idempotency_key": "<a new UUID>"
}
```

[About the MCP server](https://dataxapi.com/mcp/)

## With a Skill

The Products and reviews Skill does this job as a ready-made task, under a spending cap. “What is selling, and what do buyers say?” Its example run: 4 calls, at most $0.0080. [Products and reviews](https://dataxapi.com/skills/products/)

## 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.

## Endpoints

- [TikTok Shop product search](https://dataxapi.com/apis/tiktok/shop/products/search/)
- [TikTok Shop product reviews](https://dataxapi.com/apis/tiktok/shop/products/reviews/list/)

## More about TikTok

- [TikTok API](https://dataxapi.com/apis/tiktok/)
- [TikTok Shop API](https://dataxapi.com/apis/tiktok/shop/)
- [How to get TikTok comments with Python](https://dataxapi.com/guides/tiktok-comments-python/)
- [How to get a TikTok video transcript](https://dataxapi.com/guides/tiktok-video-transcript/)
- [Can ChatGPT read TikTok?](https://dataxapi.com/answers/can-chatgpt-read-tiktok/)

---

Catalog revision c48ce454ae6c4c65. [HTML version](https://dataxapi.com/guides/tiktok-shop-product-reviews/)
