VI | EN
Message us on Messenger
Developer resources

Search Open Collaboration Products — TikTok Shop API

tiktok.affiliate_creator.202405.open_collaborations.products.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.affiliate_creator.202405.open_collaborations.products.search

POST/affiliate_creator/202405/open_collaborations/products/searchVia 360: POST https://partner.quantri360.com/v1/tiktok/affiliate_creator/202405/open_collaborations/products/search
Description

DÀNH CHO CREATOR: Tìm sản phẩm hợp tác mở theo ngành hàng, hoa hồng và từ khóa trong vùng creator đã đăng ký tiếp thị liên kết.

  • HIỆN CHƯA GỌI ĐƯỢC QUA 360: API này dùng kết nối của creator / đối tác, kết nối gian hàng trả code 36009005. Cần dùng → liên hệ 360.
  • API chỉ đọc; code = 0 mới là thành công.

Request

Endpoint

POST https://partner.quantri360.com/v1/tiktok/affiliate_creator/202405/open_collaborations/products/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
page_tokenquerystringNoCon trỏ next_page_token trả về trang trước; bỏ ở trang đầu. Khi sang trang, giữ nguyên các bộ lọc và page_size.
page_sizequeryintYes20Số kết quả mỗi trang: 1–20.
sort_fieldquerystringNocommission_rateTrường sắp xếp: commission_rate, product_sales_price, commission hoặc units_sold.
sort_orderquerystringNoASCThứ tự sắp xếp: ASC tăng dần, DESC giảm dần. Mặc định ASC.
title_keywordsbody[]stringNo["Sản phẩm minh họa"]Tối đa 20 từ khóa tìm gần đúng theo tên sản phẩm, mỗi từ tối đa 255 ký tự. Các từ khóa kết hợp bằng AND.
sales_price_rangebodyobjectNoGiới hạn giá bán trong khoảng amount_ge đến trước amount_lt.
sales_price_range.amount_gebodystringNo10000Cận dưới giá sản phẩm; giá trị lớn hơn 0.
sales_price_range.amount_ltbodystringNo10000Cận trên giá sản phẩm; giá trị lớn hơn 0. Bỏ qua thì không đặt cận trên.
categorybodyobjectNoNgành hàng.
category.idbodystringNo100000000000000101Mã ngành hàng cấp một; không hỗ trợ cấp sâu hơn.
commission_rate_rangebodyobjectNoKhoảng tỷ lệ hoa hồng.
commission_rate_range.rate_gebodyintNo1000Hoa hồng tối thiểu, đơn vị 0,01%; 3587 là 35,87%. Khoảng 100–8000, tính cả hai đầu.
commission_rate_range.rate_ltbodyintNo2000Hoa hồng phải nhỏ hơn mức này, đơn vị 0,01%; 3587 là 35,87%. Tối thiểu 1000.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/tiktok/affiliate_creator/202405/open_collaborations/products/search?page_size=20" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/tiktok/affiliate_creator/202405/open_collaborations/products/search",
    params={
        "page_size": 20
    },
    json={},
    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/affiliate_creator/202405/open_collaborations/products/search');
for (const [k, v] of Object.entries({"page_size":20})) 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({}),
});
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/affiliate_creator/202405/open_collaborations/products/search' . '?' . http_build_query(['page_size' => 20]);
$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, '{}');
$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ã kết quả; 0 là thành công.
messagestringSuccessThông báo kết quả.
request_idstringDEMO_AFFILIATE_REQUESTMã truy vết yêu cầu.
dataobjectDữ liệu phản hồi.
products[]objectDanh sách sản phẩm.
shopobjectGian hàng.
namestringChiến dịch minh họaTên.
idstring100000000000000101Mã định danh. Giá trị bổ sung: SUCCEEDED, GET.
has_inventorybooltrueCòn hàng.
units_soldint1Số lượng đã bán.
titlestringSản phẩm minh họaTiêu đề.
sale_regionstringMinh họaBán vùng.
main_image_urlstringhttps://example.com/minh-hoaChính ảnh url.
detail_linkstringhttps://example.com/minh-hoaChi tiết liên kết.
original_priceobjectGiá gốc.
currencystringVNDMã tiền tệ. Giá trị bổ sung: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND.
minimum_amountstring10000Số tiền thấp nhất.
maximum_amountstring10000Số tiền cao nhất.
category_chains[]objectChuỗi ngành hàng từ cha đến con.
idstring100000000000000101Mã định danh. Giá trị bổ sung: SUCCEEDED, GET.
local_namestringMinh họaTên ngành hàng tại thị trường.
is_leafbooltrueLà ngành hàng lá.
parent_idstring100000000000000101Mã ngành hàng cha.
commissionobjectHoa hồng.
rateint1000Tỷ lệ.
currencystringVNDMã tiền tệ. Giá trị bổ sung: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND.
amountstring10000Số tiền. Giá trị bổ sung: IVA.
sales_priceobjectDoanh số giá.
currencystringVNDMã tiền tệ. Giá trị bổ sung: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND.
minimum_amountstring10000Số tiền thấp nhất.
maximum_amountstring10000Số tiền cao nhất.
next_page_tokenstringCon trỏ trang kế tiếp; rỗng khi hết dữ liệu.
total_countint1Tổng số kết quả.

Response sample

{
  "code": 0,
  "message": "Success",
  "request_id": "DEMO_AFFILIATE_REQUEST",
  "data": {
    "products": [
      {
        "shop": {
          "name": "Chiến dịch minh họa"
        },
        "id": "100000000000000101",
        "has_inventory": true,
        "units_sold": 1,
        "title": "Sản phẩm minh họa",
        "sale_region": "Minh họa",
        "main_image_url": "https://example.com/minh-hoa",
        "detail_link": "https://example.com/minh-hoa",
        "original_price": {
          "currency": "VND",
          "minimum_amount": "10000",
          "maximum_amount": "10000"
        },
        "category_chains": [
          {
            "id": "100000000000000101",
            "local_name": "Minh họa",
            "is_leaf": true,
            "parent_id": "100000000000000101"
          }
        ],
        "commission": {
          "rate": 1000,
          "currency": "VND",
          "amount": "10000"
        },
        "sales_price": {
          "currency": "VND",
          "minimum_amount": "10000",
          "maximum_amount": "10000"
        }
      }
    ],
    "next_page_token": "",
    "total_count": 1
  }
}

Get started

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