---
title: "TikTok Shop Product Reviews API"
method: GET
path: "/v1/tiktok-shop/product-reviews"
tags: ["TikTok Shop"]
---

# TikTok Shop Product Reviews API

`GET /v1/tiktok-shop/product-reviews`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/tiktok-shop/product-reviews`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

TikTok Shop product reviews — star rating, text, SKU variant, verified purchase, country, and review photos.

Pass a TikTok Shop product URL and get customer reviews as clean JSON — not a video comment thread. Each review includes the per-review star rating (1–5), review text, createdAt (UTC ISO with Z), verifiedPurchase, the SKU / variant label the buyer selected (e.g. "Thicc 16oz | Ice Cream"), review country, masked author name when TikTok exposes one, and images[] of photos the reviewer attached. Envelope: totalReturned, hasMore, totalAvailable (PDP product_review_count when known), windowKind (ssr-preview | extended — extended is the fallback path). There is no redeemable cursor yet — hasMore + totalAvailable tell you the set is larger; you cannot walk past this page. Native PDP SSR returns a short preview (~3) for 2 credits; deeper pages use the fallback path (may take longer) and bill about 2.25 credits per review returned (e.g. ~45 for limit=20). Reviewer identity is a deliberate TikTok privacy mask (e.g. "C**e") — omitted author is not a missing scrape. There is no Comment Replies endpoint for Shop reviews — these are product reviews, not nested social comments, and like counts are not exposed.

Docs: https://captapi.com/apis/tiktok-shop-product-reviews

## Query parameters

- `url` string, required
- `limit` integer
- `cache` boolean

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `url` string: Canonical URL of the item.
    - `totalReturned` integer: Number of items returned in this response.
    - `reviews` object[]
      - `platform` string: Platform identifier for this response (matches the endpoint's platform).
      - `id` string: Id of this reviews item.
      - `rating` integer: This review's star score (1–5). Not the product's average rating — that lives on Product Details / Shop Search as products[].rating.
      - `text` string: Review body text.
      - `createdAt` string: When the review was posted, UTC ISO-8601 with milliseconds and Z (e.g. 2026-05-15T21:49:56.991Z).
      - `verifiedPurchase` boolean: true when TikTok marks the reviewer as a verified buyer.
      - `sku` string: Variant / SKU label the buyer selected (e.g. "Thicc 16oz | Ice Cream").
      - `country` string: ISO country of the reviewer when TikTok exposes it (e.g. US). Not a request-market param and not related to popular-creators feeds.
      - `author` object: Reviewer display when TikTok exposes one — usually a privacy mask (e.g. "C**e"). Full handle/avatar/profile URL are not on public Shop reviews; omitted author is a deliberate platform limit, not a scrape gap.
        - `name` string
      - `images` string[]: Photo URLs the reviewer attached to this review (empty/omitted when none).

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

[API](https://skmtc.dev/captapi/apis/captapi-api.md) · [All operations](https://skmtc.dev/captapi/apis/captapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/captapi/apis/captapi-api/revisions/c9b9ac5ff1bd?raw)
