Skip to content
scrapeatlas.Dashboard

Get a TikTok Shop product's reviews

Try in Playground

Read the reviews block embedded in a public product page: the embedded reviews, the total, whether more exist and the rating histogram.

GET/v1/tiktok/shop/product/reviewsx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
3
product_idstringquery

TikTok Shop product ID; provide either product_id or url.

Example1729000000000000001
urlstringquery

Public product URL (same forms as the product endpoint).

max 2048 chars

regionenumdefault: "US"query

Storefront region, US (default).

one of: US · default: "US"

Response fields
37
requestIdstring

Request correlation UUID.

Upstream calls made (document reads and JSON feed calls, retries included), decoded bytes delivered to the parser and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsinteger

Always included.

≥ 0

successboolean

True when usable public data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Canonical public storefront URL the response describes.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Complete means every supported field was read; warnings name each cap or fallback.

coverage.sourceenum

Always included.

one of: public_page, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

product_idstring

TikTok Shop product ID; provide either product_id or url.

Always included.

up to 10 items

product_reviews.review_idstring

Always included.

product_reviews.product_idstring

Always included.

product_reviews.sku_idstringoptional

Optional.

product_reviews.reviewer_idstringoptional

Optional.

product_reviews.review_ratinginteger

Always included.

1 – 5

product_reviews.review_timestring

Always included.

product_reviews.is_verified_purchaseboolean

Always included.

product_reviews.is_incentivized_reviewboolean

Always included.

product_reviews.product_namestringoptional

Optional.

product_reviews.reviewer_namestring

Always included.

product_reviews.reviewer_avatar_urlstringoptional

Optional.

absolute HTTPS URL

product_reviews.review_textstring

Always included.

product_reviews.display_image_urlstringoptional

Optional.

absolute HTTPS URL

product_reviews.review_imagesstring[]optional

Optional.

product_reviews.sku_specificationstringoptional

Optional.

product_reviews.review_countrystringoptional

Optional.

total_reviewsstring

Total review count as a decimal string.

has_moreboolean

Whether TikTok Shop holds more reviews than the embedded ones.

review_count (string), overall_score and the rating_result histogram keyed 1-5 (decimal strings); null when the page omits it.

review_ratings.review_countstring

Always included.

review_ratings.overall_scorenumber

Always included.

review_ratings.rating_resultobject

Always included.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
13
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, ambiguous or unsupported parameters, unsupported URL forms, regions, sorts or cursors.
401unauthorizedInvalid API key.
404not_foundUnknown or removed product, or a store the storefront does not serve.
429upstream_rate_limitedTikTok Shop rate limited the request.
502upstream_challengedTikTok Shop answered its Security Check page, an HTTP 401/403, or refused the session's feed call (status challenged).
502unsafe_redirectTikTok Shop redirected outside the requested product or store (for example to a regional storefront or the login page).
502unsupported_pageLayout, identity or feed-envelope checks failed, or a non-HTML document was served.
502response_too_largeThe upstream response exceeded 4 MiB.
502payload_too_complexThe embedded JSON exceeded parsing limits.
502request_limitThe upstream call budget was exhausted.
502upstream_errorNetwork failure, an unexpected upstream status after one retry, or an unexpected feed code.
503busyAll retrieval slots are occupied.
504timeoutThe 40-second deadline elapsed.