tiktok.analytics.202509.shop_products.product_id.performance
GET/analytics/202509/shop_products/{product_id}/performanceVia 360: GET https://partner.quantri360.com/v1/tiktok/analytics/202509/shop_products/{product_id}/performance
Description
Hiệu quả của MỘT sản phẩm trong khoảng ngày (gộp hoặc theo ngày): GMV, đơn, số bán, hủy / trả, lưu lượng (hiển thị, lượt xem trang, CTR, chuyển đổi) tách theo nguồn LIVE / VIDEO / thẻ sản phẩm, phân bố đánh giá sao, top nội dung và creator bán sản phẩm.
end_date_ltkhông tính ngày đó — muốn gồm ngày X thì gửi X + 1.- Số liệu trễ ~1 ngày: xem
latest_available_date. - Tiền dạng
{amount, currency}, amount là chuỗi số. - Đã gặp: cùng một sản phẩm, API này dồn toàn bộ doanh số vào
PRODUCT_CARD(LIVE / VIDEO = 0) trong khi GET /analytics/202509/shop_skus/{sku_id}/performance và /analytics/202605/shop_products/performance tách được phần LIVE / VIDEO — cần số theo nguồn thì dùng hai API kia. top_contents/top_creatorsrỗng khi không có nội dung / creator nào tạo đơn trong kỳ.
Request
Endpoint
GET https://partner.quantri360.com/v1/tiktok/analytics/202509/shop_products/{product_id}/performance
Authentication & shop
| Name | In | Type | Sample | Description |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 100001 | Gian hàng (lấy ở GET /v1/platforms → shops[].platform_shop_id). BẮT BUỘC khi brand có > 1 gian hàng trên nền tảng; 360 bỏ tham số này trước khi chuyển tiếp. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| product_id | path | string | Yes | 9000000000000000077 | Mã sản phẩm. |
| start_date_ge | query | string | Yes | 2026-10-15 | Từ ngày (YYYY-MM-DD, theo múi giờ gian hàng, tính cả ngày này). |
| end_date_lt | query | string | Yes | 2026-10-22 | Đến TRƯỚC ngày (YYYY-MM-DD, không tính ngày này). |
| granularity | query | string | No | ALL | ALL (mặc định) = gộp cả kỳ · 1D = từng ngày. |
| currency | query | string | No | LOCAL | LOCAL (mặc định) · USD. |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok/analytics/202509/shop_products/9000000000000000077/performance?platform_shop_id=7494000000000000000&start_date_ge=2026-10-20&end_date_lt=2026-10-27&granularity=ALL¤cy=LOCAL" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/tiktok/analytics/202509/shop_products/9000000000000000077/performance",
params={
"platform_shop_id": "7494000000000000000",
"start_date_ge": "2026-10-20",
"end_date_lt": "2026-10-27",
"granularity": "ALL",
"currency": "LOCAL"
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok/analytics/202509/shop_products/9000000000000000077/performance');
for (const [k, v] of Object.entries({"platform_shop_id":"7494000000000000000","start_date_ge":"2026-10-20","end_date_lt":"2026-10-27","granularity":"ALL","currency":"LOCAL"})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php $key = 'q360_live_...'; // khóa API của brand $url = 'https://partner.quantri360.com/v1/tiktok/analytics/202509/shop_products/9000000000000000077/performance' . '?' . http_build_query(['platform_shop_id' => '7494000000000000000', 'start_date_ge' => '2026-10-20', 'end_date_lt' => '2026-10-27', 'granularity' => 'ALL', 'currency' => 'LOCAL']); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]); $res = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status, "\n", $res;
Response
Response fields (as returned by TikTok Shop)
| Name | Type | Sample | Description |
|---|---|---|---|
| code | int | 0 | 0 = thành công; khác 0 xem message (105001–105003 = token, 360 đã tự làm mới một lần). |
| message | string | Success | Thông điệp của TikTok. |
| request_id | string | YEU_CAU_MINH_HOA | Mã request TikTok. |
| data | object | Dữ liệu. | |
| latest_available_date | string | 2026-11-01 | Ngày gần nhất đã có số liệu. |
| performance | object | Hiệu quả. | |
| intervals | object[] | Một dòng (ALL) hoặc mỗi ngày (1D). | |
| start_date | string | 2026-11-01 | Ngày bắt đầu. |
| end_date | string | 2026-11-01 | (không tính ngày này) |
| sales | object | Doanh số. | |
| gmv | object | {amount, currency} — gồm cả đơn hủy / hoàn. | |
| amount | string | 150000 | Số tiền. |
| currency | string | VND | Mã tiền tệ. |
| orders | int | 1 | Số đơn hàng. |
| items_sold | int | 1 | Số sản phẩm đã bán. |
| breakdowns | object[] | Theo `content_type` `LIVE` · `VIDEO` · `PRODUCT_CARD`: sales {gmv, items_sold, avg_customers}. | |
| content_type | … | Minh họa | Loại nội dung. |
| sales | … | Minh họa | Doanh số. |
| traffic | object | Lưu lượng truy cập. | |
| breakdowns | object[] | Theo `content_type`: traffic {impressions, page_views, avg_unique_page_views, ctr, avg_conversion_rate}. | |
| content_type | … | Minh họa | Loại nội dung. |
| traffic | … | Minh họa | Lưu lượng truy cập. |
| cancel_and_refunds | object | {canceled, returned, refunded} — số ĐƠN VỊ sản phẩm; khóa bằng 0 bị lược (vd chỉ có `canceled`), vắng hẳn khi không có. | |
| ratings | object[] | Đánh giá trong kỳ: [{stars `1_STAR`…`5_STAR`, count, percentage (chuỗi 0–1)}] — thứ tự không cố định. | |
| count | number | 1 | Số lượng. |
| percentage | string | 0.10 | Tỷ lệ phần trăm. |
| stars | string | Minh họa | Số sao. |
| top_contents | object[] | Top 100 nội dung theo GMV: [{type `LIVE`|`VIDEO`, contents[]}]. | |
| contents | object[] | Các nội dung. | |
| content_id | string | 900000000000000001 | Mã nội dung. |
| gmv | object | Tổng giá trị hàng hóa. | |
| amount | … | 150000 | Số tiền. |
| currency | … | VND | Mã tiền tệ. |
| items_sold | number | 1 | Số sản phẩm đã bán. |
| type | string | Minh họa | Loại. |
| top_creators | object[] | Top 100 creator theo GMV: [{creator_open_id, creator_name, creator_profile, gmv, items_sold}]. |
Response sample
{
"code": 0,
"message": "Success",
"request_id": "YEU_CAU_MINH_HOA",
"data": {
"latest_available_date": "2026-11-01",
"performance": {
"intervals": [
{
"start_date": "2026-11-01",
"end_date": "2026-11-01",
"sales": {
"gmv": {
"amount": "150000",
"currency": "VND"
},
"orders": 1,
"items_sold": 1,
"breakdowns": [
{
"content_type": "Minh họa",
"sales": "Minh họa"
}
]
},
"traffic": {
"breakdowns": [
{
"content_type": "Minh họa",
"traffic": "Minh họa"
}
]
},
"cancel_and_refunds": {}
}
],
"ratings": [
{
"count": 1,
"percentage": "0.10",
"stars": "Minh họa"
}
],
"top_contents": [
{
"contents": [
{
"content_id": "900000000000000001",
"gmv": {
"amount": "150000",
"currency": "VND"
},
"items_sold": 1
}
],
"type": "Minh họa"
}
],
"top_creators": []
}
}
}
Get started
- Sign up for Partner
- Enable a data type of the Sản phẩm group on the platform page
- Create an API key (tick the TikTok Shop channel)
- Call it as in the examples above