Skip to content

Publish Global Product

POST
/product/202309/global_products/{global_product_id}/publish

Publish and convert a global product to local products in one or multiple shops in supported markets. After publishing, the product is sent for review by TikTok Shop in the respective markets. For sellers in the EU market, the provided information will also be automatically translated into all EU languages supported by TikTok Shop. Note:

  • You can only publish in each market once. To change product information, edit the global product by using the Edit Global Product API. The changes will be automatically synchronized to all markets where the product is published
  • Use the Get Product API to obtain the converted local product information in the target market’s language.
  • Use the Edit Product API or Partial Edit Product API to edit the local product information, if necessary.
global_product_id
required
string

The global product id.

Media typeapplication/json
object
publish_target
required

Target markets for publishing global products.

Array<object>
object
region
required

The new market where you want to publish the global product. Possible values:

  • AT: Austria
  • BE:Belgium
  • CZ:Czech Republic
  • DE: Germany
  • ES: Spain
  • FR: France
  • GB: United Kingdom
  • GR: Greece
  • HU:Hungary
  • ID: Indonesia
  • IE: Ireland
  • IT: Italy
  • JP: Japan
  • MY: Malaysia
  • NL: Netherlands(NL)
  • PH: Philippines
  • PO: Poland
  • PT:Portugal
  • SG: Singapore
  • TH: Thailand
  • US: United States
  • VN: Vietnam
  • MX: Mexico
string
Allowed values: AT BE CZ DE ES FR GB GR HU ID IE IT JP MY NL PH PO PT SG TH US VN MX
responsible_person_ids

A list of responsible person IDs. Retrieve the IDs from the Search Responsible Persons API. Default: The IDs provided when the global product was created. Note: Applicable only for the EU market in certain categories. Use the Get Global Category Rules API to check the requirements.

Array<string>
manufacturer_ids

A list of manufacturer IDs. Retrieve the IDs from the Search Manufacturers API. Default: The IDs provided when the global product was created. Note: Applicable only for the EU market in certain categories. Use the Get Global Category Rules API to check the requirements.

Array<string>
skus
required

The SKUs to be published in the specified market.

  • Max SKUs for EU, JP, UK, US: 300
  • Max SKUs for other regions: 100
Array<object>
object
related_global_sku_id
required

The global SKU ID to be published. After publishing, a corresponding local product SKU will be created and linked to the global SKU.

string
price

The SKU’s local pricing information in the specified market.

Note:

  • Provide this only if you want to manually override the default local prices, which are automatically calculated from the global uniform price.
  • Specify either amount or sale_price, the other will be auto-filled. If both are provided, sale_price takes precedence.
  • JP and US shops using China warehouses must provide price.sale_price.
object
amount

Local sellers/Intra-EU sellers The SKU’s local display price shown on the product page before any discounts. Refer to Product Pricing for the allowed price ranges in each market.

string
currency
required

The currency. Possible values based on the region:

  • BRL: Brazil
  • CZK: Czech Republic
  • EUR: France, Germany, Ireland, Italy, Spain, Netherlands, Belgium, Austria, Greece, Portugal
  • GBP: United Kingdom
  • HUF: Hungary
  • IDR: Indonesia
  • JPY: Japan
  • MXN: Mexico
  • MYR: Malaysia
  • PHP: Philippines
  • PLN: Poland
  • SGD: Singapore
  • THB: Thailand
  • USD: United States
  • VND: Vietnam
string
Allowed values: BRL CZK EUR GBP HUF IDR JPY MXN MYR PHP PLN SGD THB USD VND
sale_price

Global sellers The SKU’s local display price shown on the product page before any discounts. Refer to Product Pricing for the allowed price ranges in each market.

Note:

  • Applicable for all global sellers.
  • Required for JP and US shops using China warehouses. Optional for others.
  • This is the definitive final price shown on the product page, all other prices will be ignored.
string
inventory

SKU inventory information per warehouse. Required for sellers without multiple warehouses, optional for others.

Note: If inventory details are not provided, the global SKU quantity will be evenly split among all markets, and any surplus will be added to the last published product SKU.

object
warehouse_id

The warehouse ID. Retrieve this value from the Get Warehouse List API.

Default:

  • Sellers without multiple warehouses: The available warehouses will be used, prioritizing local warehouses in the specified market over warehouses in the seller’s base country.
  • Sellers with multiple warehouses: The global warehouse ID
string
quantity

The SKU quantity available in the warehouse. Valid range: [1, 99,999]

Note: If the local SKU inventory quantity exceeds the global SKU quantity, the global SKU quantity will be updated to be the sum of all local inventories.

integer format: int64
>= 1 <= 99999
fees

The fees required for this product based on TikTok Shop policies. Fees are required only for certain product categories, retrieve the requirements from the Get Category Rules API.

