tiktok.promotion.202309.activities.search
POST/promotion/202309/activities/searchVia 360: POST https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/search
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
Tìm chương trình giảm giá sản phẩm, flash sale, vận chuyển, mua nhiều giảm nhiều, quà tặng và mua X nhận Y; mã giảm giá có API tìm riêng.
- Gọi qua /v1/tiktok/promotion/202309/activities/search 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
POST https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/search
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 |
|---|---|---|---|---|---|
| status | body | string | No | NOT_START | Trạng thái. Giá trị: NOT_START, ONGOING, EXPIRED, DEACTIVATED. |
| activity_title | body | string | No | Minh họa | Chương trình tiêu đề. |
| page_size | body | int | No | 10 | Số kết quả mỗi trang. Tối đa 100, mặc định 10. |
| page_token | body | string | No | Con trỏ next_page_token của trang trước; bỏ ở trang đầu. | |
| activity_type | body | string | No | 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. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/search" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"status":"NOT_START","activity_title":"Minh họa","page_size":10,"page_token":"","activity_type":"FIXED_PRICE"}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/tiktok/promotion/202309/activities/search",
params={},
json={
"status": "NOT_START",
"activity_title": "Minh họa",
"page_size": 10,
"page_token": "",
"activity_type": "FIXED_PRICE"
},
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/search');
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: 'POST',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"status":"NOT_START","activity_title":"Minh họa","page_size":10,"page_token":"","activity_type":"FIXED_PRICE"}),
});
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/search' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"status":"NOT_START","activity_title":"Minh họa","page_size":10,"page_token":"","activity_type":"FIXED_PRICE"}');
$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. | |
| total_count | number | 1 | Tổng số lượng. |
| next_page_token | string | Con trỏ trang kế tiếp; rỗng là hết dữ liệu. | |
| activities | object[] | Activities. | |
| id | string | 100000000000000001 | 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. |
| end_time | number | 1793577600 | Kết thúc (Unix giây). |
| 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. |
| update_time | number | 1793491200 | Update thời điểm. |
| 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. |
| 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. |
| 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. |
| 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": {
"total_count": 1,
"next_page_token": "",
"activities": [
{
"id": "100000000000000001",
"title": "Minh họa",
"activity_type": "FIXED_PRICE",
"duration_type": "NORMAL",
"begin_time": 1793491200,
"end_time": 1793577600,
"status": "DRAFT",
"create_time": 1793491200,
"update_time": 1793491200,
"product_level": "PRODUCT",
"activity_commands": [
"Minh họa"
],
"participation_limit": [
{
"type": "BUYER_NO_LIMIT"
}
],
"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"
}
},
"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