Getting Started
Changelog
Public TokPortal API, SDK, CLI, MCP, and documentation changelog.
Changelog
2026-07-16
- Clarified the account and video review lifecycle: an account listing or video listing left in
in_reviewwithout user review is automatically moved tofinalizedafter 72 hours.
2026-07-12
- Ban visibility end-to-end. When an account ban is validated (manager report with no appeal, refused platform appeal, or staff confirmation), TokPortal now cancels every active bundle/order on the account and pushes the signal everywhere:
- New
bundle.cancelledwebhook event — fired for each cancelled bundle withreason,cancelled_at,account_banned,saved_account_id, andusername. See Webhooks. - Documented the existing
account.bannedandaccount.ban_appeal.resolvedwebhook events (emitted since the CM ban-report flow shipped). GET /accountsandGET /accounts/:idnow returnbannedand abanobject (reason,banned_at, plusappeal_statusand a signedscreenshot_urlon the detail response). Banned accounts stay visible.GET /bundlesandGET /bundles/:idnow returncancelled_atandcancelled_reason.409 BUNDLE_INVALID_STATUSon publish calls now includescancelled_at/cancelled_reasonwhen the bundle is cancelled, so the error itself tells you why.- Documented the
cancelledbundle status in the bundle lifecycle.
- New
2026-07-10
- Advanced Niche Warming — recorded, AI-verified account warming for TikTok and Instagram (3 credits per niche target, 3-30 targets in multiples of 3). New bundle fields
wants_advanced_warming+advanced_warming_terms/advanced_warming_terms_countonPOST /bundlesandPOST /bundles/bulk. See the Advanced Niche Warming guide. - Deferred target configuration: buy the target count at creation (
advanced_warming_terms_count) and write the targets afterwards viaPUT /bundles/:id/accountwithadvanced_warming_terms(one-shot; must match the purchased count exactly). Warming starts at configuration when the account/order is already active, else at submission/accept. Count-only purchases never configured within 14 days are auto-cancelled and fully refunded. - Warming task spec: each recording opens on the account profile (handle visible), then the manager searches the target, watches videos from the results, engages with them (likes/saves) and leaves a comment. Every recording is verified before it counts.
- New endpoints:
POST /accounts/:id/rewarm,GET /accounts/:id/warming-sessions,GET /warming-sessions/:id,POST /warming/generate-terms(free AI target generation). - New webhooks:
warming.session_started,warming.term_verified,warming.session_completed. Bundle payloads exposeadvanced_warming_terms_count; account payloads gain anadvanced_warmingsummary (withterms_configured). - New error codes:
ADVANCED_WARMING_PLATFORM,ADVANCED_WARMING_TERMS,WARMING_TERMS_ALREADY_SET,WARMING_SESSION_NOT_FOUND,REWARM_NO_ACTIVE_ORDER,REWARM_ALREADY_ACTIVE,TERM_GENERATION_FAILED,AI_UNAVAILABLE. - Deep warming is discontinued:
wants_deep_warming: trueis now rejected withDEEP_WARMING_DEPRECATED(in-flight orders keep working). Niche warming is review-based and will be deprecated in favor of Advanced Niche Warming.
2026-06-19
- Added the
account.remadewebhook event, emitted when an account is remade after a ban or loss. Payload includesbundle_id,external_ref,old_username,new_username,old_account_id,reason,mode,remade_count, andremade_at. - Added a
remadeobject to bundle responses (GET /bundlesandGET /bundles/:id) withwas_remade,remade_count,old_username, andremade_at. - Added
bundle_idandexternal_refto the account detail response (GET /accounts/:id) — stable anchors for correlating an account across remakes (the saved account id itself changes on a remake). - Added
saved_account_idtoGET /bundles/:id(top-level and insideaccount) and to theaccount.*webhook payloads (populated fromaccount.in_reviewonward) — the clean way to obtain the real/new saved-account id for a bundle, including after a remake. Documented the account-listing vs saved-account distinction.
2026-05-25
- Added first-class OpenAPI assets at
/openapi.jsonand/openapi.yaml. - Added
llms.txtandllms-full.txtfor LLM ingestion. - Added
ai-context.jsonanddeveloper-ecosystem.jsonfor structured AI and developer ecosystem ingestion. - Documented the canonical API key format:
sk_followed by 64 lowercase hex characters, stored as SHA-256, shown once at creation. - Added public Node / TypeScript SDK package:
@tokportal/node. - Added public CLI package:
@tokportal/cli. - Added published public MCP package:
tokportal-mcp. - Deferred Python, Go, Ruby, Java, PHP, .NET, and Rust SDKs until their registry or repository release path is ready.
- Added package distribution metadata and a public ecosystem manifest with release status for SDK, CLI, and MCP surfaces.
- Added structured SDK error handling docs for Node, including request IDs and retryability helpers.
- Added SDK idempotency examples.
- Added
X-TokPortal-Clientidentification headers across generated SDKs, CLI, and MCP server. - Added public API version and stability response headers:
X-TokPortal-API-Version: 2026-05-25andX-TokPortal-API-Stability: stable. - Added
X-TokPortal-Request-IDresponse headers across public API responses and SDK error parsing for support/debug correlation. - Added request ID persistence in API logs and per-key usage inspection in the Developer Portal.
- Added API key environment tags, read/write scopes, optional expiry dates, and scope-aware auth errors without changing existing keys.
- Added API key metadata editing and audit trail events for creation, updates, rotation, rotation replacements, and revocation.
- Added
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset, andRetry-Afterheaders for authenticated public API requests. - Added SDK error metadata for rate limiting and backoff: Node
retryAfterSecondsandrateLimit. - Added Node webhook signature helper docs plus manual HMAC verification examples.
- Added CLI and MCP error diagnostics with
request_id,retry_after_seconds, andrate_limitmetadata. - Added the Versioning & Stability docs page with backwards compatibility and deprecation policy.
- Added public webhook endpoint registry at
/webhookswith emitted bundle, account, video, and test events, delivery logs, and test delivery support. - Added the public webhook event catalog at
/webhooks/eventswith event availability, payload schemas, example payloads, delivery headers, and signature metadata. - Added manual webhook delivery retry at
/webhooks/{id}/deliveries/{delivery_id}/retry, preserving the event ID and recording a new signed attempt. - Added persisted
Idempotency-Keyhandling for mutating API requests, including replay detection and conflict errors. - Expanded OpenAPI/SDK coverage for Analytics v2 contract/export/report endpoints and media upload helpers, including direct upload and image import from URL.
- Expanded OpenAPI/SDK coverage for bundle updates, account/video review lifecycle actions, video download fixes, analytics refresh checks, raw analytics snapshots, and standalone HTML report export.
- Added generated OpenAPI
x-codeSamplesfor every operation across curl, Node, Python, and Go. - Added a generated
/api-referencedocs page from OpenAPI so every operation and code sample is searchable and included inllms-full.txt. - Kept legacy API key validation compatible while new keys use the canonical
sk_format.