VI | EN
Message us on Messenger
Developer resources

Upload a playable asset — TikTok Business API

Upload a playable asset · 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.

Upload a playable asset

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

Use this endpoint to upload a playable asset.

Request

Endpoint

POST https://partner.quantri360.com/v1/tiktok_business/playable/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_idquerystring7000000000000000001Tài sản TikTok Business đã kết nối — "Mã tài sản" ở trang Nền tảng hoặc GET /v1/platforms (tài khoản quảng cáo cho Marketing API, tài khoản TikTok cho Organic / Messaging). Có thể bỏ khi chỉ kết nối một tài sản.

Request parameters

NameInTypeRequiredSampleDescription
upload_typebodystringNoThe way you upload your playable assets. Enum values: UPLOAD_BY_FILE, UPLOAD_BY_FILE_ID. Default value: UPLOAD_BY_FILE.
playable_packagebodyfileNoRequired when upload_type is UPLOAD_BY_FILE. The playable asset file. Specification requirements: 1. The format is ZIP, and the size is no more than 5 MB. 2. Playable JS-SDK has been accessed, and the calling method is window.openAppStore(); 3. The main HTML file needs to be named index.html and located in the primary directory. 4. The playable_orientation field should be stored in the config.json file and located in the first directory, with a value of 0 (BOTH), 1 (PORTRAIT), or 2 (LANDSCAPE). Example: { "playable_orientation": 0, }. 5. File names only support uppercase and lowercase letters, numbers, minus signs and underscores. 6. The mraid.js format is not allowed in the file. 7. The file is not allowed to load dynamic material over an external network. 8. JS redirection is not allowed in the file. 9. The file does not allow an HTTP request. 10. A file with empty content is not allowed.
file_idbodystringNoRequired when upload_type is UPLOAD_BY_FILE_ID. The file_id of the file that you want to upload. This field is for files that are uploaded to the file repository. You can get file_id via the Files endpoints.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/tiktok_business/playable/upload/" \
  -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_business/playable/upload/",
    params={},
    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_business/playable/upload/');
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({}),
});
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_business/playable/upload/' . '?' . 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, '{}');
$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 Business)

NameTypeSampleDescription
codenumberReturn code. For the complete list of response codes and descriptions, see Appendix-Return code.
messagestringReturn message. For details, see Appendix-Return information.
request_idstringThe log id of a request, which uniquely identifies the request.
dataobjectReturned data
playable_idstringPlayable asset ID.

Response sample

HTTPS / 1.1 200 OK
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "playable_id": "{{playable_id}}"
    }
}
(/code);

Get started

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