Array<object>
object
type

The type of fee. Possible values: PFAND

string
Allowed values: PFAND
amount

The fee amount. Valid range:

  • PFAND: [0.00 - 6300.00]
string
additional_attribute

An optional attribute that provides additional context for the fee. The accepted values may vary by fee type and market.

Possible values for Pfand:

  • SINGLE_USE
  • REUSABLE
  • NOT_APPLICABLE
string
Allowed values: SINGLE_USE REUSABLE NOT_APPLICABLE
Example
{
"publish_target": [
{
"region": "MY",
"responsible_person_ids": [
"67726293bf1eb1e92401a"
],
"manufacturer_ids": [
"67726293bf1eb1e92401a"
],
"skus": [
{
"related_global_sku_id": "1729592969712207400",
"price": {
"amount": "10.01",
"currency": "MYR",
"sale_price": "100.00"
},
"inventory": {
"warehouse_id": "7068517275539719942",
"quantity": 999
},
"fees": [
{
"type": "PFAND",
"amount": "1.01",
"additional_attribute": "SINGLE_USE"
}
]
}
]
}
]
}

Success

Media typeapplication/json
object
code

Status code; 0 means success.

integer format: int64
message

Success or failure message.

string
request_id

Request log ID.

string
data
object
products

The local products converted from the global product. Match each item to its publication result in publish_result by region. A region can have a publish_result item without a corresponding local product when its status is FAILED.

Array<object>
object
region

The market of this local product. Possible values:

  • AT: Austria
  • BE:Belgium
  • CZ:Czech Republic
  • DE: Germany
  • ES: Spain
  • FR: France
  • GB: United Kingdom
  • GR: Greece
  • HU:Hungary
  • ID: Indonesia
  • IE: Ireland
  • IT: Italy
  • JP: Japan
  • MY: Malaysia
  • NL: Netherlands(NL)
  • PH: Philippines
  • PO: Poland
  • PT:Portugal
  • SG: Singapore
  • TH: Thailand
  • US: United States
  • VN: Vietnam
  • MX: Mexico
string
Allowed values: AT BE CZ DE ES FR GB GR HU ID IE IT JP MY NL PH PO PT SG TH US VN MX
shop_id

The ID of the local shop in the specified market. One market can only have one local shop.

string
skus

The newly created local SKUs in the specified market.

Array<object>
object
related_global_sku_id

The associated global SKU ID.

string
id

The newly generated local SKU ID.

string
seller_sku

An internal code/name for managing SKUs, not visible to buyers.

string
sale_attributes

A list of attributes (e.g. size, color, length) that define each variant of a product.

Array<object>
object
id

The newly generated local sales attribute ID.

string
value_id

The newly generated local sales attribute value ID.

string
id

The newly generated local product ID.

string
publish_result

Results of publishing the global product.

Array<object>
object
region

The market associated with this synchronization result. Possible values:

  • AT: Austria
  • BE: Belgium
  • CZ: Czech Republic
  • DE: Germany
  • ES: Spain
  • FR: France
  • GB: United Kingdom
  • GR: Greece
  • HU: Hungary
  • ID: Indonesia
  • IE: Ireland
  • IT: Italy
  • JP: Japan
  • MY: Malaysia
  • NL: Netherlands (NL)
  • PH: Philippines
  • PO: Poland
  • PT: Portugal
  • SG: Singapore
  • TH: Thailand
  • US: United States
  • VN: Vietnam
  • MX: Mexico
string
Allowed values: AT BE CZ DE ES FR GB GR HU ID IE IT JP MY NL PH PO PT SG TH US VN MX
status

The status of syncing the product to the market. Possible values:

  • SUCCESS: The global product was successfully synchronized to the local shop, submitted for listing, and is now under review. Use the Product Status Change webhook to track the final audit status.
  • DRAFT: Synchronization did not complete, and the local product remains in draft.
  • FAILED: Synchronization of the global product to the local shop was unsuccessful.
string
Allowed values: SUCCESS DRAFT FAILED
fail_reasons

The list of errors that occurred.

Array<object>
object
message

The error message.

string
Example
{
"code": 0,
"data": {
"products": [
{
"region": "MY",
"shop_id": "7494083603082020484",
"skus": [
{
"related_global_sku_id": "1729696746528737924",
"id": "1729592969712207400",
"seller_sku": "XL-COLOR-001",
"sale_attributes": [
{
"id": "100001",
"value_id": "7272008676829824800"
}
]
}
],
"id": "1929592969712207410"
}
],
"publish_result": [
{
"region": "MY",
"status": "SUCCESS",
"fail_reasons": [
{
"message": "The publish region is inactive."
}
]
}
]
},
"message": "Success",
"request_id": "202203070749000101890810281E8C70B7"
}