DTC Multi-Market Launch
Plan a DTC launch across multiple countries with TokPortal: one bulk request per country, localized video configuration, publishing, webhooks, and analytics.
DTC Multi-Market Launch
DTC brands can use TokPortal to coordinate country-specific TikTok and Instagram workflows. The current API pattern is explicit: create bundles per market, configure localized content, publish each bundle, then compare analytics.
There is no countries array in the public bulk endpoint. Multi-market launches loop over countries.
1. Validate target countries
curl -X GET https://app.tokportal.com/api/ext/countries \
-H "X-API-Key: $TOKPORTAL_API_KEY"
Use enabled country codes from the response. US and GB aliases are accepted, but your API responses may use canonical TokPortal codes.
2. 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\", \"instagram\"],
\"country\": \"$country\",
\"videos_per_account\": 6,
\"wants_niche_warming\": true,
\"wants_moderation\": true,
\"niche_warming_instructions\": \"DTC product demos, reviews, and lifestyle content.\",
\"external_ref\": \"spring-launch-$country\"
}"
done
For each country, this creates 2 bundles per platform. One bundle per platform includes video slots.
Reference: Create Bulk
3. Configure localized content
Store your localized copy in your CMS or campaign database, then configure the correct bundle for each market:
curl -X PUT https://app.tokportal.com/api/ext/bundles/bnd_us_123/videos/batch \
-H "X-API-Key: $TOKPORTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"videos": [
{
"position": 1,
"video_type": "video",
"description": "New drop is live. #newarrival #launch",
"target_publish_date": "2026-06-05",
"video_url": "https://cdn.example.com/launch/hero.mp4",
"external_ref": "spring-launch-us-hero"
}
]
}'
For an Instagram Reel, include instagram_content_type: "reel":
{
"position": 1,
"video_type": "video",
"instagram_content_type": "reel",
"description": "Nouvelle collection disponible. #nouveaute",
"target_publish_date": "2026-06-06",
"video_url": "https://cdn.example.com/launch/hero-fr.mp4",
"external_ref": "spring-launch-fr-hero"
}
Reference: Configure Videos
4. Publish per bundle
Publish each configured bundle:
curl -X POST https://app.tokportal.com/api/ext/bundles/bnd_us_123/publish \
-H "X-API-Key: $TOKPORTAL_API_KEY"
Before publishing at scale, check readiness:
curl -X GET https://app.tokportal.com/api/ext/bundles/bnd_us_123/publish-readiness \
-H "X-API-Key: $TOKPORTAL_API_KEY"
Reference: Publish & Unpublish
5. Monitor and compare
Use webhooks for lifecycle updates:
curl -X POST https://app.tokportal.com/api/ext/webhooks \
-H "X-API-Key: $TOKPORTAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhooks/tokportal",
"events": ["bundle.published", "account.finalized", "video.finalized"],
"description": "DTC launch monitor"
}'
Use analytics after delivery:
curl -X GET "https://app.tokportal.com/api/ext/accounts/acc_abc123/analytics/videos?sort_by=views&sort_order=desc" \
-H "X-API-Key: $TOKPORTAL_API_KEY"
References: Webhooks, Analytics
Launch checklist
- Keep one internal
external_refper country/platform campaign. - Store returned bundle IDs immediately.
- Configure account profiles before publishing.
- Use public URLs or Media Upload for video assets.
- Localize captions manually; the API does not translate copy for you.
- Split larger launches across multiple requests and respect Rate Limits.
Related guides: Bulk TikTok Account Creation, UGC Distribution, Agency Management.