tiktok.promotion.202309.activities.activity_id
GET/promotion/202309/activities/{activity_id}Via 360: GET https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/{activity_id}
Coming soon. This API already runs in production through 360 and pricing is being finalised — you can read the docs and prepare your integration now.
Description
Lấy chi tiết chương trình khuyến mãi. Sản phẩm của FIXED_PRICE, DIRECT_DISCOUNT và FLASHSALE đã kết thúc hơn 180 ngày không được trả về.
- Gọi qua /v1/tiktok/promotion/202309/activities/{activity_id} với Authorization: Bearer <key>; dùng platform_shop_id khi có nhiều shop. 360 tự gắn app_key, shop_cipher, sign và access_token.
- API chỉ đọc; code = 0 mới là thành công.
Request
Endpoint
GET https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/{activity_id}
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 |
|---|---|---|---|---|---|
| activity_id | path | string | Yes | 100000000000000001 | Chương trình mã. |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/100000000000000001" \ -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/promotion/202309/activities/100000000000000001",
params={},
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/promotion/202309/activities/100000000000000001');
for (const [k, v] of Object.entries({})) 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/promotion/202309/activities/100000000000000001' . '?' . http_build_query([]); $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 | Mã. Giá trị: API. |
| message | string | Success | Tin nhắn. Giá trị: API. |
| request_id | string | DEMO_REQUEST_A_01 | Yêu cầu mã. |
| data | object | Dữ liệu. | |
| activity_id | string | 100000000000000001 | Chương trình mã. |
| title | string | Minh họa | Tiêu đề. |
| activity_type | string | FIXED_PRICE | FIXED_PRICE: giá cố định; DIRECT_DISCOUNT: giảm phần trăm; FLASHSALE: flash sale; SHIPPING_DISCOUNT: giảm vận chuyển; BUY_MORE_SAVE_MORE: mua nhiều giảm nhiều; GIFT_WITH_PURCHASE: quà tặng; BUY_X_GET_Y: mua X nhận Y. |
| duration_type | string | NORMAL | NORMAL: có begin_time và end_time. INDEFINITE chỉ cho SHIPPING_DISCOUNT, đặt hai mốc bằng 0; mặc định NORMAL. |
| begin_time | number | 1793491200 | Bắt đầu (Unix giây), phải ở tương lai khi tạo / lên lịch; chương trình đang chạy giữ nguyên mốc. INDEFINITE dùng 0. Giá trị: UNIX. |
| end_time | number | 1793577600 | Kết thúc (Unix giây). |
| participation_limit | []object | BMSM, BXGY và GWP cần đúng một phần tử giới hạn tham gia. | |
| type | string | BUYER_NO_LIMIT | Loại. Giá trị: BUYER_NO_LIMIT, BUYER_LIMIT_ONLY_ONE. |
| products | object[] | Products. Giá trị: FIXED_PRICE, DIRECT_DISCOUNT, FLASHSALE. | |
| id | string | 100000000000000001 | Mã. |
| activity_price | object | Chương trình giá. | |
| amount | string | 10000 | Số tiền. |
| currency | string | VND | Mã tiền tệ. |
| quantity_limit | number | 1 | Giới hạn số lượng: 1–99 hoặc -1 để không giới hạn; khi cập nhật không được giảm. Cấp sản phẩm của VARIATION phải là -1. |
| quantity_per_user | number | 1 | Giới hạn mỗi người mua: 1–99 hoặc -1; khi cập nhật không được giảm. Cấp sản phẩm của VARIATION phải là -1. |
| discount | string | Minh họa | Cấu hình ưu đãi: shipping_discount cho SHIPPING_DISCOUNT; bmsm_discount cho BMSM; gift_discount cho GWP; bxgy_discount cho BXGY. Không dùng cho FIXED_PRICE / DIRECT_DISCOUNT / FLASHSALE. |
| skus | object[] | Skus. Giá trị: VARIATION. | |
| id | string | 100000000000000001 | Mã. Giá trị: SKU. |
| discount | string | Minh họa | Cấu hình ưu đãi: shipping_discount cho SHIPPING_DISCOUNT; bmsm_discount cho BMSM; gift_discount cho GWP; bxgy_discount cho BXGY. Không dùng cho FIXED_PRICE / DIRECT_DISCOUNT / FLASHSALE. |
| quantity_limit | number | 1 | Giới hạn số lượng: 1–99 hoặc -1 để không giới hạn; khi cập nhật không được giảm. Cấp sản phẩm của VARIATION phải là -1. |
| quantity_per_user | number | 1 | Giới hạn mỗi người mua: 1–99 hoặc -1; khi cập nhật không được giảm. Cấp sản phẩm của VARIATION phải là -1. |
| activity_price | object | Chương trình giá. Giá trị: FIXED_PRICE, FLASHSALE. | |
| amount | string | 10000 | Số tiền. |
| currency | string | VND | Mã tiền tệ. |
| used_quantity | int | 1 | Used số lượng. Giá trị: SKU. |
| used_quantity | int | 1 | Used số lượng. |
| status | string | DRAFT | Trạng thái. Giá trị: DRAFT, NOT_START, ONGOING, EXPIRED, DEACTIVATED, NOT_EFFECTIVE. |
| create_time | number | 1793491200 | Tạo thời điểm. Giá trị: UNIX. |
| update_time | number | 1793491200 | Update thời điểm. Giá trị: UNIX. |
| product_level | string | PRODUCT | PRODUCT: toàn bộ SKU của sản phẩm; VARIATION: SKU chỉ định; SHOP: toàn gian hàng. FIXED_PRICE / DIRECT_DISCOUNT / FLASHSALE dùng PRODUCT hoặc VARIATION; SHIPPING_DISCOUNT không dùng VARIATION; BMSM / BXGY dùng PRODUCT hoặc SHOP; GWP chỉ PRODUCT. |
| activity_commands | []string | ['Minh họa'] | Chương trình commands. Giá trị: IMMUTABLE. |
| discount | object | Cấu hình ưu đãi: shipping_discount cho SHIPPING_DISCOUNT; bmsm_discount cho BMSM; gift_discount cho GWP; bxgy_discount cho BXGY. Không dùng cho FIXED_PRICE / DIRECT_DISCOUNT / FLASHSALE. | |
| shipping_discount | object | Vận chuyển giảm giá. | |
| threshold_type | string | NO_THRESHOLD | NO_THRESHOLD: không ngưỡng; MINIMAL_ITEM_QUANTITY: số sản phẩm tối thiểu; MINIMAL_ORDER_AMOUNT: tổng tiền tối thiểu. Giảm vận chuyển có ngưỡng chỉ dùng với SHOP. |
| threshold_value | string | Minh họa | Ngưỡng hưởng ưu đãi: số lượng là số nguyên dương; tiền là số dương theo nội tệ, tối đa hai chữ số thập phân. NO_THRESHOLD không cần giá trị. |
| type | string | FREE_SHIPPING | FREE_SHIPPING: miễn vận chuyển; DISCOUNT_SHIPPING_FEE: giảm tối đa value theo nội tệ. Giá trị: FREE_SHIPPING, DISCOUNT_SHIPPING_FEE. |
| value | string | 10000 | Bỏ khi FREE_SHIPPING; DISCOUNT_SHIPPING_FEE dùng mức giảm tối đa theo nội tệ, tối đa hai chữ số thập phân. Giá trị: FREE_SHIPPING, DISCOUNT_SHIPPING_FEE. |
| shipping_method | string | STANDARD_SHIPPING | STANDARD_SHIPPING: tiêu chuẩn, gồm tiết kiệm (mặc định); EXPRESS_SHIPPING: nhanh; ALL_SHIPPING_METHOD: tất cả. |
| inventory_type | string | SELF_FULFILLED | SELF_FULFILLED: kho người bán (mặc định); FULFILLED_BY_TIKTOK: kho FBT; ALL: tất cả. Hai giá trị sau chỉ khi SHOP và NO_THRESHOLD. |
| area_scope | object | Area phạm vi. | |
| type | string | WHOLE | WHOLE: mọi vùng giao hàng; SPECIFIC_AREAS: các vùng trong specific_areas. Giá trị: WHOLE, SPECIFIC_AREAS. |
| specific_areas | []string | ['Minh họa'] | Danh sách mã vùng giao hàng hợp lệ tùy khu vực của gian hàng. |
| bmsm_discount | object | Bmsm giảm giá. Giá trị: BMSM. | |
| details | []object | Một hoặc hai bậc; threshold_type và type phải giống nhau giữa các bậc. Giá trị: BMSM. | |
| tier | int | 1 | Bậc bắt đầu từ 1; ngưỡng của bậc sau phải lớn hơn bậc trước. Với BMSM cả value cũng phải tăng. |
| threshold_type | string | NO_THRESHOLD | NO_THRESHOLD: không ngưỡng; MINIMAL_ITEM_QUANTITY: số sản phẩm tối thiểu; MINIMAL_ORDER_AMOUNT: tổng tiền tối thiểu. Giảm vận chuyển có ngưỡng chỉ dùng với SHOP. |
| threshold_value | string | Minh họa | Ngưỡng hưởng ưu đãi: số lượng là số nguyên dương; tiền là số dương theo nội tệ, tối đa hai chữ số thập phân. NO_THRESHOLD không cần giá trị. |
| type | string | PERCENTAGE_OFF | Loại. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF. |
| value | string | 10000 | PERCENTAGE_OFF: phần trăm nguyên dương; AMOUNT_OFF: tiền nội tệ dương, tối đa hai chữ số thập phân. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF. |
| gift_discount | object | Quà tặng giảm giá. Giá trị: GWP. | |
| gift_receiving_type | string | ALL_RECEIVE | Chỉ hỗ trợ ALL_RECEIVE: nhận toàn bộ quà cấu hình. |
| gift_infos | []object | Ít nhất một bậc; tối đa hai tại Đông Nam Á / Anh, một tại Mỹ; threshold_type phải giống nhau giữa các bậc. | |
| tier | int | 1 | Bậc bắt đầu từ 1; ngưỡng của bậc sau phải lớn hơn bậc trước. Với BMSM cả value cũng phải tăng. |
| threshold_type | string | NO_THRESHOLD | NO_THRESHOLD: không ngưỡng; MINIMAL_ITEM_QUANTITY: số sản phẩm tối thiểu; MINIMAL_ORDER_AMOUNT: tổng tiền tối thiểu. Giảm vận chuyển có ngưỡng chỉ dùng với SHOP. |
| threshold_value | string | Minh họa | Ngưỡng hưởng ưu đãi: số lượng là số nguyên dương; tiền là số dương theo nội tệ, tối đa hai chữ số thập phân. NO_THRESHOLD không cần giá trị. |
| gift_details | []object | SKU quà tặng; có ít nhất một SKU trên toàn chương trình, không lặp sku_id. Ngưỡng MINIMAL_ITEM_QUANTITY cần danh sách không rỗng. | |
| product_id | string | 100000000000000001 | Sản phẩm mã. |
| sku_id | string | 100000000000000001 | Sku mã. |
| total_claim_limit | string | Minh họa | Tổng số quà được nhận theo SKU: số nguyên từ 1 đến 99999. |
| bxgy_discount | object | Bxgy giảm giá. Giá trị: BXGY. | |
| threshold_type | string | NO_THRESHOLD | NO_THRESHOLD: không ngưỡng; MINIMAL_ITEM_QUANTITY: số sản phẩm tối thiểu; MINIMAL_ORDER_AMOUNT: tổng tiền tối thiểu. Giảm vận chuyển có ngưỡng chỉ dùng với SHOP. |
| threshold_value | string | Minh họa | Ngưỡng hưởng ưu đãi: số lượng là số nguyên dương; tiền là số dương theo nội tệ, tối đa hai chữ số thập phân. NO_THRESHOLD không cần giá trị. Ngưỡng số lượng tối đa 10. |
| discount_type | string | PERCENTAGE_OFF | Giảm giá loại. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF_EACH, FREE. |
| discount_value | string | Minh họa | Giảm giá giá trị. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF_EACH. |
| benefit_max_applicable_quantity | string | Minh họa | Số lượng Y mỗi lần hưởng ưu đãi, số nguyên dương tối đa 20. |
| benefit_max_applicable_times | string | 1793491200 | Số lần hưởng ưu đãi tối đa mỗi đơn, số nguyên dương tối đa 50. |
| target_user_info | object | Đối tượng BMSM / BXGY / GWP; bỏ trống để dùng ALL_USER. | |
| user_type | string | ALL_USER | Người dùng loại. Giá trị: ALL_USER, SHOP_NEW_CUSTOMER, SHOP_EXISTING_CUSTOMER, SHOP_REPEAT_CUSTOMER, SHOP_ABANDONED_CHECKOUTS_CUSTOMER. |
| benefit_products | []object | Ưu đãi products. Giá trị: BXGY. | |
| id | string | 100000000000000001 | Mã. |
| auction_support_type | string | ALL | ALL: gồm sản phẩm đấu giá (mặc định); EXCLUDE_AUCTION: loại sản phẩm đấu giá. |
Response sample
{
"code": 0,
"message": "Success",
"request_id": "DEMO_REQUEST_A_01",
"data": {
"activity_id": "100000000000000001",
"title": "Minh họa",
"activity_type": "FIXED_PRICE",
"duration_type": "NORMAL",
"begin_time": 1793491200,
"end_time": 1793577600,
"participation_limit": [
{
"type": "BUYER_NO_LIMIT"
}
],
"products": [
{
"id": "100000000000000001",
"activity_price": {
"amount": "10000",
"currency": "VND"
},
"quantity_limit": 1,
"quantity_per_user": 1,
"discount": "Minh họa",
"skus": [
{
"id": "100000000000000001",
"discount": "Minh họa",
"quantity_limit": 1,
"quantity_per_user": 1,
"activity_price": {
"amount": "10000",
"currency": "VND"
},
"used_quantity": 1
}
],
"used_quantity": 1
}
],
"status": "DRAFT",
"create_time": 1793491200,
"update_time": 1793491200,
"product_level": "PRODUCT",
"activity_commands": [
"Minh họa"
],
"discount": {
"shipping_discount": {
"threshold_type": "NO_THRESHOLD",
"threshold_value": "Minh họa",
"type": "FREE_SHIPPING",
"value": "10000",
"shipping_method": "STANDARD_SHIPPING",
"inventory_type": "SELF_FULFILLED",
"area_scope": {
"type": "WHOLE",
"specific_areas": [
"Minh họa"
]
}
},
"bmsm_discount": {
"details": [
{
"tier": 1,
"threshold_type": "NO_THRESHOLD",
"threshold_value": "Minh họa",
"type": "PERCENTAGE_OFF",
"value": "10000"
}
]
},
"gift_discount": {
"gift_receiving_type": "ALL_RECEIVE",
"gift_infos": [
{
"tier": 1,
"threshold_type": "NO_THRESHOLD",
"threshold_value": "Minh họa",
"gift_details": [
{
"product_id": "100000000000000001",
"sku_id": "100000000000000001",
"total_claim_limit": "Minh họa"
}
]
}
]
},
"bxgy_discount": {
"threshold_type": "NO_THRESHOLD",
"threshold_value": "Minh họa",
"discount_type": "PERCENTAGE_OFF",
"discount_value": "Minh họa",
"benefit_max_applicable_quantity": "Minh họa",
"benefit_max_applicable_times": "1793491200"
}
},
"target_user_info": {
"user_type": "ALL_USER"
},
"benefit_products": [
{
"id": "100000000000000001"
}
],
"auction_support_type": "ALL"
}
}
Get started
- Sign up for Partner
- Enable a data type of the Khuyến mãi (Promotion) group on the platform page
- Create an API key (tick the TikTok Shop channel)
- Call it as in the examples above