TikTok Shop API
TikTok Shop Shop products API
List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination.
POST/v1/run/tiktok_shop.shop_products
Requests
-
30d
Provider network
Providers ranked by traffic
Try it
Make your first request
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
"data": {
"hasMore": true,
"nextCursor": "example",
"productCount": 12500,
"products": [
{
"currency": "USD",
"originalPrice": 19.99,
"price": 19.99,
"productId": "a1b2c3d4",
"rating": 4.6,
"reviewCount": 12500,
"soldCount": 12500,
"title": "Example title",
"url": "https://example.com/page"
}
],
"shopName": "Example title",
"shopRating": 4.6,
"soldCount": 12500
},
"found": true
}Response interface
interface TiktokShopShopProductsResponse {
data: {
hasMore: boolean;
nextCursor: string | null;
productCount: number;
products: {
currency: string;
originalPrice: number;
price: number;
productId: string;
rating: number;
reviewCount: number;
soldCount: number;
title: string;
url: string;
}[];
shopName: string;
shopRating: number;
soldCount: number;
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-16 · uptime and latency measured over 30dPOST /v1/run/tiktok_shop.shop_products
curl -X POST https://api.getanyapi.com/v1/run/tiktok_shop.shop_products \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| url | string | "https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"TikTok Shop store URL (e.g. https://www.tiktok.com/shop/store/...). |
| cursor | string | Opaque pagination cursor from a previous response's nextCursor. |
| region | string | Two-letter country code of the store's market (e.g. US). |
| sortBy | enum | Product ordering within the store. |
| Response | ||
| data | object | |
| data.hasMore | boolean | |
| data.nextCursor | string | Opaque cursor for the next page of products, or null when this lane has no more. Pass it back as cursor to continue. |
| data.productCount | integer | |
| data.products | object[] | Populated whenever the provider has data for the entity. |
| data.products[].currency | string | |
| data.products[].originalPrice | number | |
| data.products[].price | number | |
| data.products[].productId | string | Populated whenever the provider has data for the entity. |
| data.products[].rating | number | |
| data.products[].reviewCount | integer | |
| data.products[].soldCount | integer | |
| data.products[].title | string | Populated whenever the provider has data for the entity. |
| data.products[].url | string | Populated whenever the provider has data for the entity. |
| data.shopName | string | Populated whenever the provider has data for the entity. |
| data.shopRating | number | |
| data.soldCount | integer | |
| found | boolean | |
| Price | ||
| Price per request | USD | $0.0012 |
| Price /1k req | USD | $1.20 |
FAQ
About the TikTok Shop Shop products API
The AnyAPI TikTok Shop Shop products API returns TikTok Shop shop products data as normalized JSON from one POST call to /v1/run/tiktok_shop.shop_products. List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination. AnyAPI routes each request across 2 sources and falls back automatically when one fails. It costs from $1.20 per 1,000 requests, in US dollars with no subscription and no monthly minimum.
It costs from $1.20 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.
List every product of a TikTok Shop store by URL (title, price, sales, and rating per product plus shop-level stats) with cursor pagination. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.