tiktok.affiliate_seller.202405.open_collaborations.products.search
POST/affiliate_seller/202405/open_collaborations/products/searchVia 360: POST https://partner.quantri360.com/v1/tiktok/affiliate_seller/202405/open_collaborations/products/search
Description
Tìm sản phẩm hợp tác mở trong vùng người bán đã đăng ký. Các nhóm lọc ngành hàng, hoa hồng, giá và từ khóa kết hợp bằng AND; bỏ hết bộ lọc vẫn giới hạn trong sản phẩm hợp lệ của vùng đó.
- Gọi qua /v1/tiktok/affiliate_seller/202405/open_collaborations/products/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/affiliate_seller/202405/open_collaborations/products/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 |
|---|---|---|---|---|---|
| sort_order | query | string | No | ASC | Thứ tự sắp xếp: ASC tăng dần, DESC giảm dần. Mặc định ASC. |
| sort_field | query | string | No | commission_rate | Trường sắp xếp: commission_rate (mặc định), product_sales_price, commission hoặc units_sold. |
| page_token | query | string | No | Con 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_size | query | int | Yes | 20 | Số kết quả mỗi trang: 1–20. |
| title_keywords | body | []string | No | ["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_range | body | object | No | Giới hạn giá bán trong khoảng amount_ge đến trước amount_lt. | |
| sales_price_range.amount_ge | body | string | No | 10000 | Cận dưới giá sản phẩm; giá trị lớn hơn 0. |
| sales_price_range.amount_lt | body | string | No | 10000 | Cậ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. |
| category | body | object | No | Ngành hàng. | |
| category.id | body | string | No | 100000000000000101 | Mã ngành hàng cấp một; không hỗ trợ cấp sâu hơn. |
| commission_rate_range | body | object | No | Khoảng tỷ lệ hoa hồng. | |
| commission_rate_range.rate_ge | body | int | No | 1000 | Hoa 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_lt | body | int | No | 2000 | Hoa hồng phải nhỏ hơn mức này, đơn vị 0,01%; 3587 là 35,87%. Tối thiểu 100. |
Request examples
curl -s -X POST "https://partner.quantri360.com/v1/tiktok/affiliate_seller/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_seller/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_seller/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_seller/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)
| Name | Type | Sample | Description |
|---|---|---|---|
| code | int | 0 | Mã kết quả; 0 là thành công. |
| message | string | Success | Thông báo kết quả. |
| request_id | string | DEMO_AFFILIATE_REQUEST | Mã truy vết yêu cầu. |
| data | object | Dữ liệu phản hồi. | |
| products | object[] | Danh sách sản phẩm. | |
| shop | object | Gian hàng. | |
| name | string | Chiến dịch minh họa | Tên. |
| id | string | 100000000000000101 | Mã định danh. Giá trị bổ sung: SUCCEEDED, GET. |
| has_inventory | boolean | true | Còn hàng. |
| units_sold | int | 1 | Số lượng đã bán. |
| title | string | Sản phẩm minh họa | Tiêu đề. |
| sale_region | string | Minh họa | Bán vùng. |
| main_image_url | string | https://example.com/minh-hoa | Chính ảnh url. |
| detail_link | string | https://example.com/minh-hoa | Chi tiết liên kết. |
| original_price | object | Giá gốc. | |
| currency | string | VND | Mã tiền tệ. Giá trị bổ sung: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND. |
| minimum_amount | string | 10000 | Số tiền thấp nhất. |
| maximum_amount | string | 10000 | Số tiền cao nhất. |
| category_chains | object[] | Chuỗi ngành hàng từ cha đến con. | |
| id | string | 100000000000000101 | Mã định danh. Giá trị bổ sung: SUCCEEDED, GET. |
| local_name | string | Minh họa | Tên ngành hàng tại thị trường. |
| is_leaf | boolean | true | Là ngành hàng lá. |
| parent_id | string | 100000000000000101 | Mã ngành hàng cha. |
| commission | object | Hoa hồng. | |
| rate | int | 1000 | Tỷ lệ. |
| currency | string | VND | Mã tiền tệ. Giá trị bổ sung: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND. |
| amount | string | 10000 | Số tiền. Giá trị bổ sung: IVA. |
| sales_price | object | Doanh số giá. | |
| currency | string | VND | Mã tiền tệ. Giá trị bổ sung: BRL, EUR, GBP, IDR, JPY, MXN, MYR, PHP, SGD, THB, USD, VND. |
| minimum_amount | string | 10000 | Số tiền thấp nhất. |
| maximum_amount | string | 10000 | Số tiền cao nhất. |
| next_page_token | string | Con trỏ trang kế tiếp; rỗng khi hết dữ liệu. | |
| total_count | int | 1 | Tổ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
- Sign up for Partner
- Enable a data type of the Affiliate group on the platform page
- Create an API key (tick the TikTok Shop channel)
- Call it as in the examples above