VI | EN
Message us on Messenger
Developer resources

Edit an image — TikTok Business API

Edit an image · 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.

Edit an image

POST/creative/image/edit/Via 360: POST https://partner.quantri360.com/v1/tiktok_business/creative/image/edit/
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 edit an image. The image editing endpoint can edit an image according to the size you want as well as apply creative trimmings. This endpoint only supports cropping/trimming of an image that has been uploaded to the Asset Library. The edited images will be automatically uploaded to the Asset Library and the new picture ID will be returned.

If you want to upload an image to the Asset Library, use the /file/image/ad/upload/ endpoint.

Request

Endpoint

POST https://partner.quantri360.com/v1/tiktok_business/creative/image/edit/

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
image_idbodystringYesImage ID.
edit_methodbodystringNoEditing method. Supported methods: fix_size, only_gauss_pad, and gauss_padding_reserve_score. Default value: fix_size. See the "Image editing methods" section to learn about the differences between the editing methods.
widthbodynumberYesWidth of edited image.
heightbodynumberYesHeight of edited image.
image_namebodystringNoImage name after editing. If the name is not set, this will be automatically generated.

Request examples

curl -s -X POST "https://partner.quantri360.com/v1/tiktok_business/creative/image/edit/" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"image_id":"","width":0,"height":0}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/tiktok_business/creative/image/edit/",
    params={},
    json={
        "image_id": "",
        "width": 0,
        "height": 0
    },
    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/creative/image/edit/');
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({"image_id":"","width":0,"height":0}),
});
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/creative/image/edit/' . '?' . 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, '{"image_id":"","width":0,"height":0}');
$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
codenumberResponse code. For the complete list of response codes and descriptions, see Appendix - Return Codes.
messagestringResponse message. For details, see Appendix - Return Codes.
dataobjectReturned Data.
image_idstringImage ID that is used to create ads.
material_idstringMaterial ID.
displayablebooleanWhether it can be displayed on the platform.
widthnumberImage width.
formatstringImage format.
image_urlstringImage URL, valid for an hour and needs to be re-acquired after expiration.
heightnumberImage height.
signaturestringMD5 of Picture.
sizenumberImage size, in Bytes.
file_namestringImage name.
create_timestringCreation time. UTC time, format: 2020-06-10T07:39:14Z
modify_timestringModification time. UTC time, format: 2020-06-10T07:39:14Z
request_idstringThe log id of a request, which uniquely identifies the request.

Response sample

HTTPS/1.1 200 OK
{
  "message": "OK",
  "code": 0,
  "data": {
    "format": "jpeg",
    "image_url": "http://p1.ipstatp.com/large/ad-site-i18n/202006215d0de2e725f892ed4e31beb4",
    "file_name": "file_name_test2",
    "height": 394,
    "width": 394,
    "create_time": "2020-06-21T08:30:54Z",
    "modify_time": "2020-06-30T11:50:15Z",
    "signature": "d96d4e822020e862ed43e1d0bd104fda",
    "image_id": "ad-site-i18n/202006215d0de2e725f892ed4e31beb4",
    "size": 22305
  },
  "request_id": "2020063011501401023125104013052"
}
(/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