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.

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_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.
  • Split larger launches across multiple requests and respect Rate Limits.

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