MessNoMore Data Tools

MessNoMore Data Tools › Translate Shopee, Lazada, TikTok Shop Listings: Title Limits

How do you translate Shopee, Lazada and TikTok Shop listings within the title limits?

Updated · By Wong Xian Qi

Title limits differ by marketplace: the Shopee, Lazada & TikTok Shop Listing Translator Actor applies 120 characters on Shopee (a common Seller Centre figure; the Actor's documentation says Shopee publishes no official number), 255 on Lazada and 25 to 255 on TikTok Shop. When you translate a title into Malay, Indonesian, Thai or Vietnamese, keep brand names, sizes and model codes exactly as written and check the result against the limit. Sellers in Malaysia must also show the seller information listed in the CPETTR 2024 Schedule, and the unofficial Apify Actor Shopee, Lazada & TikTok Shop Listing Translator translates, trims and checks listings through an API.

What are the title and description limits on Shopee, Lazada and TikTok Shop?

These are the numbers the Actor applies, counted the way a reader sees characters, so Thai marks and Vietnamese accents count correctly.

MarketplaceTitleDescriptionSource of the number
Shopee1203,000Common Seller Centre figures; the Actor's documentation says no official limit is published
Lazada25525,000Lazada Open Platform CreateProduct API
TikTok Shop25 to 25510,000TikTok Shop Partner API

Shopee is the one to check by hand: your own Seller Centre shows the number for your category. If it differs from 120, enter it as titleMaxLength (10 to 255); until then every Shopee result carries titleLimitVerified: false. The Lazada and TikTok Shop limits cannot be raised, and a TikTok Shop title under 25 characters gets a note asking for more product details.

Why does machine translation of a product title go wrong?

A title packs product type, key specs and brand into few words, so literal translation breaks in predictable ways:

If a translated title is still over the limit, the Actor removes words from the end. The first word (the product type) and the protected terms stay; if even those do not fit, the title is cut mid-phrase and a note says so. Thai, which has no spaces between words, is trimmed at word or phrase boundaries. A shortened title has titleTrimmed: true.

Source titleMalay (Shopee run)Thai (TikTok Shop run)Vietnamese (TikTok Shop run)
Stainless Steel Water Bottle 750ml Double Wall Vacuum InsulatedBotol Air Stainless Steel 750ml Dinding Berganda Vacuum Insulatedขวดน้ำสแตนเลส 750ml ฉนวนสุญญากาศ 2 ชั้นBình nước giữ nhiệt inox 750ml 2 lớp thành chân không

Every version keeps "750ml", but read the output before publishing: in two sample runs on this title, one left "Vacuum Insulated" in English and the other wrote "Vakum Penebat". The notes field also flags claims that need proof, such as this bottle's 24-hour cold claim.

How do you translate listings to Malay, Thai or Vietnamese with an API?

Send listings, target languages and a marketplace in one request. Each listing needs sku and title; description, variations, price, currency, brand and protectedTerms are optional. targetLanguages takes ms, id, th and vi; marketplace is shopee, lazada or tiktokshop. For a whole catalogue, pass listingsCsvUrl, a public link to a UTF-8 CSV file or a Shopify product export.

curl -X POST "https://api.apify.com/v2/acts/messnomore~sea-listing-localizer/run-sync-get-dataset-items" -H "Authorization: Bearer YOUR_APIFY_TOKEN" -H "Content-Type: application/json" -d '{"listings":[{"sku":"BTL-750","title":"AcmeHome Stainless Steel Water Bottle 750ml","protectedTerms":["AcmeHome"]}],"targetLanguages":["ms","th"],"marketplace":"tiktokshop"}'

You get one result per listing per language. This is a real result, the Thai version on TikTok Shop:

{
  "sku": "BTL-750",
  "language": "th",
  "marketplace": "tiktokshop",
  "sourceTitle": "Stainless Steel Water Bottle 750ml Double Wall Vacuum Insulated",
  "localizedTitle": "ขวดน้ำสแตนเลส 750ml ฉนวนสุญญากาศ 2 ชั้น",
  "titleLength": 34,
  "titleMaxLength": 255,
  "localizedDescription": "เก็บความเย็นได้นาน 24 ชั่วโมง และเก็บความร้อนได้นาน 12 ชั่วโมง\n• ฝาป้องกันการรั่วซึม\n• ฝาไม่มี BPA\n• พอดีกับที่วางแก้วในรถยนต์ส่วนใหญ่",
  "localizedVariations": [
    {
      "name": "สี",
      "options": [
        "ดำ",
        "เงิน",
        "ชมพูพาสเทล"
      ]
    }
  ],
  "complianceScore": null,
  "cpettrMissing": null,
  "cpettrRecommended": null,
  "cpettrHints": null,
  "notes": [
    "Confirm the 24-hour cold and 12-hour hot retention claims with test data before publishing.",
    "Source says 'BPA-free lid'; confirm the lid's BPA-free status is certified or documented."
  ],
  "missingProtectedTerms": [],
  "titleTrimmed": false,
  "titleLimitVerified": true,
  "descriptionLength": 109,
  "descriptionTrimmed": false
}

The CPETTR fields are null because that check was off for this run. 100 results take about a minute.

What does Malaysia's CPETTR 2024 require sellers to disclose?

CPETTR is the Consumer Protection (Electronic Trade Transaction) Regulations 2024, P.U.(A) 449/2024, in force since 25 December 2024. The Actor's check follows its Schedule:

Not scored but suggested: your website and any safety or health certificate (both "if any", items 2 and 10), and your company registration number, which marketplaces must keep on record (Regulation 8(1)(c)). The Actor's documentation says enforcement of the Bahasa Malaysia rule was postponed in June 2025.

The Actor turns this into a complianceScore (0 to 100) per listing, plus cpettrMissing and cpettrHints. In the CPETTR example run both listings scored 100. To read the rules, find the gazette text of P.U.(A) 449/2024; for legal questions ask a qualified adviser or the Ministry of Domestic Trade and Cost of Living (KPDN). The check is not legal advice.

How much does it cost to translate a listing?

Pay-per-event: $0.02 per localized result (one listing in one language) plus $0.01 per run, with no charge for compute time. 50 products in Bahasa Malaysia and Thai make 100 results and cost $2.01; 20 listings in one language cost $0.41. Failed results are not charged, and maxResults (default 100) is a hard cap. Runs on the Apify free plan return up to 10 results. Apify Bronze, Silver and Gold subscribers get lower prices.

What does it not cover?

FAQ

What is the Lazada product title character limit?

The Shopee, Lazada & TikTok Shop Listing Translator Actor applies 255 characters for titles and 25,000 for descriptions on Lazada, taken from the Lazada Open Platform CreateProduct API. The Actor does not let you raise the Lazada limit.

How long can a TikTok Shop product title be?

The Actor applies 25 to 255 characters for titles and up to 10,000 for descriptions on TikTok Shop, based on the TikTok Shop Partner API. A title shorter than 25 characters gets a note asking you to add product details.

What is the Shopee product title limit?

According to the Actor's documentation, Shopee publishes no official limit, so the Actor uses 120 characters for titles and 3,000 for descriptions, the common Seller Centre figures. Check the number your Seller Centre shows for your category and set titleMaxLength (10 to 255) if it differs.

What must sellers disclose under Malaysia's CPETTR 2024?

The Actor's checklist follows the Schedule of P.U.(A) 449/2024: seller name, e-mail and telephone, business address, product description, full price and delivery cost, payment methods, terms and conditions, estimated delivery time, plus a Bahasa Malaysia version (Regulation 4, enforcement postponed in June 2025). It is a checklist, not legal advice.

Is there an API to translate Shopee listings into Malay, and what does it cost?

Yes. The Apify Actor Shopee, Lazada & TikTok Shop Listing Translator can be called through the Apify API with your listings, target languages and marketplace. It costs $0.02 per localized result plus $0.01 per run, and Apify Bronze, Silver and Gold subscribers get lower prices.

Does the tool scrape Shopee, Lazada or TikTok Shop?

No. It only processes the listings you send and does not visit marketplace websites or read other sellers' data. It is an independent tool and is not affiliated with those marketplaces.