Apply Listing Optimization
POST/api/tiktok-shop/integration-instances/:integration_instance_id/products/:tiktok_shop_product_id/optimize
Apply approved fixes to a live TikTok Shop listing. Send any subset of title, description, and main_image_url; at least one is required. The image URL is fetched server-side and uploaded to TikTok, replacing the main image while preserving the existing gallery. The edit is resubmitted to TikTok's content audit, the listing is re-diagnosed, and the refreshed diagnosis is returned.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Body fields:
title(string, optional, max 255) - new product title.description(string, optional) - new product description (HTML allowed).main_image_url(string, optional, valid URL) - public image URL (at least 600x600) to set as the main image.
Returns applied (the fields changed), audit (TikTok's audit status, e.g. AUDITING), and data (the refreshed diagnosis). Returns 422 when no field is provided or when the image cannot be uploaded.
Authentication: Requires a Bearer token with the integrations.sync scope.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Content
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.