TikTok Product List API
API Information
- API Name: Get TikTok Shop Product List
- Request Method: POST
- API URL:
/open-api/v1/data - Interface URI path:
/v3/api/open/tiktok-shop/product/list - Description: Get TikTok shop product list information based on filter conditions
- Pricing: Retrieving one data result consumes 1 credit
Request Headers:
- Content-Type: application/json
- Accept: application/json
Request Parameters
Request Structure
| Parameter Name | Type | Description | Example | Required | Default |
|---|---|---|---|---|---|
key | string | User's external API request key | "your_api_key_here" | Yes | |
uri | string | Interface URI path | "/v3/api/open/tiktok-shop/product/list" | Yes | |
params | object | Interface parameter object | See parameter list below | Yes |
Parameter List (params object)
| Parameter Name | Type | Description | Example | Required | Default |
|---|---|---|---|---|---|
current_page | integer | Current page number, pagination query current page, starting from 1 | 1 | Yes | |
page_size | integer | Page size, number of records per page for pagination query, default 20 | 20 | Yes | |
sort | integer | Sort field, 1-Last time, 2-First time, 3-Sold, 4-GMV, 5-Impressions, 6-Ad Spend, 7-Ads, 8-influencers | 3 | Yes | |
sort_type | string | Sort type, asc-ascending, desc-descending | "desc" | Yes | |
time | long | Time range, 0-all, 1-yesterday,7-last 7 days, 30-last 30 days, 90-last 90 days | 30 | Yes | |
categorize | string | Category, multiple separated by commas, used to filter products by category | "cat_001,cat_002" | No | |
commission_rate_max | double | Maximum commission rate, used to filter products with commission rate not exceeding specified value | 0.2 | No | |
commission_rate_min | double | Minimum commission rate, used to filter products with commission rate not below specified value | 0.05 | No | |
cpm_max | double | Ad Spend, Maximum ad cost (CPM), used to filter products with ad cost not exceeding specified value | 10.0 | No | |
cpm_min | double | Ad Spend, Minimum ad cost (CPM), used to filter products with ad cost not below specified value | 1.0 | No | |
delivery | string | Delivery method, overseas-cross-border delivery, local-local delivery | "local" | No | |
found_time_end | long | First Ad date, End time of first ad discovery (timestamp), used to filter products first discovered within specified time range | 1643673600 | No | |
found_time_start | long | First Ad date, Start time of first ad discovery (timestamp), used to filter products first discovered within specified time range | 1640995200 | No | |
gmv_max | double | Maximum sales volume (GMV), used to filter products with sales volume not exceeding specified value | 100000.0 | No | |
gmv_min | double | Minimum sales volume (GMV), used to filter products with sales volume not below specified value | 1000.0 | No | |
is_in_marketplace | boolean | Whether it's a marketplace product, false-not marketplace product, true-marketplace product | true | No | |
is_managed | boolean | Whether it's a fully managed product, false-not fully managed product, true-fully managed product | false | No | |
keyword | string | Search keyword, used for fuzzy search by product title, description, etc. | "phone case" | No | |
last_found_time_end | long | Last Ad date, End time of last ad discovery (timestamp), used to filter products last discovered within specified time range | 1643673600 | No | |
last_found_time_start | long | Last Ad date, Start time of last ad discovery (timestamp), used to filter products last discovered within specified time range | 1640995200 | No | |
person_count_max | long | Influencers, Maximum number of influencers, used to filter products with influencer count not exceeding specified value | 100 | No | |
person_count_min | long | Influencers, Minimum number of influencers, used to filter products with influencer count not below specified value | 1 | No | |
play_count_max | long | Ad Impressions, Maximum play count/ad impressions, used to filter products with play count not exceeding specified value | 1000000 | No | |
play_count_min | long | Ad Impressions, Minimum play count/ad impressions, used to filter products with play count not below specified value | 1000 | No | |
price_usd_max | double | Price (USD), Maximum product price in USD, used to filter products with USD price not exceeding specified value | 100.0 | No | |
price_usd_min | double | Price (USD), Minimum product price in USD, used to filter products with USD price not below specified value | 10.0 | No | |
region | string | Country/region, multiple separated by commas, used to filter products by region | "US,GB" | No | |
sales_trend | integer | Sales trend, 1-Increase, 0-Stable, -1-Decrease | 1 | No | |
sales_volume_max | long | GMV, Maximum sales volume, used to filter products with sales volume not exceeding specified value | 10000 | No | |
sales_volume_min | long | GMV, Minimum sales volume, used to filter products with sales volume not below specified value | 100 | No | |
search_type | string | Search type, 1-product name description, 2-store name, 3-influencer name, default 1 | "1" | No | |
shop_id | string | Shop ID, used to filter products from specified shop | "shop_001" | No | |
video_count_max | long | Ads, Maximum ad count, used to filter products with ad count not exceeding specified value | 100 | No | |
video_count_min | long | Ads, Minimum ad count, used to filter products with ad count not below specified value | 1 | No |
Request Example
curl -X POST "https://www.pipispy.com/open-api/v1/data" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"key": "your_api_key_here",
"uri": "/v3/api/open/tiktok-shop/product/list",
"params": {
"current_page": 1,
"page_size": 20,
"sort": 3,
"sort_type": "desc",
"time": 30,
"keyword": "phone case",
"region": "US,GB",
"price_usd_min": 10.0,
"price_usd_max": 50.0,
"sales_volume_min": 100
}
}'
Response
Response Body Structure
{
"code": 200,
"message": "success",
"data": {
"data": [
// Product list
],
"page": {
// Pagination information
}
},
"version": "v1",
"timestamp": null,
"sign": null,
"remaining_credits": 9980,
"consumed_credits": 20,
"success": true,
"fail": false
}
Response Field Description
Main Response Fields
| Field Name | Type | Description |
|---|---|---|
code | Integer | Response status code |
message | String | Response message |
data | Object | Response data object |
version | String | API version number |
timestamp | Long | Timestamp (can be null) |
sign | String | Signature (can be null) |
remaining_credits | number | Current remaining available credits after this request |
consumed_credits | number | Credits consumed by this request |
success | Boolean | Whether the request was successful |
fail | Boolean | Whether the request failed |
Product Information Fields (list)
| Field Name | Type | Description |
|---|---|---|
id | string | Product unique identifier ID |
image | string | Product main image URL |
title | string | Product title |
desc | string | Product description (optional field) |
price | double | Product price (local currency) |
price_usd | double | Product price in USD |
sales_volume | long | Product sales volume |
score | double | Product rating |
shop_name | string | Shop name |
video_count | long | Number of ad videos |
categorize | object | Product category information |
region | string | Product target region |
play_count | long | Play count/ad impressions |
share_count | long | Share count |
found_time | long | First discovery time (timestamp) |
last_found_time | long | Last discovery time (timestamp) |
insert_time | long | Data insertion time (timestamp) |
update_time | long | Data update time (timestamp) |
min_cpm | double | Minimum ad cost (CPM) |
max_cpm | double | Maximum ad cost (CPM) |
currency | string | Currency type |
shop_id | string | Shop ID |
is_collection | boolean | Whether it's collected |
shop_image | string | Shop image URL |
root_path | string | Product root path (domain) |
keywords | array | Product keyword list (optional field) |
card_found_time | long | Card first discovery time (timestamp) |
card_last_found_time | long | Card last discovery time (timestamp) |
commission_rate | double | Commission rate |
sales_trend | integer | Sales trend, 1-growth, 0-stable, -1-decline |
sales_trend_data | array | Sales trend data list |
gmv | double | Sales volume (GMV) |
delivery | string | Delivery method, overseas-cross-border delivery, local-local delivery |
is_in_marketplace | boolean | Whether it's a marketplace product |
is_managed | boolean | Whether it's a fully managed product |
person_count | long | Number of influencers |
shop_sales_volume | long | Shop sales volume |
gmv_usd | double | Sales volume in USD (GMV USD) |
Product Category Information Object Fields (categorize)
| Field Name | Type | Description |
|---|---|---|
_id | string | Category ID |
name_zh | string | Chinese category name |
name_vi | string | Vietnamese category name |
name_th | string | Thai category name |
name_pt | string | Portuguese category name |
name_ja | string | Japanese category name |
name_id | string | Indonesian category name |
name_en | string | English category name |
Sales Trend Data Fields (sales_trend_data)
| Field Name | Type | Description |
|---|---|---|
day | Long | Date timestamp |
sales_volume | Long | Daily sales volume |
Page Object Fields (page)
| Field Name | Type | Description |
|---|---|---|
total_count | Long | Total number of records |
page_count | Long | Total number of pages |
current_page | Long | Current page number |
page_size | Long | Page size |
is_next | Boolean | Whether there is next page |
Response Example
{
"code": 200,
"message": "success",
"data": {
"data": [
{
"id": "1731082690126648263",
"image": "https://im.pipispy.com/products/images/4b5f6645b62f59e6.png",
"title": "Scrub Daddy 10-Piece Multi-Color Microfiber Towel Set Colorful Cleaning",
"price": 16.98,
"price_usd": 16.98,
"sales_volume": 2954,
"score": 4.9,
"shop_name": "QVC, Inc",
"video_count": 30,
"categorize": {
"_id": "600409",
"name_zh": "清洁抹布",
"name_vi": "Khăn lau",
"name_th": "ผ้าเช็ดทำความสะอาด",
"name_pt": "Cleaning Cloths",
"name_ja": "Cleaning Cloths",
"name_id": "Kain Pembersih",
"name_en": "Cleaning Cloths"
},
"region": "US",
"play_count": 3604387,
"share_count": 1095,
"found_time": 1748325472,
"last_found_time": 1752200041,
"insert_time": 1747783755,
"update_time": 1752200071,
"min_cpm": 12327.0,
"max_cpm": 49416.15,
"currency": "USD",
"shop_id": "7495811038271212487",
"is_collection": false,
"shop_image": "https://im.pipispy.com/shops/images/63f695e743c88654.png",
"root_path": "shop.tiktok.com",
"card_found_time": 1748325472,
"card_last_found_time": 1752200041,
"commission_rate": 0.0,
"sales_trend": 1,
"sales_trend_data": [
{
"day": 1748188800,
"sales_volume": 139
},
{
"day": 1748275200,
"sales_volume": 1
}
],
"gmv": 50158.92,
"delivery": "local",
"is_in_marketplace": false,
"is_managed": true,
"person_count": 20,
"shop_sales_volume": 559338,
"gmv_usd": 50158.92
}
],
"page": {
"total_count": 10000,
"page_count": 500,
"current_page": 1,
"page_size": 20,
"is_next": true
}
},
"version": "v1",
"timestamp": null,
"sign": null,
"remaining_credits": 9980,
"consumed_credits": 20,
"success": true,
"fail": false
}
Error Codes
| Error Code | Description |
|---|---|
200 | Success |
400 | Bad Request - Request parameter error |
500 | Internal Server Error |