List a TikTok Shop store's products
Read one page of a store's public product grid: the shop summary and twenty product cards in the storefront's order, continued with the caller-carried cursor.
/v1/tiktok/shop/productsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Store (seller) ID; provide either seller_id or url.
Public store URL: https://www.tiktok.com/shop/store/{slug}/{seller_id} or https://shop.tiktok.com/us/store/{slug}/{seller_id}.
max 2048 chars
https://www.tiktok.com/shop/store/example-wellness/7400000000000000001Opaque continuation token from a previous response; omit for the first page.
top, the storefront's ordering.
one of: top · default: "top"
Storefront region, US (default).
one of: US · default: "US"
Request correlation UUID.
Upstream calls made (document reads and JSON feed calls, retries included), decoded bytes delivered to the parser and elapsed milliseconds.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable public data is returned; inspect status and coverage for omissions.
success, partial, failed or challenged. HTTP 200 can be partial.
one of: success, partial
Canonical public storefront URL the response describes.
absolute HTTPS URL
UTC retrieval timestamp.
Complete means every supported field was read; warnings name each cap or fallback.
Always included.
one of: public_page, public_api
Always included.
Always included.
The storefront's shop summary exactly as published: seller_id, sold_count, on_sell_product_count, review_count, global_seller_id, global_sold_count, followers_count and video_count (decimal strings), enable_follow, shop_name, shop_logo, shop_rating (string), shop_link, background, formatted counts (format_sold_count, format_followers_count, format_video_count, format_global_sold_count, display_on_sell_product_count), region, store_sub_score (type 1 positive feedback, 2 ships in 48h, 3 replies in 24h; score, score_percentage string), worst_rating, best_rating, creator_name, shop_identity_label (label_type and text, e.g. OFFICIAL SHOP), shop_slogan and desc (null when absent). Null when the document omits it.
Always included.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
≥ 0
Always included.
≥ 0
Always included.
Always included.
Always included.
Always included.
absolute HTTPS URL
Always included.
Always included.
Always included.
Always included.
≥ 0
Always included.
≥ 0
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Optional.
Optional.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
Always included.
up to 20 items
Always included.
Always included.
Always included.
Always included.
≥ 0
Always included.
≥ 0
Always included.
Always included.
Always included.
Optional.
Optional.
Optional.
Optional.
Always included.
Always included.
Always included.
Optional.
Always included.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Always included.
Always included.
Always included.
Always included.
Always included.
≥ 0
Always included.
Always included.
Optional.
Optional.
Always included.
≥ 0
Always included.
≥ 0
Always included.
Always included.
Always included.
Always included.
Always included.
absolute HTTPS URL
Always included.
Always included.
Always included.
Optional.
Always included.
Whether the storefront reports more cards after this page.
Opaque continuation token from a previous response; omit for the first page.
No fields match.
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.
| HTTP | failure.code | Meaning |
|---|---|---|
| 400 | invalid_request | Missing, duplicate, ambiguous or unsupported parameters, unsupported URL forms, regions, sorts or cursors. |
| 401 | unauthorized | Invalid API key. |
| 404 | not_found | Unknown or removed product, or a store the storefront does not serve. |
| 429 | upstream_rate_limited | TikTok Shop rate limited the request. |
| 502 | upstream_challenged | TikTok Shop answered its Security Check page, an HTTP 401/403, or refused the session's feed call (status challenged). |
| 502 | unsafe_redirect | TikTok Shop redirected outside the requested product or store (for example to a regional storefront or the login page). |
| 502 | unsupported_page | Layout, identity or feed-envelope checks failed, or a non-HTML document was served. |
| 502 | response_too_large | The upstream response exceeded 4 MiB. |
| 502 | payload_too_complex | The embedded JSON exceeded parsing limits. |
| 502 | request_limit | The upstream call budget was exhausted. |
| 502 | upstream_error | Network failure, an unexpected upstream status after one retry, or an unexpected feed code. |
| 503 | busy | All retrieval slots are occupied. |
| 504 | timeout | The 40-second deadline elapsed. |