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
| Field | Type | Required | Description |
|---|---|---|---|
accounts_count | integer | Yes | Total number of accounts to create per platform. |
upload_accounts_count | integer | Yes | How many accounts (per platform) receive video uploads. The rest are account_only. Must be <= accounts_count. |
platforms | string[] | Yes | Array of target platforms: tiktok, instagram, youtube. |
country | string | Yes | ISO 3166-1 alpha-2 country code. Must be enabled for your organization. |
videos_quantity | integer | Yes | Number of videos per upload account. |
edits_quantity | integer | No | Number of edits per upload account. Must be <= videos_quantity. Defaults to 0. |
options | object | No | Bundle options applied to all created bundles. |
metadata | object | No | Arbitrary key-value pairs attached to each bundle. |
Options Object
| Field | Type | Default | Description |
|---|---|---|---|
niche_warming | boolean | false | Enable niche warming. Cannot combine with deep_warming. |
deep_warming | boolean | false | Enable deep warming. Instagram only. Cannot combine with niche_warming. |
moderation | boolean | false | Enable content moderation. |
editing | boolean | false | Include video editing services. |
auto_finalize_videos | boolean | false | Automatically 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 typeaccount_only= 10 bundles - Instagram: 3 bundles of type
account_and_videos+ 7 bundles of typeaccount_only= 10 bundles - Total: 20 bundles
Response
| Field | Type | Description |
|---|---|---|
data.bundles | array | Array of created bundle objects. |
data.total_count | integer | Total number of bundles created. |
credits_charged | integer | Total credits deducted. |
credits_remaining | integer | Remaining credit balance. |
cost_breakdown | object | Itemized 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_countmust be less than or equal toaccounts_count.edits_quantitymust be less than or equal tovideos_quantity.countrymust be enabled for your organization.deep_warmingis only available whenplatformsincludesinstagram(and only applies to Instagram bundles).niche_warminganddeep_warmingare mutually exclusive.
Error Responses
| Status | Code | Description |
|---|---|---|
400 | upload_exceeds_accounts | upload_accounts_count exceeds accounts_count. |
400 | edits_exceed_videos | edits_quantity exceeds videos_quantity. |
400 | country_not_enabled | Country is not enabled for your organization. |
400 | warming_conflict | niche_warming and deep_warming cannot both be enabled. |
400 | deep_warming_instagram_only | deep_warming requires Instagram in the platforms list. |
402 | insufficient_credits | Not enough credits for the full bulk operation. |