tiktok.promotion.202406.coupons.search
POST/promotion/202406/coupons/searchVia 360: POST https://partner.quantri360.com/v1/tiktok/promotion/202406/coupons/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 mã giảm giá; các bộ lọc khác nhau kết hợp AND, các giá trị trong status hoặc display_type kết hợp OR.
- Gọi qua /v1/tiktok/promotion/202406/coupons/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/202406/coupons/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 |
|---|---|---|---|---|---|
| page_token | query | string | No | Con trỏ next_page_token của trang trước; bỏ ở trang đầu. | |
| page_size | query | int | No | 10 | Số kết quả mỗi trang. Tối đa 100, mặc định 10. |
| status | body | []string | No | ["NOT_START"] | Trạng thái. Giá trị: NOT_START, ONGOING, EXPIRED, DEACTIVATED. |
| title_keyword | body | string | No | Minh họa | Tiêu đề keyword. Giá trị: UTF. |
| display_type | body | []string | No | ["Minh họa"] | Display loại. Giá trị: REGULAR, TTS, LIVE, CREATOR_EXCLUSIVE, CHAT, PROMO_CODE, URL. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/tiktok/promotion/202406/coupons/search?page_token=&page_size=10" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"status":["NOT_START"],"title_keyword":"Minh họa","display_type":["Minh họa"]}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/tiktok/promotion/202406/coupons/search",
params={
"page_token": "",
"page_size": 10
},
json={
"status": [
"NOT_START"
],
"title_keyword": "Minh họa",
"display_type": [
"Minh họa"
]
},
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/202406/coupons/search');
for (const [k, v] of Object.entries({"page_token":"","page_size":10})) 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"],"title_keyword":"Minh họa","display_type":["Minh họa"]}),
});
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/202406/coupons/search' . '?' . http_build_query(['page_token' => '', 'page_size' => 10]);
$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"],"title_keyword":"Minh họa","display_type":["Minh họa"]}');
$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. | |
| coupons | object[] | Coupons. | |
| id | string | 100000000000000001 | Mã. |
| title | string | Minh họa | Tiêu đề. |
| display_type | string | Minh họa | Display loại. Giá trị: REGULAR, TTS, LIVE, CREATOR_EXCLUSIVE, CHAT, PROMO_CODE, URL. |
| status | string | NOT_START | Trạng thái. Giá trị: NOT_START, ONGOING, EXPIRED, DEACTIVATED. |
| create_time | number | 1793491200 | Tạo thời điểm. |
| update_time | number | 1793491200 | Update thời điểm. |
| claim_duration | object | Claim thời lượng. | |
| start_time | number | 1793491200 | Mốc bắt đầu RFC 3339 có múi giờ, tính cả mốc. |
| end_time | number | 1793577600 | Kết thúc (Unix giây). |
| redemption_duration | object | Redemption thời lượng. | |
| type | string | ABSOLUTE | Loại. Giá trị: ABSOLUTE, RELATIVE. |
| start_time | int | 1793491200 | Mốc bắt đầu RFC 3339 có múi giờ, tính cả mốc. |
| end_time | int | 1793577600 | Kết thúc (Unix giây). |
| relative_time | number | 1793491200 | Relative thời điểm. Giá trị: RELATIVE. |
| promo_code | string | Minh họa | Promo mã. Giá trị: PROMO_CODE. |
| target_buyer_segment | string | Minh họa | Mục tiêu người mua segment. Giá trị: ALL, TTS, NEW, REPEAT_CUSTOMERS, RECENT_CUSTOMERS, FREQUENT_CUSTOMERS, LAPSED_CUSTOMERS, NEW_FOLLOWERS, EXISTING_ACTIVE_FOLLOWERS, LIVE. |
| usage_limits | object | Usage limits. | |
| single_buyer_claim_limit | number | 1 | Single người mua claim giới hạn. |
| total_claim_limit | int | 1 | Tổng số quà được nhận theo SKU: số nguyên từ 1 đến 99999. |
| redemption_limit | number | 1 | Redemption giới hạn. |
| 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. | |
| type | string | AMOUNT_OFF | Loại. Giá trị: AMOUNT_OFF, PERCENT_OFF. |
| reduction_amount | object | Reduction số tiền. Giá trị: AMOUNT_OFF. | |
| amount | string | 10000 | Số tiền. Giá trị: AMOUNT_OFF. |
| currency | string | VND | Mã tiền tệ. |
| percentage | string | 0.1 | Phần trăm. Giá trị: PERCENT_OFF. |
| max_discount | object | Max giảm giá. Giá trị: PERCENT_OFF. | |
| amount | string | 10000 | Số tiền. |
| currency | string | VND | Mã tiền tệ. |
| threshold | object | Ngưỡng. | |
| type | string | NONE | Loại. Giá trị: NONE, MIN_SPEND. |
| min_spend | object | Min spend. Giá trị: MIN_SPEND. | |
| amount | string | 10000 | Số tiền. |
| currency | string | VND | Mã tiền tệ. |
| product_scope | string | Minh họa | Sản phẩm phạm vi. Giá trị: FULL_SHOP, SPECIFIC_PRODUCTS, API. |
| creation_source | string | Minh họa | Creation nguồn. Giá trị: SELLER_CENTER, SELLER_APP, TTS_CRM, CRM. |
Response sample
{
"code": 0,
"message": "Success",
"request_id": "DEMO_REQUEST_A_01",
"data": {
"total_count": 1,
"next_page_token": "",
"coupons": [
{
"id": "100000000000000001",
"title": "Minh họa",
"display_type": "Minh họa",
"status": "NOT_START",
"create_time": 1793491200,
"update_time": 1793491200,
"claim_duration": {
"start_time": 1793491200,
"end_time": 1793577600
},
"redemption_duration": {
"type": "ABSOLUTE",
"start_time": 1793491200,
"end_time": 1793577600,
"relative_time": 1793491200
},
"promo_code": "Minh họa",
"target_buyer_segment": "Minh họa",
"usage_limits": {
"single_buyer_claim_limit": 1,
"total_claim_limit": 1,
"redemption_limit": 1
},
"discount": {
"type": "AMOUNT_OFF",
"reduction_amount": {
"amount": "10000",
"currency": "VND"
},
"percentage": "0.1",
"max_discount": {
"amount": "10000",
"currency": "VND"
}
},
"threshold": {
"type": "NONE",
"min_spend": {
"amount": "10000",
"currency": "VND"
}
},
"product_scope": "Minh họa",
"creation_source": "Minh họa"
}
]
}
}
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