Platform Guides

Create Instagram Account Bundles with TokPortal API

Create and configure Instagram bundles with TokPortal API: account profile, Reels, posts, carousels, publishing, and delivered account access.

Create Instagram Account Bundles with TokPortal API

Use platform: "instagram" when creating a TokPortal bundle. The API can create account-only bundles, account-and-video bundles, or videos-only bundles for an existing delivered account.

This guide covers the public contract. It does not promise reach, engagement, account immunity, or any specific platform outcome.

1. Create an Instagram bundle

curl -X POST https://app.tokportal.com/api/ext/bundles \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "bundle_type": "account_and_videos",
    "platform": "instagram",
    "country": "US",
    "title": "US Instagram launch",
    "videos_quantity": 3,
    "external_ref": "ig-launch-us"
  }'

The response includes data.bundle_id, credits_charged, credits_remaining, and cost_breakdown.

Reference: Create Bundle

2. Configure the account profile

Account configuration is required before publishing.

curl -X PUT https://app.tokportal.com/api/ext/bundles/bnd_abc123/account \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "mybrand.us",
    "visible_name": "My Brand",
    "biography": "New drops every week.",
    "profile_picture_url": "https://cdn.example.com/mybrand/profile.jpg",
    "link_in_bio": "https://example.com"
  }'

For Instagram, link_in_bio is supported. Keep biography under 80 characters and use unique usernames/display names across accounts.

Reference: Account Configuration

3. Configure an Instagram Reel

For a Reel video, use video_type: "video" and instagram_content_type: "reel".

curl -X PUT https://app.tokportal.com/api/ext/bundles/bnd_abc123/videos/1 \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "video_type": "video",
    "instagram_content_type": "reel",
    "description": "Morning routine with the new collection #style",
    "target_publish_date": "2026-06-05",
    "video_url": "https://cdn.example.com/reels/reel-01.mp4",
    "instagram_audio_name": "Original audio",
    "external_ref": "ig-reel-01"
  }'

video_url can be any public/direct URL or a public_url returned by Media Upload.

4. Configure an Instagram carousel post

For a swipeable Instagram carousel, use video_type: "carousel" and instagram_content_type: "post".

Upload images first and use the returned storage_path values:

curl -X POST https://app.tokportal.com/api/ext/upload/image/from-url \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://cdn.example.com/carousel/slide-1.jpg",
    "bundle_id": "bnd_abc123",
    "purpose": "carousel"
  }'

Then configure the slot:

curl -X PUT https://app.tokportal.com/api/ext/bundles/bnd_abc123/videos/2 \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "video_type": "carousel",
    "instagram_content_type": "post",
    "description": "Which look is your favorite?",
    "target_publish_date": "2026-06-07",
    "carousel_images": [
      "carousel-images/org_xxx/bnd_abc123/slide-1.jpg",
      "carousel-images/org_xxx/bnd_abc123/slide-2.jpg"
    ],
    "instagram_location": "Los Angeles, California"
  }'

Reference: Configure Videos

Deep warming

Deep warming is an Instagram-only option. Enable it with wants_deep_warming: true.

curl -X POST https://app.tokportal.com/api/ext/bundles \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "bundle_type": "account_and_videos",
    "platform": "instagram",
    "country": "US",
    "videos_quantity": 3,
    "wants_deep_warming": true,
    "external_ref": "ig-deep-warming-us"
  }'

wants_deep_warming and wants_niche_warming are mutually exclusive. The API returns validation errors if incompatible options are sent.

Bulk Instagram creation

POST /bundles/bulk accepts one country and one or more platforms. To cover several countries, call it once per country.

curl -X POST https://app.tokportal.com/api/ext/bundles/bulk \
  -H "X-API-Key: sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["instagram"],
    "country": "US",
    "accounts_count": 5,
    "upload_accounts_count": 2,
    "videos_per_account": 6,
    "wants_deep_warming": true,
    "external_ref": "ig-bulk-us"
  }'

This creates 5 Instagram bundles in the selected country. Two include video slots; three are account-only.

Reference: Create Bulk

Delivered account access

After delivery, accounts are available through the Delivered Accounts API:

curl -X GET "https://app.tokportal.com/api/ext/accounts?platform=instagram" \
  -H "X-API-Key: sk_your_key_here"

Credential reveal is a separate endpoint and triggers the support disclaimer described in Delivered Accounts:

curl -X POST https://app.tokportal.com/api/ext/accounts/acc_abc123/reveal-credentials \
  -H "X-API-Key: sk_your_key_here"

Related docs: Media Upload, Publish & Unpublish, Analytics, MCP Server.