Use this API as follows:
- For a
FIXED_PRICE,DIRECT_DISCOUNT, orFLASHSALEactivity with PRODUCT or VARIATION scope, provide a non-emptyproductsarray. For VARIATION scope, add or update SKUs in each product’sskusarray. - For a PRODUCT-scoped
SHIPPING_DISCOUNTorGIFT_WITH_PURCHASEactivity, provide a non-emptyproductsarray. A SHOP-scoped shipping-discount activity is not supported by this operation, and this operation does not document nested-SKU updates for shipping-discount or Gift With Purchase. - For a PRODUCT-scoped
BUY_MORE_SAVE_MOREorBUY_X_GET_Yactivity,productscan be omitted or empty when the request updates only benefit-product relations. - For a SHOP-scoped
BUY_MORE_SAVE_MOREorBUY_X_GET_Yactivity, omitproductsor pass an empty array; usebenefit_product_idsorexclude_product_idsfor the applicable relation update. For an ongoing flash deal, you can add products or SKUs, but you cannot change the price or purchase limits of products or SKUs already in the activity. To remove products or SKUs, use Remove Activity Product.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The unique identifier of the promotion activity.
Query Parameters
Section titled “Query Parameters”Identifies the shop. Obtain it from the Get Authorized Shops API.
Request Bodyrequired
Section titled “Request Bodyrequired”object
The items to add to the list or the existing items in the list of promotion activity to edit. The length must not exceed 300.
object
TikTok Shop product ID
Deal price in the product’s currency. Specify this field when product_level==PRODUCT and activity_type is FIXED_PRICE or FLASHSALE. Do not specify it when activity_type==DIRECT_DISCOUNT or when product_level==VARIATION.
Discount value. If the product is 10% off, the value is 10.
You must specify the value when product_level==PRODUCT and activity_type==DIRECT_DISCOUNT; and you must not specify it when it’s not.
The quantity limit of the products involved in the activity. The range is [1, 99], or you can use -1 for unlimited. If you are updating the value of an existing product, the value cannot be less than the current value.
When product_level==VARIATION, you must specify -1.
Limit of product purchase per buyer. The range is [1, 99], or you can use -1 for unlimited. If you are updating the value of an existing product, the value cannot be less than the current value.
When product_level==VARIATION, you must specify -1.
The SKUs to add to the list or to edit. The number of the SKUs across all products must not exceed 300 in an API call.
For a product-discount or flash-deal activity with product_level==VARIATION, every product must contain at least one SKU. For those activity types with product_level==PRODUCT, specify [].
object
SKU ID
Deal price in the SKU’s currency. Specify this field when product_level==VARIATION and activity_type is FIXED_PRICE or FLASHSALE. Do not specify it when activity_type==DIRECT_DISCOUNT.
Discount value. If the SKU is 10% off, the value is 10.
You must specify this value when product_level==VARIATION and activity_type==DIRECT_DISCOUNT. Do not specify it when activity_type is FIXED_PRICE or FLASHSALE.
The quantity limit of the SKU involved in the activity. The range is [1, 99], or you can use -1 for unlimited. If you are updating the value of an existing SKU, the value cannot be decreased.
Limit of SKU purchase per buyer. The range is [1, 99], or you can use -1 for unlimited. If you are updating the value of an existing SKU, the value cannot be decreased.
A unique ID that identifies activities.
You cannot update the products in DEACTIVATED or EXPIRED activities.
IDs of benefit products to add to or update in a Buy More Save More (BMSM) or Buy X Get Y (BXGY) activity. Omitting this field or passing an empty array leaves the activity’s existing benefit products unchanged; it does not remove them. After the update, the activity can contain at most 100 benefit products.
For a SHOP-level Buy More Save More (BMSM) or Buy X Get Y (BXGY) activity, these are the IDs of products to add to or update in the exclusion list. Omitting this field or passing an empty array leaves existing excluded products unchanged; it does not remove them. Maximum: 100 IDs per request.
Example
{ "products": [ { "id": "7135427619356477189", "activity_price_amount": "4.5", "discount": "10", "quantity_limit": -1, "quantity_per_user": -1, "skus": [ { "id": "7125688837187176194", "activity_price_amount": "6.5", "discount": "10", "quantity_limit": -1, "quantity_per_user": 10 } ] } ], "activity_id": "7136104288010372865", "benefit_product_ids": [ "7135427619356477189", "7135427619356477190" ], "exclude_product_ids": [ "7135427619356477189", "7135427619356477190" ]}Responses
Section titled “Responses”Success
object
Status code; 0 means success.
Success or failure message.
Request log ID.
object
A unique ID that identifies different activities.
Activity name set by the merchant.
The time when the response was generated, as a Unix timestamp in seconds (UTC).
Activity status. Possible values:
- DRAFT: Promotion activities with this status are not available to TikTok users.
- NOT_START: Promotion activities with this status are not available to TikTok users until the set activity start time.
- ONGOING: Promotion activities with this status are available to TikTok users.
- EXPIRED: Promotion activities with this status are not available to TikTok users because it has expired.
- DEACTIVATED: The activity has been deactivated by the seller and is not available to TikTok users.
- NOT_EFFECTIVE: The activity is terminated by the platform and is not available to TikTok users.
The number of items in this request.
When product_level==PRODUCT, this is the number of products. When product_level==VARIATION, this is the total number of SKUs across all products. When product_level==SHOP, this value is 0. IDs in benefit_product_ids and exclude_product_ids are not included.
Example
{ "code": 0, "data": { "activity_id": "7136104329798256386", "title": "DiscountPromotion", "update_time": 1661756811, "status": "DRAFT", "total_count": 1 }, "message": "Success", "request_id": "202203070749000101890810281E8C70B7"}