For your AI
Industry Use Cases

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.

Markdown

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 the enabled country codes from the response. Most are ISO alpha-2 (FR, DE, BR), but the United States is USA and the United Kingdom is UK; the aliases US and GB are accepted and resolved to those. A full country name is rejected with INVALID_COUNTRY.

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_moderation\": true,
      \"wants_advanced_warming\": true,
      \"advanced_warming_terms\": [\"product demo\", \"honest review\", \"daily lifestyle vlog\"],
      \"external_ref\": \"spring-launch-$country\"
    }"
done

For each country, this creates 2 bundles per platform. One bundle per platform includes video slots.

wants_advanced_warming: true is mandatory whenever advanced_warming_terms (3-30 targets, count a multiple of 3, each 2-50 characters) or advanced_warming_terms_count is sent; the whole batch is rejected with ADVANCED_WARMING_FLAG_REQUIRED otherwise, and nothing is charged. Targets are charged per account at the standard rate of 5 credits each, so the 3 targets are 15 credits on each of the 4 accounts: (4 x 32) + (4 x 15) + (2 x 6 x 2) = 212 credits per country batch, before moderation.

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_ref per 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.
  • Schedule no earlier than today + 3 days while an account is still being created (today + 1 once it is delivered or on an existing account), and no more than 3 videos per day per bundle.
  • Review delivered videos within about 72 hours; anything left in review auto-finalizes regardless of auto_finalize_videos.
  • Split larger launches across multiple requests and respect Rate Limits.

Related guides: Bulk TikTok Account Creation, UGC Distribution, Agency Management.