Product Seeding Workflows for TikTok
Use TokPortal API to organize product demo and UGC workflows for TikTok. Create bundles, configure captions/media, publish, and measure analytics without claiming native TikTok Shop tagging.
Product Seeding Workflows for TikTok
E-commerce teams can use TokPortal to coordinate product demo, unboxing, and UGC-style TikTok workflows. The current public video configuration API supports captions, publish dates, media URLs, TikTok sound URLs, carousels, and moderation/warming options.
TokPortal does not currently document a public API field for native TikTok Shop product tagging. If your workflow requires product tags, manage that separately from the current TokPortal public API.
Create a product-focused bundle
curl -X POST https://app.tokportal.com/api/ext/bundles \
-H "X-API-Key: $TOKPORTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"bundle_type": "account_and_videos",
"platform": "tiktok",
"country": "US",
"videos_quantity": 8,
"title": "Skincare demo - US",
"wants_advanced_warming": true,
"advanced_warming_terms": [
"skincare routine",
"serum review",
"beauty unboxing",
"glass skin",
"sensitive skin tips",
"clean beauty haul"
],
"wants_moderation": true,
"moderation_notice": "Check for required disclosure language and avoid unsupported claims.",
"external_ref": "skincare-demo-us"
}'
wants_advanced_warming: true must accompany advanced_warming_terms (3-30 targets, count a multiple of 3, each 2-50 characters) or advanced_warming_terms_count; the API never infers it and rejects the call with ADVANCED_WARMING_FLAG_REQUIRED. At the standard rate of 5 credits per target, the 6 targets above are 30 credits, so this bundle is 32 for the account + 8 x 2 for the video slots + 30 = 78 credits before moderation.
Reference: Create Bundle
Configure product content
curl -X PUT https://app.tokportal.com/api/ext/bundles/bnd_abc123/videos/batch \
-H "X-API-Key: $TOKPORTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"videos": [
{
"position": 1,
"video_type": "video",
"description": "Unboxing the new serum. Results vary. #skincare #unboxing",
"target_publish_date": "2026-06-05",
"video_url": "https://cdn.example.com/skincare/unboxing-01.mp4",
"external_ref": "serum-unboxing-us-01"
},
{
"position": 2,
"video_type": "video",
"description": "How it fits into a morning routine #grwm",
"target_publish_date": "2026-06-07",
"video_url": "https://cdn.example.com/skincare/routine-01.mp4",
"external_ref": "serum-routine-us-01"
}
]
}'
Publish dates start at today + 3 days while the account is still being created, and at today + 1 once it is delivered or when the bundle runs on an existing account. Keep to 3 videos per day per bundle at most. Delivered videos sit in review and auto-finalize about 72 hours later, regardless of auto_finalize_videos, so review seeding content inside that window.
Reference: Configure Videos
Scale across buyer markets
Create one bulk batch per country:
for country in US UK FR DE; do
curl -X POST https://app.tokportal.com/api/ext/bundles/bulk \
-H "X-API-Key: $TOKPORTAL_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"accounts_count\": 2,
\"upload_accounts_count\": 1,
\"platforms\": [\"tiktok\"],
\"country\": \"$country\",
\"videos_per_account\": 6,
\"wants_moderation\": true,
\"wants_advanced_warming\": true,
\"advanced_warming_terms\": [\"skincare routine\", \"beauty unboxing\", \"clean beauty haul\"],
\"external_ref\": \"skincare-demo-$country\"
}"
done
country is the code from GET /countries (the United States is USA and the United Kingdom is UK; US and GB are accepted aliases); a country name fails with INVALID_COUNTRY. Warming targets are charged per account, so the 3 targets above are 3 x 5 = 15 credits on each of the 2 accounts per country: (2 x 32) + (2 x 15) + (1 x 6 x 2) = 106 credits per country batch.
Reference: Create Bulk
Content that fits the current API
- Product demos using
video_url - Unboxings and first impressions
- Before/after-style content only where substantiated and compliant
- UGC reposts where you have usage rights
- Localized captions per country
Measure results
curl -X GET "https://app.tokportal.com/api/ext/accounts/acc_abc123/analytics" \
-H "X-API-Key: $TOKPORTAL_API_KEY"
For post-level rows:
curl -X GET "https://app.tokportal.com/api/ext/accounts/acc_abc123/analytics/videos" \
-H "X-API-Key: $TOKPORTAL_API_KEY"
Reference: Analytics
Related docs: Media Upload, CSV Import, Webhooks, UGC Distribution.