Account Configuration

Configure bundle account profile

Sets the profile of an account that has NOT been delivered yet: username, visible name, biography, profile picture, and link-in-bio on Instagram bundles. Only valid while the bundle is pending_setup or configured — unpublish first to edit after publishing, and use createAccountEditRequest for an account that is already delivered. This is a full replacement: any field you omit is written back as null, so re-send the whole profile when you change one part of it. link_in_bio is stored on Instagram bundles only. On any other platform it is accepted but not stored, and the response says so explicitly through _warnings while echoing link_in_bio: null — read both back. For backward compatibility this endpoint also accepts the exact purchased advanced_warming_terms list, but PUT /bundles/{id}/warming-terms is the recommended one-shot deferred-target endpoint because it remains available at any account status. Requires active TokPortal Coverage on the resolved saved account, or permanent grandfathering: a due period renews automatically at the account's stored rate immediately before execution, and nothing starts if it cannot renew. See getAccountManagedSubscription. A new account that has not produced a saved account yet remains configurable before delivery.

put/bundles/{id}/account

Request

  • Base URL: https://app.tokportal.com/api/ext
  • URL: https://app.tokportal.com/api/ext/bundles/{id}/account
  • Auth: API key in header X-API-Key

Path parameters

idstring uuid required

Bundle ID.

Headers

X-TokPortal-Dry-Run'true' | '1' | 'yes'

Send true (or 1/yes) to SIMULATE this call instead of executing it. A dry run performs the full validation and pricing path of the real operation and stops before the first write: no credits are debited, no rows are created, no webhooks fire, and no operator ever sees it. The response has the same shape and status as the real call and adds dry_run: true, dry_run_notice, and — on credit-spending operations — credits_would_charge carrying the real price. Errors are identical to the real call, which is the point: this is how you learn what an operation will do before paying for it. Rate limits are consumed normally, a supplied Idempotency-Key is ignored rather than burned, and identifiers returned by a dry run are synthetic (see DRY_RUN_ID_IN_LIVE_REQUEST).

Request body

usernamestring required

Requested username. Cannot end with a dot.

visible_namestring required

Public display name. Avoid reusing the same wording across accounts of one batch: near-identical profiles raise the risk of mass-ban detection.

biographystring

Profile biography. The enforced limit is platform-dependent: 120 characters on Instagram, 80 on every other platform.

profile_picture_urlstring

Public image URL, or the storage_path returned by uploadImage / uploadImageDirect / uploadImageFromUrl. Use storage_path, not public_url — public_url is only correct for videos.

link_in_biostring uri

Instagram bundles only. On TikTok and every other platform it is accepted, stored as null, and reported back in the response's _warnings array — read _warnings, not just the 200.

niche_warming_instructionsstring

Legacy — kept only for accounts being re-created after a refund; use Advanced Niche Warming (wants_advanced_warming).

advanced_warming_termsstring[]

Backward-compatible account-configuration field for an Advanced Niche Warming purchase made with advanced_warming_terms_count. Prefer PUT /bundles/{id}/warming-terms, which remains available at any account status. Must contain exactly the purchased number of targets and can only be set once.

Response

Configured account.

object required

Changes

No recorded changes to this operation across all 1 revision of this API.