Skip to main content

Create Bulk (Performance Max)

Create multiple bundles in a single request. The bulk endpoint generates accounts_count x platforms.length bundles, distributing video uploads across a subset of accounts.

POST /bundles/bulk

Request Body

FieldTypeRequiredDescription
accounts_countintegerYesTotal number of accounts to create per platform.
upload_accounts_countintegerYesHow many accounts (per platform) receive video uploads. The rest are account_only. Must be <= accounts_count.
platformsstring[]YesArray of target platforms: tiktok, instagram, youtube.
countrystringYesISO 3166-1 alpha-2 country code. Must be enabled for your organization.
videos_quantityintegerYesNumber of videos per upload account.
edits_quantityintegerNoNumber of edits per upload account. Must be <= videos_quantity. Defaults to 0.
optionsobjectNoBundle options applied to all created bundles.
metadataobjectNoArbitrary key-value pairs attached to each bundle.

Options Object

FieldTypeDefaultDescription
niche_warmingbooleanfalseEnable niche warming. Cannot combine with deep_warming.
deep_warmingbooleanfalseEnable deep warming. Instagram only. Cannot combine with niche_warming.
moderationbooleanfalseEnable content moderation.
editingbooleanfalseInclude video editing services.
auto_finalize_videosbooleanfalseAutomatically finalize videos when ready.

How It Works

Given accounts_count = 10, upload_accounts_count = 3, and platforms = ["tiktok", "instagram"]:

  • TikTok: 3 bundles of type account_and_videos + 7 bundles of type account_only = 10 bundles
  • Instagram: 3 bundles of type account_and_videos + 7 bundles of type account_only = 10 bundles
  • Total: 20 bundles

Response

FieldTypeDescription
data.bundlesarrayArray of created bundle objects.
data.total_countintegerTotal number of bundles created.
credits_chargedintegerTotal credits deducted.
credits_remainingintegerRemaining credit balance.
cost_breakdownobjectItemized cost breakdown.

Example

Multi-Platform Bulk Create

curl -X POST https://app.tokportal.com/api/ext/bundles/bulk \
-H "X-API-Key: tok_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"accounts_count": 5,
"upload_accounts_count": 2,
"platforms": ["tiktok", "instagram"],
"country": "US",
"videos_quantity": 3,
"edits_quantity": 1,
"options": {
"niche_warming": true,
"moderation": true,
"editing": true
},
"metadata": {
"campaign": "q1_2026_launch"
}
}'

Response:

{
"data": {
"bundles": [
{
"id": "bnd_bulk_001",
"type": "account_and_videos",
"platform": "tiktok",
"country": "US",
"status": "pending_setup",
"videos_quantity": 3,
"edits_quantity": 1,
"options": {
"niche_warming": true,
"deep_warming": false,
"moderation": true,
"editing": true,
"auto_finalize_videos": false
},
"metadata": { "campaign": "q1_2026_launch" }
},
{
"id": "bnd_bulk_002",
"type": "account_and_videos",
"platform": "tiktok",
"country": "US",
"status": "pending_setup",
"videos_quantity": 3,
"edits_quantity": 1,
"options": {
"niche_warming": true,
"deep_warming": false,
"moderation": true,
"editing": true,
"auto_finalize_videos": false
},
"metadata": { "campaign": "q1_2026_launch" }
},
{
"id": "bnd_bulk_003",
"type": "account_only",
"platform": "tiktok",
"country": "US",
"status": "pending_setup",
"options": {
"niche_warming": true,
"deep_warming": false,
"moderation": true,
"editing": false,
"auto_finalize_videos": false
},
"metadata": { "campaign": "q1_2026_launch" }
},
{
"id": "bnd_bulk_006",
"type": "account_and_videos",
"platform": "instagram",
"country": "US",
"status": "pending_setup",
"videos_quantity": 3,
"edits_quantity": 1,
"options": {
"niche_warming": true,
"deep_warming": false,
"moderation": true,
"editing": true,
"auto_finalize_videos": false
},
"metadata": { "campaign": "q1_2026_launch" }
}
],
"total_count": 10
},
"credits_charged": 550,
"credits_remaining": 9450,
"cost_breakdown": {
"accounts": 100,
"videos": 240,
"edits": 40,
"niche_warming": 100,
"deep_warming": 0,
"moderation": 70
}
}
note

The response above is truncated for brevity. The actual response contains all 10 bundles (5 per platform).

Validation Rules

  • upload_accounts_count must be less than or equal to accounts_count.
  • edits_quantity must be less than or equal to videos_quantity.
  • country must be enabled for your organization.
  • deep_warming is only available when platforms includes instagram (and only applies to Instagram bundles).
  • niche_warming and deep_warming are mutually exclusive.

Error Responses

StatusCodeDescription
400upload_exceeds_accountsupload_accounts_count exceeds accounts_count.
400edits_exceed_videosedits_quantity exceeds videos_quantity.
400country_not_enabledCountry is not enabled for your organization.
400warming_conflictniche_warming and deep_warming cannot both be enabled.
400deep_warming_instagram_onlydeep_warming requires Instagram in the platforms list.
402insufficient_creditsNot enough credits for the full bulk operation.