VI | EN
Message us on Messenger
Developer resources

Upload Product File — TikTok Shop API

tiktok.product.202309.files.upload · 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.product.202309.files.upload

POST/product/202309/files/uploadVia 360: POST https://partner.quantri360.com/v1/tiktok/product/202309/files/upload
Write endpoint — changes data on TikTok Shop. The key must be created with "Allow write API calls" ticked, otherwise you get 403 write_not_allowed. Every call is logged.
Description

Tải tệp PDF hoặc video để gắn vào sản phẩm hay chứng nhận. Giữ mã tệp trả về để dùng khi tạo hoặc sửa sản phẩm.

  • Gọi qua /v1/tiktok/product/202309/files/upload 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 GHI: thay đổi dữ liệu thật trên TikTok Shop; cần key có quyền ghi (can_write) và gói mở module products. Tải và lưu tệp sản phẩm.
  • HTTP 200 vẫn có thể có lỗi nghiệp vụ; kiểm code trước khi dùng kết quả.
  • Nhận multipart/form-data với data và name. Hỗ trợ PDF, MP4, MOV, MKV, WMV, WEBM, AVI, 3GP, FLV, MPEG; không nhận tệp rỗng. PDF tối đa 20 MB, video tối đa 100 MB, tỷ lệ 9:16–16:9; khuyến nghị video 1:1, từ HD 720p, dài 20–60 giây. Tên tệp không có dấu cách, không bắt đầu bằng ký hiệu, chỉ có dấu chấm trước phần mở rộng.

Request

Endpoint

POST https://partner.quantri360.com/v1/tiktok/product/202309/files/upload

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
databodyfileYes(tệp minh họa)Dữ liệu.
namebodystringYesMinh họaTên.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/tiktok/product/202309/files/upload" \
  -H "Authorization: Bearer $KEY" \
  -F "name=chungnhan.pdf" \
  -F "0=@[object Object]"
Python
import requests
from contextlib import ExitStack

KEY = "q360_live_..."
with ExitStack() as stack:
    files = [("0", stack.enter_context(open({
        "name": "data",
        "path": "./chungnhan.pdf"
    }, "rb")))]
    r = requests.post("https://partner.quantri360.com/v1/tiktok/product/202309/files/upload", params={}, data={
        "name": "chungnhan.pdf"
    }, files=files, headers={"Authorization": f"Bearer {KEY}"}, timeout=60)
    print(r.status_code, r.json())
Node.js
import { readFile } from 'node:fs/promises';
const KEY = 'q360_live_...';
const url = new URL('https://partner.quantri360.com/v1/tiktok/product/202309/files/upload');
const form = new FormData();
form.append("name", "chungnhan.pdf");
form.append("0", new Blob([await readFile({"name":"data","path":"./chungnhan.pdf"})]), {"name":"data","path":"./chungnhan.pdf"});
const r = await fetch(url, { method: 'POST', headers: { Authorization: `Bearer ${KEY}` }, body: form });
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...';
$ch = curl_init('https://partner.quantri360.com/v1/tiktok/product/202309/files/upload');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['name' => 'chungnhan.pdf', '0' => new CURLFile('[object Object]')]);
echo curl_exec($ch);
curl_close($ch);

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_idstringYEU_CAU_MINH_HOAMã yêu cầu để tra cứu lỗi.
dataobjectDữ liệu.
idstring900000000000000001Mã định danh.
urlstringĐịa chỉ hiển thị.
namestringMinh họaTên.
formatstringPDFĐịnh dạng tệp; giá trị liên quan: PDF, MP4, MOV, MKV, WMV, WEBM, AVI, FLV, MPEG.

Response sample

{
  "code": 0,
  "message": "Success",
  "request_id": "YEU_CAU_MINH_HOA",
  "data": {
    "id": "900000000000000001",
    "url": "",
    "name": "Minh họa",
    "format": "PDF"
  }
}

Get started

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