Skip to content
scrapeatlas.Dashboard

Search TikTok Shop products

Try in Playground

Read one page of the storefront's keyword feed: twenty product cards and the matching shops, continued with the caller-carried cursor.

GET/v1/tiktok/shop/searchx-api-key
x-api-keystringrequiredheader

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

Query parameters
3
querystringrequiredquery

Search term (1-200 characters).

min 1 chars · max 200 chars

Exampleexample query
cursorstringquery

Opaque continuation token from a previous response; omit for the first page.

regionenumdefault: "US"query

Storefront region, US (default).

one of: US · default: "US"

Response fields
75
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.

querystring

Search term (1-200 characters).

Always included.

up to 20 items

products.product_idstring

Always included.

products.titlestring

Always included.

Always included.

products.image.heightinteger

Always included.

≥ 0

products.image.widthinteger

Always included.

≥ 0

products.image.uristring

Always included.

products.image.url_liststring[]

Always included.

Always included.

products.product_price_info.sku_idstringoptional

Optional.

products.product_price_info.symbol_positionintegeroptional

Optional.

products.product_price_info.show_currency_spacebooleanoptional

Optional.

products.product_price_info.currency_show_modeintegeroptional

Optional.

products.product_price_info.currency_namestring

Always included.

products.product_price_info.currency_symbolstring

Always included.

products.product_price_info.sale_price_decimalstring

Always included.

products.product_price_info.origin_price_decimalstringoptional

Optional.

products.product_price_info.sale_price_formatstring

Always included.

products.product_price_info.origin_price_formatstringoptional

Optional.

products.product_price_info.discount_formatstringoptional

Optional.

products.product_price_info.discount_decimalstringoptional

Optional.

products.product_price_info.reduce_price_formatstringoptional

Optional.

products.product_price_info.single_product_price_formatstringoptional

Optional.

products.product_price_info.single_product_price_decimalstringoptional

Optional.

products.product_price_info.sale_price_integer_part_formatstringoptional

Optional.

products.product_price_info.sale_price_decimal_part_formatstringoptional

Optional.

products.product_price_info.decimal_point_symbolstringoptional

Optional.

products.product_price_info.promotion_deduction_detailsobjectoptional

Optional.

products.product_price_info.raw_origin_price_decimalstringoptional

Optional.

products.product_price_info.raw_origin_price_formatstringoptional

Optional.

Always included.

products.rate_info.scorenumber

Always included.

products.rate_info.review_countstring | integer

Always included.

Always included.

products.sold_info.sold_countinteger

Always included.

≥ 0

Always included.

products.seller_info.seller_idstring

Always included.

products.seller_info.shop_namestringoptional

Optional.

Optional.

products.seller_info.shop_logo.heightinteger

Always included.

≥ 0

products.seller_info.shop_logo.widthinteger

Always included.

≥ 0

products.seller_info.shop_logo.uristring

Always included.

products.seller_info.shop_logo.url_liststring[]

Always included.

Always included.

products.seo_url.updated_atstringnullable

Always included.

products.seo_url.canonical_urlstring

Always included.

absolute HTTPS URL

products.seo_url.slugstring

Always included.

products.seo_url.typeinteger

Always included.

products.seo_url.versioninteger

Always included.

Optional.

products.brand_info.brand_namestring

Always included.

Always included.

shops.seller_idstring

Always included.

shops.shop_namestring

Always included.

Always included.

shops.shop_logo.heightinteger

Always included.

≥ 0

shops.shop_logo.widthinteger

Always included.

≥ 0

shops.shop_logo.uristring

Always included.

shops.shop_logo.url_liststring[]

Always included.

has_moreboolean

Whether the storefront reports more cards after this page.

cursorstringnullable

Opaque continuation token from a previous response; omit for the first page.

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.