Edit some properties (e.g. description, images, attributes) of a product that is not in the FREEZE or DELETED state.
After editing the product, the latest product content (referred to as v2) will be resent for audit review. If the audit passes, v2 is published to the shop, otherwise, the existing product stays live and remains unchanged (keeping v1). However, edits to the price or inventory fields do not require a reaudit and will be immediately published on the platform. Use the Product status change webhook to keep track of the review status.
Note:
- This API is applicable for all sellers.
- There may be a limit to the number of products you can relist per day. We recommend prioritizing key products first to ensure they get published. You can find your listing limit on the Seller Center homepage.
- If a draft or audit-review version exists, unedited fields will retain their values over those of the base (live) version.
- Updates are handled per top-level property, so all non-empty fields within an updated object must be supplied to prevent overwriting with blanks. For top-level properties (e.g.
description,brand_id) that are not nested in an object, you can update them individually. Omitting these properties in the request will leave them unchanged. If you need to edit any nested property within an object, you must provide values for all nested properties of that object. Any omitted nested properties will be overwritten with blanks. - If new mandatory product attributes were added by TikTok Shop after the creation of your product, ensure that you provide these attributes too.
For global sellers:
If you’re using the local replication listing method, note the following sync rules:
Sales attribute changes (in sales attribute id/name) must be synced to other markets. Therefore, you must provide the
seller_skuand completereplicated_productsdata. The API call will fail if you don’t provide these details. *New SKUs (new sales attribute value id/name) are optional to sync to other markets. To sync, please provide theseller_skuand completereplicated_productsdata. General changes are optional to sync to other markets. To sync, you only need to providereplicated_products.region. For Tokopedia sellers: Note that a product can have only one active version across all platforms at any time. If a product is live on both platforms, audit results for the latest version are handled as follows: - Mixed audit results: If the product passes audit on one platform but fails on another, on the successful platform, the product will stay live and be updated with content from the latest version (v2), while on the failed platform, the product will be deactivated and hidden entirely.
- Audit failure on all platforms: If the product fails audit on all platforms, the existing product stays live and remains unchanged (keeping v1).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The product ID in TikTok Shop.
Query Parameters
Section titled “Query Parameters”Identifies the shop. Obtain it from the Get Authorized Shops API.
Request Body
Section titled “Request Body”object
Whether to automatically translate the product content when listing the product in a market where multiple languages are needed. Omit this field when automatic translation is not needed.
The ID of the brand of this product. Use the Get Brands API to get the list of available brands for a shop.
Note: Unauthorized brands won’t be displayed on TikTok Shop.
Filter categories by the category tree version.Possible values based on region:
- US, EU and SEA: v2, represents the 7-level category tree. Important: For US, EU and SEA shops, you must pass v2 when using this API.
- Other regions: v1, represents the 3-level category tree.Default: v1
The list of certifications for your product. Max count: 10
As per TikTok Shop guidelines, certifications are required for certain restricted product categories. Retrieve the certification requirements for your product from the Get Category Rules API. Refer to TikTok Shop Restricted Products Policy for information on product category restrictions.
object
The expiration date of this certification expressed in unix timestamp (seconds) UTC+0. This field may be required for certain certifications. Use the Get Category Rules API to find out the requirements.
A list of certification related files.
object
The format of the certification file. Only PDF is supported.
The ID of the certification file. Use the Upload Product File API to upload the files first and obtain the corresponding file ID.
The name of the certification file, including the file extension.
The ID to identify the type of certification required for the product category. Retrieve this value from the Get Category Rules API.
A list of certification related images.
object
The URI of the image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=CERTIFICATION_IMAGE.
The product description in HTML format.
Note:
- The content must conform to the HTML syntax. All HTML tags are accepted but to optimize display on the TikTok Shop product detail page, the system will automatically convert certain tags into alternative formats, such as rendering
<table>tags as images. - Max length: 10,000 characters.
- Image guidelines: You must use TikTok Shop image URLs. Max 30
<img>tags, each under 4000px withsrc,width, andheightattributes.
Recommendations:
- If you are syncing a pre-existing description from another platform, include the full HTML source description here.
- Provide a detailed description, ideally over 300 characters.
- Include 3-5 key selling points, each under 250 characters, with supporting images.
- Use 1600x1600 px for the image dimensions.
An external identifier used in an external ecommerce platform. This is used to associate the product between TikTok Shop and the external ecommerce platform. Max length: 999 characters
Defines the inventory mode for the duplicated source product. This parameter supports two modes: SHARED and EXCLUSIVE.
- SHARED: In this mode, the inventory of all interconnected (shared) products must be strictly consistent; otherwise, an error will be returned.
- EXCLUSIVE: In this mode, the inventory for each product can be set independently without affecting others.
Applicability: This feature is applicable ONLY for the EU market.
Default Value: If left empty, the system defaults to the EXCLUSIVE mode.
A flag indicating whether to show the Cash On Delivery (COD) payment option during checkout. Use the Get Category Rules API to check if COD is supported for your product category.
Applicable only for the following markets:
- Global sellers: MY, PH, SA, TH, VN
- Local sellers: ID, MY, PH, SA, TH, VN
Note: If COD is not supported, the listing will fail if you set this to true.
Key Product Features. They will be displayed in the Product highlight module on the product detail page and will be used by search engines to increase your search weight for more traffic. The total number of items should not exceed 5, and the total character count should not exceed 1500.
The platforms for listing the product. Possible values:
- TOKOPEDIA
- TIKTOK_SHOP Applicable only for sellers that migrated from Tokopedia.
IMPORTANT: This field controls the product’s visibility on the listing platforms.
- If the product is live on both platforms but the request contains only 1 platform, the product will be deactivated and hidden from the omitted platform.
- If the product is live on 1 platform but the request contains a different platform, the product will be deactivated and hidden from the omitted platform.
- If you want to deactivate the product on both platforms, use the Deactivate Product API.
The BCP-47 locale code used when retrieving the existing product information for this edit. Default: The default locale of your shop. Possible values:
- cs-CZ
- de-AT
- de-BE
- de-DE
- el-GR
- en-GB
- en-IE
- en-US
- es-ES
- es-MX
- fr-FR
- fr-BE
- hu-HU
- id-ID
- it-IT
- ja-JP
- ms-MY
- nl-NL
- nl-BE
- pl-PL
- pt-BR
- pt-PT
- th-TH
- vi-VN
- zh-CN
A list of images to display in the product image gallery.
- Max count: 9
- Arrange your image URIs in the sequence that they should appear on TikTok Shop.
- Image dimensions: [300x300 px, 4000x4000 px]
Recommendations:
- Use a minimum of 5 images.
- The first image should have a white background. Use the Optimize Images API to change the background to white.
object
The URI of the image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=MAIN_IMAGE. You can use the returned URI directly, or process it through the Optimize Images API first and use the resulting URI.
A list of manufacturer IDs. Retrieve the IDs from the Search Manufacturers API.
Note: Applicable only for the EU market in certain categories. Use the Get Category Rules API to check the requirements.
The dimensions of the product package.
Note:
- Provide the dimensions measured after packing the product.
- These values impact the shipping cost, so it is important to ensure that dimensions are accurate. Any discrepancies in measurements may lead to additional shipping fees.
- Optional for ID, TH, VN regions.
object
The package height. A positive whole number.
Note: For the BR market, decimal values using . or , as separators are also accepted but will be rounded to the nearest whole number.
The package length. A positive whole number.
Note: For the BR market, decimal values using . or , as separators are also accepted but will be rounded to the nearest whole number.
The unit for the package dimensions. Possible values based on region:
- US: CENTIMETER, INCH
- Other regions: CENTIMETER
Note: You must use the same system of measurement (metric system or imperial system) for package_weight and package_dimensions. In other words, if you are using KILOGRAM for the weight, you must use CENTIMETER for the dimensions.
The package width. A positive whole number.
Note: For the BR market, decimal values using . or , as separators are also accepted but will be rounded to the nearest whole number.
The weight of the product package.
Note:
- Provide the weight measured after packing the product.
- This value impacts the shipping cost, so it is important to ensure that the weight is accurate. Any discrepancies in measurements may lead to additional shipping fees.
- The package weight will take precedence over package dimensions in fee calculation if the fee based on weight is higher.
object
The unit for the package weight. Possible values based on region:
- US:
KILOGRAM,POUND - BR, JP, MX:
KILOGRAM,GRAM - Other countries:
KILOGRAM
Note: You must use the same system of measurement (metric system or imperial system) for package_weight and package_dimensions. In other words, if you are using KILOGRAM for the weight, you must use CENTIMETER for the dimensions.
The package weight, which must be a positive number.
The number format varies based on the unit:
GRAM: integerKILOGRAM: up to 3 decimal placesPOUND: up to 2 decimal places
POD customization configuration for an MTO product. Use this object to configure consumer-customizable templates, surfaces, and customization areas for Print-On-Demand products.
object
A list of POD customization templates. Each template represents one customization plan and can be associated with one or more SKUs.
object
The unique identifier of the POD customization template. This field is generated by the system and is not required when creating a new template.
Optional notes or instructions for this customization template. These notes may be used to remind consumers about customization requirements on the customization page.
A list of product SKU IDs associated with this customization template. The same SKU cannot be associated with more than one template.
A list of customizable product surfaces under this template, such as the front side, back side, collar, or sleeve. A template can contain up to 10 surfaces.
object
The background image of the customizable surface. It is usually the base product image on which customization areas are configured.
object
The URI of the background image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=CUSTOMIZATION_IMAGE.
A list of customizable areas on this surface. The order of the elements represents the layer order to be used when rendering the final customization preview. A surface can contain up to 10 customization areas.
object
The name of the customizable area.
The position, size, and rotation information of the customizable area on the surface.
object
The height of the customizable area. Supports two decimal places.
The rotation angle of the customizable area, in degrees. Supports two decimal places.
The width of the customizable area. Supports two decimal places.
The X-coordinate of the customizable area’s starting point on the surface. Supports two decimal places.
The Y-coordinate of the customizable area’s starting point on the surface. Supports two decimal places.
The type of the customizable area. Enum values: TEXT, IMAGE.
The seller-defined external identifier of the customizable area, used for mapping with the seller’s own system.
Configuration for an image-type customization area. This field should be provided when area_type is IMAGE.
object
Optional default image displayed in this area. If the consumer does not upload a custom image, the default image may be used.
object
The URI of the default image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=CUSTOMIZATION_IMAGE.
The minimum required height, in pixels, for an image uploaded by the consumer.
The minimum required width, in pixels, for an image uploaded by the consumer.
Specifies whether the consumer must provide customization content for this area. If set to false, the default content or base product version may be used.
Configuration for a text-type customization area. This field should be provided when area_type is TEXT.
object
The text alignment type. Enum values: LEFT, CENTER, RIGHT.
A list of text colors available for consumers to choose from, using hexadecimal color values such as #FFFFFF.
Optional default text displayed in this area. If the consumer does not customize this area, the default text may be used.
A list of font keys available for consumers to choose from, based on the platform-supported font library.
The maximum number of characters allowed for consumer text input.
The seller-defined external identifier of the customizable surface, used for mapping with the seller’s own system.
An optional mask image placed above the customization areas to support irregular or cut-out effects.
object
The URI of the mask image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=CUSTOMIZATION_IMAGE.
The name of the customizable surface, for example, Front Side or Back Side.
The name of the customization template, used by the seller for internal management.
A list of general attributes (e.g. manufacturer, country of origin, materials used) that describe the product as a whole, regardless of variant.
Important: The attributes available for use are determined by the system based on the product’s assigned category, with some being mandatory. You must provide the product attributes marked as is_required in the response of the Get Attributes API to avoid listing failure.
object
The ID of the product attribute, retrieved from the Get Attributes API.
A list of selectable values for the product attribute.
Note: Provide either a built-in ID or a custom name; if both are provided, the ID takes priority.
object
The ID of a built-in product attribute value, retrieved from the Get Attributes API.
A self-defined custom product attribute value if the built-in values do not satisfy your needs. The system will auto-generate an ID after listing.
Note:
- No duplicates allowed under the same attribute.
- Max length: 2000 characters
Defines the measurement template information used to describe the measurement standards and metric values configured for the product.
object
The unique ID of the measurement template. Use this ID to identify which measurement standard template applies to the product.
The list of metric value entries under the measurement template. Each object represents the value submitted by the seller for a specific metric in the template.
object
The unique ID of a metric item within the measurement template. This ID identifies which metric the submitted value belongs to.
The seller-provided value for the specified metric item in the measurement template.
Metric value module unit id.
The list of local market replicas to which updates should be synced. As this is a partial edit endpoint, only updated fields will be synced. Compulsory sync
- Sales attribute changes (in sales attribute id/name) must be synced to other markets. Therefore, you must provide the
seller_skuabove and complete the details in this object. The API call will fail if you don’t provide these details. Optional sync - New SKUs (new sales attribute value id/name) are optional to sync to other markets. To sync, please provide the
seller_skuabove and complete the details in this object. - General changes are optional to sync to other markets. To sync, you only need to provide
replicated_products.region.
object
Defines the inventory mode for the duplicated target product. This parameter supports two modes: SHARED and EXCLUSIVE.
- SHARED: In this mode, the inventory of all interconnected (shared) products must be strictly consistent; otherwise, an error will be returned.
- EXCLUSIVE: In this mode, the inventory for each product can be set independently without affecting others.
Applicability: This feature is applicable ONLY for the EU market.
Default Value: If left empty, the system defaults to the EXCLUSIVE mode.
The local market replica region to which this product’s updates should be synchronized. 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
The SKUs to be synced to the specified market. Specify this only if you are adding SKUs or changing the sales attribute id/name. Note:
- You must pass in all existing SKUs. Any existing SKU IDs not listed here will result in the deletion of those SKUs. For example, if this product contains 5 SKUs and you only provide 2 SKU IDs, the remaining 3 will be deleted.
- To create new SKUs, leave the SKU ID blank and provide the seller_sku.
object
An external identifier used in an external ecommerce platform. This is used to associate the SKU between TikTok Shop and the external ecommerce platform. Max length: 999 characters
The SKU ID generated by TikTok Shop. Provide this for existing SKUs
SKU inventory information per warehouse. This field is mandatory for other regions. But when syncing products from the US to MX, the MX product inventory field is optional.
object
The SKU quantity available in the warehouse. Valid range: [1, 999,999]. This field is mandatory for other regions. But when syncing products from the US to MX, the MX product inventory field is optional.
The warehouse ID. Retrieve this value from the Get Warehouse List API or Get Inventory Rules API. This field is mandatory for other regions. But when syncing products from the US to MX, the MX product inventory field is optional.
The SKU’s local display price shown on the product page before any discounts
object
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
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.
An internal code/name for managing SKUs, not visible to buyers.
Valid length:
- DE, ES, FR, IT, PL, NL, BE, CZ, AT, GR, PT, HU: 6-50 characters
- Other regions: 1-50 characters Format:
- DE, ES, FR, IT, PL, NL, BE, CZ, AT, GR, PT, HU: Use alphabets, numbers, hyphens (-), or underscores (_) only
- Other regions: Text without spaces
A list of responsible person IDs. Retrieve the IDs from the Search Responsible Persons API.
Note: Applicable only for the EU market in certain categories. Use the Get Category Rules API to check the requirements.
Indicates how the product should be saved. Possible values:
- AS_DRAFT: Save the product as a draft for future editing.
- LISTING: Submit the edits for listing. Changes that require review are published after approval; changes to the
priceorinventoryfields are published immediately. Default: LISTING
Note:
- Saving as draft is not supported when the product status is
DELETED, or when the product isPENDINGorFREEZEon any listing platform. - When saving a post-live draft with
save_mode=AS_DRAFT, SKUinventoryfields are not supported and will not be saved.
Scheduled listing configuration for the product, including whether scheduled listing is enabled and the scheduled listing time.
object
Whether scheduled listing is enabled for this product. If true, schedule_sale_time must be provided.
Scheduled listing time, expressed as a Unix timestamp in milliseconds; must be later than the current time and within 90 days, and is required when is_enabled_scheduled_sale is true.
Search terms (ST words). ST words will not be displayed to consumers; they are only used in search engines to increase your search weight and gain more traffic. Please ensure that ST words are consistent with the product description, with a maximum of 15 terms and a total of no more than 250 characters.
The measurement details of the product to help buyers find the right size.
Note:
- For certain product categories, size charts may be required or not supported. Use the Get Category Rules API to check the requirements.
- If size charts are not supported, even if you provide a size chart here, the size chart will not be saved.
- Provide either a TikTok Shop size chart template ID or a size chart image; if both are provided, the ID takes priority.
object
An image of the size chart.
Recommendations:
- Resolution: Minimum 1024px on the shorter side
- Content: Include key measurement dimensions (e.g., bust, waist, hips, inseam), the more the better.
- Format: Use a table with distinct columns and row.
- Use only one table per product and image.
- Display each dimension in a separate row.
- Display units in column headers.
object
The URI of the image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=CERTIFICATION_IMAGE.
A TikTok Shop size chart template generated by the size chart tool in Seller Center > Manage Products > Bulk action > Batch manage size charts.
object
The size chart template ID.
A list of Stock Keeping Units (SKUs) used to identify distinct variants of the product.
Note:
- Max SKUs for BR, EU, JP, MX, UK, US: 300
- Max SKUs for other regions: 100
Recommendations: Place the most important variant at the beginning of the array.
object
The SKU list price (e.g. MSRP, RRP) or original price information on external ecommerce platforms. Applicable only for selected sellers in the US market.
Note: This value may appear as the strikethrough price on the product page. However, whether the strikethrough price is shown and the amount shown are subject to the audit team’s review and decision based on various pricing information.
object
The price amount. Valid range: [0.01, 7600]
The currency. Possible values: USD
The external ecommerce platform from which the price is sourced. Possible values:
- SHOPIFY_COMPARE_AT_PRICE: The compare_at_price in Shopify.
An external identifier used in an external ecommerce platform. This is used to associate the SKU between TikTok Shop and the external ecommerce platform. Max length: 999 characters
A list of URLs for third-party product listing pages where consumers can place orders. Add this property if you have products listed on third-party sites other than TikTok Shop and would like to map them. Max string length: 500
If the SKU belongs to a virtual bundle (containing multiple individual SKUs), you can add up to 10 additional identifier codes here for the SKUs included in the bundle.
Format:
GTIN: 14 digits
EAN: 8, 13, or 14 digits
UPC: 12 digits
ISBN: 13 digits, or 9 digits ending in capital X
Note:
- Applicable only for the EU market.
- The identifier code must be unique for each SKU, with no repetition allowed.
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.
object
Possible values for Pfand:
- SINGLE_USE
- REUSABLE
- NOT_APPLICABLE
The fee amount. Valid range:
- PFAND: [0.00 - 6300.00]
The type of fee. Possible values: PFAND
The SKU ID generated by TikTok Shop. One product can contain multiple SKU IDs.
Note:
- To edit an existing SKU, include its SKU ID.
- Any existing SKU IDs not listed here will result in the deletion of those SKUs. For example, if this product contains 5 SKUs and you only provide 2 SKU IDs, the remaining 3 will be deleted.
- To create new SKUs, leave the SKU ID blank and complete the other fields.
A regulated identifier code assigned to a product based on international standardized regulations (e.g. GTIN) to ensure the product is universally identifiable across various platforms and systems.
Note: Editable only if the product is in DRAFT state. Otherwise, changes are not allowed.
object
The identifier code.
Format:
- GTIN: 14 digits
- EAN: 8, 13, or 14 digits
- UPC: 12 digits
- ISBN: 13 digits, or 9 digits ending in capital
X - JAN: 8 or 13 digits Note: The identifier code must be unique for each SKU, with no repetition allowed.
The type of identifier code. Possible values:
- GTIN
- EAN
- UPC
- ISBN
- JAN
SKU inventory information.
Note: If you are saving a post-live draft with save_mode=AS_DRAFT, this field is not supported and will not be saved. When using Get Product to retrieve the draft, the values will reflect those in the base version.
object
The backorder_quantity is automatically converted to quantity once in-stock inventory is sold out. Its fulfillment follows the specified handling_time.
Note:
- For non-virtual products, provide
backorder_quantityandhandling_timetogether. - Made-to-order (MTO), pre-order, and custom products cannot be backordered and therefore cannot use
backorder_quantity.
The estimated number of working days needed for a backorder to be shipped. For non-virtual products, provide handling_time and backorder_quantity together. Different warehouses for the same SKU cannot use different handling_time values.
The total SKU quantity available in the warehouse. Valid range: [1, 99,999]
Note: This quantity specifically refers to the in-stock inventory that can be shipped immediately.
The ID of the warehouse where the SKU is stored. Retrieve the list of warehouses available for your shop from the Get Warehouse List API.
The SKU’s list price information. This is equivalent to the manufacturer’s suggested retail price (MSRP), or the recommended retail price (RRP). Applicable only for the US market.
Note: This value may appear as the strikethrough price on the product page. However, whether the strikethrough price is shown and the amount shown are subject to the audit team’s review and decision based on various pricing information.
object
The price amount. Valid range: [0.01, 7600]
Note: The value must be equal to or greater than skus.price.amount. Otherwise, it will be discarded.
The currency. Possible values: USD
SKU presale information, used to tag a product as a presale product based on its presale type.
Applicable only if allowed_special_product_types from Get Category Rules is not empty.
Rules for the US market:
- Regular / Preorder product: Once the product goes live, you cannot change the product type.
- Made-to-order product: You can change it to a regular product at any time.
object
Information about the type of pre-sale order fulfillment and the corresponding timeframe.
handling_duration_daysis for fulfillment with an extended duration.release_dateis for starting fulfillment on a fixed date.
object
The desired duration for handling a pre-sale order and handing it over to a shipping carrier.
Applicable only for the following regions and pre-sale type: US
MADE_TO_ORDER: Business days, from 3 to 14 days.CUSTOM: Business days, from 3 to 30 days.
UK, EU, SEA, JP, and LATAM
PRE_ORDER: Calendar days, from 3 to 30 days.
The date on which the product gets converted into a regular product and becomes available for general purchase. On this date, order handling will also start, changing the status of the order to AWAITING_SHIPMENT.
Applicable only for PRE_ORDER in the US.
Note:
- Valid range: The date must fall within 3 - 60 days from the current date.
- This date is a unix timestamp (seconds) based on the seller-selected timezone in Seller Center.
- This date cannot be modified once the product goes live.
The type of pre-sale. Possible values based on the region: US
PRE_ORDER: The product is not yet available or released. Fulfillment can be extended by specifying a release date.MADE_TO_ORDER: The product is produced only after the order is received. Fulfillment can be extended by specifying a duration.CUSTOM: The product requires a fulfillment timeline that exceeds the standard due to other factors. Fulfillment can be extended by specifying a duration.
UK, EU, SEA, JP, and LATAM
PRE_ORDER: The product is not yet available or released. Fulfillment can be extended by specifying a duration.
SKU pricing information.
object
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.
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
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.
A list of attributes (e.g. size, color, length) that define each variant of a product.
Note:
- You must retain at least 1 sales attribute, deleting all existing sales attributes is not allowed.
- You can only have up to 3 types of sales attributes per product.
- Each SKU must include the same number and type of sales attributes. For example, you cannot have one SKU that has only a Color attribute, while another SKU has both Color and Size attributes.
- Provide either a built-in ID or a custom name; if both are provided, the ID takes priority.
- The
id/nameandvalue_id/value_namepairs must be unique in each SKU. For example, you cannot repeat"name": "Color","value_name": "Red"in different SKUs.
object
The ID of the sales attribute. This is either a built-in sales attribute ID from Get Attributes API or a custom attribute ID returned after calling Create Product API.
A self-defined custom sales attribute name if the existing attributes do not satisfy your needs. The system will auto-generate an ID after editing.
Note:
- Do not include sensitive characters.
- Max length: 20 characters
The default/main image for each value (e.g. red) of the primary sales attribute (e.g. color). This appears in the product options gallery on TikTok Shop.
You can attach images to only 1 type of sales attribute, which will serve as the primary attribute for display. An image must be provided for each value of the primary attribute. For example, if a product has 2 colors and 3 sizes, you can choose to attach images for either the color sales attribute or the size sales attribute. If you choose to attach images for color, you must attach 2 images, one for each color. If you want to add more images, use supplementary_sku_images.
object
The URI of the image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=ATTRIBUTE_IMAGE.
A list of supplementary images for each value (e.g. red) of the primary sales attribute (e.g. color) to provide multiple views or details of the product for that attribute value. These appear in the product options gallery on TikTok Shop.
Note:
- Max number of image URIs: 8.
- Arrange your image URIs in the sequence that they should appear on TikTok Shop.
- Applicable only for the US market.
object
The URI of the image.
Obtain this URI by uploading the images through the Upload Product Image API with use_case=ATTRIBUTE_IMAGE.
The ID of the sales attribute value. This is either a built-in sales attribute value ID from Get Attributes API or a custom sales attribute value ID returned after calling Create Product API.
A self-defined custom sales attribute value if the existing values do not satisfy your needs. The system will auto-generate an ID after editing.
Note:
- No duplicates allowed under the same attribute.
- Max length: 50 characters.
An internal code/name for managing SKUs, not visible to buyers.
Valid length:
- DE, ES, FR, IT, PL, NL, BE, CZ, AT, GR, PT, HU: 6-50 characters
- Other regions: 1-50 characters Format:
- DE, ES, FR, IT, PL, NL, BE, CZ, AT, GR, PT, HU: Use alphabets, numbers, hyphens (-), or underscores (_) only
- Other regions: Text without spaces
The dimensions of the sku.
Note:
- Provide the dimensions measured after packing the product.
- These values impact the shipping cost, so it is important to ensure that dimensions are accurate. Any discrepancies in measurements may lead to additional shipping fees.
- Optional for ID, TH, VN regions.
object
The package height. A positive whole number. Note: For the BR market, decimal values using . or , as separators are also accepted but will be rounded to the nearest whole number.
The package length. A positive whole number. Note: For the BR market, decimal values using . or , as separators are also accepted but will be rounded to the nearest whole number.
The unit for the SKU dimensions. Possible values based on region:
- US: CENTIMETER, INCH
- Other regions: CENTIMETER
Note: Use the same measurement system (metric or imperial) for sku_weight and sku_dimensions. For example, use KILOGRAM with CENTIMETER.
The package width. A positive whole number. Note: For the BR market, decimal values using . or , as separators are also accepted but will be rounded to the nearest whole number.
The total quantity/volume of the product represented by the SKU. For example, if the SKU represents 500ml of water, this value would be 500 if the unit type is defined as ml. Valid range: [0.01, 99,999.9999] Applicable only for the EU market.
Note:
- This is mainly used to calculate the unit price of the SKU, and is required only if you wish to display the unit price to facilitate easier price comparisons across different products and packaging sizes.
- Unit price = Selling price/(SKU unit count/base unit count). Therefore if you want to obtain the unit price, you would also need to define the “base unit count” and the “unit type” product attributes. Retrieve the relevant information for these product attributes by using the Get Attributes API. The unit price would then be returned in the Get Product API.
The packaged weight of the SKU.
Note:
- Product package weight is mandatory by default, except for products under Virtual Products categories. This requirement applies to
package_weight, notsku_weight. - Provide the weight measured after packing the SKU.
- This value impacts the shipping cost, so ensure that the SKU weight is accurate. Any discrepancies in measurements may lead to additional shipping fees.
- The package weight takes precedence over package dimensions in fee calculation if the fee based on weight is higher.
object
The unit for the SKU weight. Possible values based on region:
- US: KILOGRAM, POUND
- BR, JP, MX: KILOGRAM, GRAM
- Other countries: KILOGRAM
Note: Use the same measurement system (metric or imperial) for sku_weight and sku_dimensions. For example, use KILOGRAM with CENTIMETER.
The package weight, which must be a positive number. The number format varies based on the unit:
- GRAM: integer
- KILOGRAM: up to 3 decimal places
- POUND: up to 2 decimal places
All of the Save and Subscribe discount details.
object
All of the Save and Subscribe discount details.
object
An enum that communicated the type of discount:
- REGULAR
- FIRST_ORDER
- RETENTION
The value of the discount. A value of 10, would indicate a 10% discount.
An enum outlining whether the given product has an active Subscribe and Save promotion:
- ENABLED
- NOT_ENABLED
This field is required if the subscription is being created or modified.
The product title. Title length:
- DE, ES, FR, IE, IT, JP, UK, US: [1, 255]
- BR, MX: [1, 300]
- Other regions: [25, 255]
A product introduction or promotion video to display for your product.
Recommendations:
- Aspect ratio: 1:1
- Resolution: HD 720p or higher
- Duration: 20 - 60 seconds
object
The ID of the product video. Use the Upload Product File API to upload the video first and obtain the corresponding file ID.
Whether the product is a blind box of lucky bag. For example: PopMart
Example
{ "auto_translate_enabled": false, "brand_id": "7082427311584347905", "category_version": "v1", "certifications": [ { "expiration_date": 1741235047, "files": [ { "format": "PDF", "id": "tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe", "name": "Certificate.pdf" } ], "id": "7182427311584347905", "images": [ { "uri": "tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe" } ] } ], "description": " ", "external_product_id": "172959296971220002", "inventory_mode": "SHARED", "is_cod_allowed": false, "key_product_features": [ "Breathable mesh upper", "Cushioned foam midsole" ], "listing_platforms": [ "TIKTOK_SHOP" ], "locale": "en-US", "main_images": [ { "uri": "tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe" } ], "manufacturer_ids": [ "172959296971220002" ], "package_dimensions": { "height": "12", "length": "10", "unit": "CENTIMETER", "width": "11" }, "package_weight": { "unit": "KILOGRAM", "value": "1.32" }, "pod_info": { "pod_templates": [ { "pod_template_id": "172959296971220002", "remark": "Front side customization template for basic tee", "sku_ids": [ "172959296971220002" ], "surfaces": [ { "background_image": { "uri": "tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4" }, "custom_areas": [ { "area_name": "Front Text Area", "area_placement": { "height": "600", "rotate_degree": "0", "width": "600", "x_coordinate": "0", "y_coordinate": "0" }, "area_type": "TEXT", "external_area_id": "172959296971220002", "image_area": { "default_image": { "uri": "tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4" }, "min_height": 300, "min_width": 300 }, "is_required": false, "text_area": { "align_type": "CENTER", "colors": [ "#FFFFFF" ], "default_text": "Hello World", "fonts": [ "Roboto" ], "max_text_length": 20 } } ], "external_surface_id": "172959296971220002", "mask_image": { "uri": "tos-maliva-i-o3syd03w52-us/6c8519a3663a4d728c4e3c131dc914b4" }, "surface_name": "Front Side" } ], "template_name": "T-Shirt Front Print" } ] }, "product_attributes": [ { "id": "100392", "values": [ { "id": "1001533", "name": "Birthday", "metric_standard_info": { "id": "7678592839487784712", "metric_value_module_infos": [ { "id": "7678592839487735560", "value": "2026", "unit_id": "7678592839484720903" } ] } } ] } ], "replicated_products": [ { "inventory_mode": "SHARED", "region": "US", "skus": [ { "external_sku_id": "1729592969712207012", "id": "1729592969712207000", "inventory": [ { "quantity": 999, "warehouse_id": "7068517275539719942" } ], "price": { "currency": "USD", "sale_price": "1.21" }, "seller_sku": "Color-Red-XM001" } ] } ], "responsible_person_ids": [ "172959296971220003" ], "save_mode": "AS_DRAFT", "scheduled_sale": { "is_enabled_scheduled_sale": false, "schedule_sale_time": 1768899145000 }, "search_terms": [ "sneakers", "running shoes", "athletic" ], "size_chart": { "image": { "uri": "tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe" }, "template": { "id": "7267563252536723205" } }, "skus": [ { "external_list_prices": [ { "amount": "1", "currency": "USD", "source": "SHOPIFY_COMPARE_AT_PRICE" } ], "external_sku_id": "1729592969712207012", "external_urls": [ "https://example.com/path1", "https://example.com/path2" ], "extra_identifier_codes": [ "00012345678905", "9780596520687" ], "fees": [ { "additional_attribute": "SINGLE_USE", "amount": "1.01", "type": "PFAND" } ], "id": "1729592969712207012", "identifier_code": { "code": "12345678901234", "type": "GTIN" }, "inventory": [ { "backorder_quantity": 888, "handling_time": 5, "quantity": 999, "warehouse_id": "7068517275539719942" } ], "list_price": { "amount": "1", "currency": "USD" }, "pre_sale": { "fulfillment_type": { "handling_duration_days": 7, "release_date": 1619611761 }, "type": "PRE_ORDER" }, "price": { "amount": "100.00", "currency": "USD", "sale_price": "1.21" }, "sales_attributes": [ { "id": "100089", "name": "Specification", "sku_img": { "uri": "tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe" }, "supplementary_sku_images": [ { "uri": "tos-maliva-i-o3syd03w52-us/c668cdf70b7f483c94dbe" } ], "value_id": "1729592969712207000", "value_name": "XL" } ], "seller_sku": "seller_sku_xxaa", "sku_dimensions": { "height": "10", "length": "10", "unit": "CENTIMETER", "width": "10" }, "sku_unit_count": "100.00", "sku_weight": { "unit": "KILOGRAM", "value": "1.32" } } ], "subscribe_info_edit": { "discount_details": [ { "discount_level": "REGULAR", "discount_value": 10 } ], "subscribe_status": "ENABLED" }, "title": "Title-xxaa", "video": { "id": "v09e40f40000cfu0ovhc77ub7fl97k4w" }, "is_blind_box": false}Responses
Section titled “Responses”Success
object
Status code; 0 means success.
Success or failure message.
Request log ID.
object
Product audit information. Note: Applicable only to products listed on TikTok Shop. Not applicable for products listed only on Tokopedia.
object
The product audit status. Possible values:
- NONE: The product is not applicable for audit because it has not been submitted for listing on this platform, or it is in a draft, frozen, or deactivated state.
- AUDITING: The product is currently being audited.
- APPROVED: If you only edited the
priceorinventoryfields of an approved product, the product remains approved and the edits are immediately published on the platform.
The product ID generated by TikTok Shop.
A list of Stock Keeping Units (SKUs) used to identify distinct variants of the product.
object
An external identifier used in an external ecommerce platform. This is used to associate the SKU between TikTok Shop and the external ecommerce platform.
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.
object
Possible values for Pfand:
- SINGLE_USE
- REUSABLE
- NOT_APPLICABLE
The fee amount. Valid range:
- PFAND: [0.00 - 6300.00]
The type of fee. Possible values: PFAND
The SKU ID generated by TikTok Shop. One product can contain multiple SKU IDs.
A list of attributes (e.g. size, color, length) that define each variant of a product.
object
The sales attribute ID. If you included the custom sales attribute name in the request, this is a newly generated ID.
The sales attribute value ID. If you included the custom sales attribute value name in the request, this is a newly generated ID.
An internal code/name for managing SKUs, not visible to buyers.
Valid length:
- DE, ES, FR, IT, PL, NL, BE, CZ, AT, GR, PT, HU: 6-50 characters
- Other regions: 1-50 characters Format:
- DE, ES, FR, IT, PL, NL, BE, CZ, AT, GR, PT, HU: Use alphabets, numbers, hyphens (-), or underscores (_) only
- Other regions: Text without spaces
Example
{ "code": 0, "data": { "audit": { "status": "AUDITING" }, "product_id": "1729592969712207008", "skus": [ { "external_sku_id": "1729592969712207012", "fees": [ { "additional_attribute": "SINGLE_USE", "amount": "1.01", "type": "PFAND" } ], "id": "1729592969712207012", "sales_attributes": [ { "id": "100000", "value_id": "1729592969712207123" } ], "seller_sku": "seller sku xxaa" } ] }, "message": "Success", "request_id": "202203070749000101890810281E8C70B7"}