VI | EN
Message us on Messenger
Developer resources

Search Promotion Activities — TikTok Shop API

tiktok.promotion.202309.activities.search · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

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

NameInTypeSampleDescription
AuthorizationheaderheaderBearer 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_idquerystring100001Gian 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

NameInTypeRequiredSampleDescription
statusbodystringNoNOT_STARTTrạng thái. Giá trị: NOT_START, ONGOING, EXPIRED, DEACTIVATED.
activity_titlebodystringNoMinh họaChương trình tiêu đề.
page_sizebodyintNo10Số kết quả mỗi trang. Tối đa 100, mặc định 10.
page_tokenbodystringNoCon trỏ next_page_token của trang trước; bỏ ở trang đầu.
activity_typebodystringNoFIXED_PRICEFIXED_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)

NameTypeSampleDescription
codeint0Mã. Giá trị: API.
messagestringSuccessTin nhắn. Giá trị: API.
request_idstringDEMO_REQUEST_A_01Yêu cầu mã.
dataobjectDữ liệu.
total_countnumber1Tổng số lượng.
next_page_tokenstringCon trỏ trang kế tiếp; rỗng là hết dữ liệu.
activitiesobject[]Activities.
idstring100000000000000001Mã.
titlestringMinh họaTiêu đề.
activity_typestringFIXED_PRICEFIXED_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_typestringNORMALNORMAL: có begin_time và end_time. INDEFINITE chỉ cho SHIPPING_DISCOUNT, đặt hai mốc bằng 0; mặc định NORMAL.
begin_timenumber1793491200Bắ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_timenumber1793577600Kết thúc (Unix giây).
statusstringDRAFTTrạng thái. Giá trị: DRAFT, NOT_START, ONGOING, EXPIRED, DEACTIVATED, NOT_EFFECTIVE.
create_timenumber1793491200Tạo thời điểm.
update_timenumber1793491200Update thời điểm.
product_levelstringPRODUCTPRODUCT: 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[]objectBMSM, BXGY và GWP cần đúng một phần tử giới hạn tham gia.
typestringBUYER_NO_LIMITLoại. Giá trị: BUYER_NO_LIMIT, BUYER_LIMIT_ONLY_ONE.
discountobjectCấ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_discountobjectVận chuyển giảm giá.
threshold_typestringNO_THRESHOLDNO_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_valuestringMinh họaNgưỡ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ị.
typestringFREE_SHIPPINGFREE_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.
valuestring10000Bỏ 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_methodstringSTANDARD_SHIPPINGSTANDARD_SHIPPING: tiêu chuẩn, gồm tiết kiệm (mặc định); EXPRESS_SHIPPING: nhanh; ALL_SHIPPING_METHOD: tất cả.
inventory_typestringSELF_FULFILLEDSELF_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_scopeobjectArea phạm vi.
typestringWHOLEWHOLE: 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_discountobjectBmsm giảm giá. Giá trị: BMSM.
details[]objectMột hoặc hai bậc; threshold_type và type phải giống nhau giữa các bậc. Giá trị: BMSM.
tierint1Bậ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_typestringNO_THRESHOLDNO_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_valuestringMinh họaNgưỡ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ị.
typestringPERCENTAGE_OFFLoại. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF.
valuestring10000PERCENTAGE_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_discountobjectQuà tặng giảm giá. Giá trị: GWP.
gift_receiving_typestringALL_RECEIVEChỉ 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.
tierint1Bậ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_typestringNO_THRESHOLDNO_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_valuestringMinh họaNgưỡ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[]objectSKU 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_idstring100000000000000001Sản phẩm mã.
sku_idstring100000000000000001Sku mã.
total_claim_limitstringMinh họaTổng số quà được nhận theo SKU: số nguyên từ 1 đến 99999.
bxgy_discountobjectBxgy giảm giá. Giá trị: BXGY.
threshold_typestringNO_THRESHOLDNO_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_valuestringMinh họaNgưỡ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_typestringPERCENTAGE_OFFGiảm giá loại. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF_EACH, FREE.
discount_valuestringMinh họaGiảm giá giá trị. Giá trị: PERCENTAGE_OFF, AMOUNT_OFF_EACH.
benefit_max_applicable_quantitystringMinh họaSố lượng Y mỗi lần hưởng ưu đãi, số nguyên dương tối đa 20.
benefit_max_applicable_timesstring1793491200Số lần hưởng ưu đãi tối đa mỗi đơn, số nguyên dương tối đa 50.
auction_support_typestringALLALL: 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

  1. Sign up for Partner
  2. Enable a data type of the Khuyến mãi (Promotion) group on the platform page
  3. Create an API key (tick the TikTok Shop channel)
  4. Call it as in the examples above