# Agentic Posting > TikTok-only publishing API for agents. Creator 300 costs $8/month for one TikTok account and 300 TikTok-accepted publishing initializations per Polar billing period. Canonical resources: - Product and API setup: https://agenticposting.com/docs.html - Agent instructions: https://agenticposting.com/SKILL.md - OpenAPI: https://api.agenticposting.com/v1/openapi.json - Short AI discovery: https://agenticposting.com/ai.txt - OpenAI metadata: https://agenticposting.com/agents/openai.yaml - Account, billing, TikTok connection, and API key: https://agenticposting.com/dashboard.html - Privacy: https://agenticposting.com/privacy.html - Terms: https://agenticposting.com/terms.html - Support and deletion requests: https://agenticposting.com/support.html Launch operations: - GET /v1/context - GET /v1/capabilities - POST /v1/uploads - PUT /v1/uploads/{assetId}/content - POST /v1/posts (mode=draft only) - POST /v1/post-intents - GET /v1/post-intents/{postIntentId} - GET /v1/post-intents/{postIntentId}/review - POST /v1/post-intents/{postIntentId}/creator-settings - POST /v1/post-intents/{postIntentId}/confirm - GET /v1/posts/{jobId} - POST /v1/posts/{jobId}/refresh Browser-only creator flow: - GET /v1/post-intents/{postIntentId}/review with X-Review-Token. New review capabilities use the agp_review_ prefix; legacy bare digest tokens are invalid. Active review data is token-scoped; terminal responses are minimal. - POST /v1/post-intents/{postIntentId}/creator-settings requires X-Review-Token plus a current Clerk session for a member of the same workspace. The creator manually selects visibility with no default, edits text, and chooses interactions, disclosures, music, and cover settings. Locking them supersedes the suggestions with a new immutable intent and does not contact TikTok. - POST /v1/post-intents/{postIntentId}/confirm is a separate final action requiring the replacement review token, the same workspace-member session, the exact phrase and hash, and explicit music/branded-content declarations. Current capabilities contract: version 2026-08-09; active media capacity is 70 assets and 1,000,000,000 bytes per workspace. Safety contract: - Direct Post begins with media and suggested values. In browser review, only the creator's manually locked settings become the immutable post intent. - The agent must show the complete media and settings summary, then stop and wait for a separate creator response. - A Direct Post intent requires a recognizable TikTok username or nickname. Stop on tiktok_creator_identity_missing; never confirm a generic or missing creator identity. - Never infer, invent, or reuse creator confirmation. - Agent-channel Direct Post is disabled by default pending TikTok approval; respect GET /v1/capabilities. - Use the signed browser review URL or TikTok draft path when agent confirmation is unavailable. - An API key cannot select the browser confirmation channel. Never ask for a Clerk session or review token in chat. - Any content or setting change requires a new intent. - Never ask the user to paste an API key, OAuth token, or review token into chat. - Route AI-generated photo slideshows to TikTok draft/inbox delivery; do not Direct Post them without a supported AI-generated-content disclosure field. - A video uses title as its TikTok caption (2,200 characters maximum) and does not accept description. A photo may have both a title (90 characters maximum) and description (4,000 characters maximum); show both when supplied. - Review auto-add music, photo cover index, and video cover timestamp explicitly. Show a setting for the other media type as not applicable rather than hiding it; omitted photoCoverIndex is normalized to 0. - Video intents may use Duet, Stitch, and videoCoverTimestampMs but must omit autoAddMusic and photoCoverIndex. Photo intents may use autoAddMusic and photoCoverIndex, must set Duet and Stitch false, and must omit videoCoverTimestampMs. Incompatible settings are rejected. - Upload exactly one MP4 video or 1-35 JPEG/WebP photos per reservation. Do not mix roles or repeat asset ids. Active capacity is 70 assets and 1,000,000,000 bytes per workspace. - Accepted usage belongs to the Polar period containing TikTok acceptance. Unresolved provider attempts are reserved capacity, not accepted usage, and reduce remaining capacity until internal provider/operator evidence reconciles them. A missing-publish-id hold has no public reconciliation endpoint, agent/creator release control, or automatic expiry. - Only a non-null TikTok publishId proves initialization acceptance, and acceptance is not publication or inbox-delivery proof. An exact idempotent replay may recover a stored failed or submission_unknown job without a second TikTok publish initialization or usage reservation and remains recoverable after entitlement ends. A racing retry may repeat a safe creator-info metadata read before it observes the winning attempt. Inspect and report its exact state. A key is bound to exact input; changed input returns a conflict. Poll the existing job or intent. Never create a replacement request or new idempotency key after an ambiguous result. - Treat a submitting intent as already claimed and in flight. Do not confirm it again or prepare a replacement; poll the same intent/job identity. - Job read and refresh responses expose only id, status, publishId, tiktokPostId, and failReason. Internal owner, request, and idempotency hashes are not public fields. Out of scope: scheduling, calendars, other social networks, content generation, teams, and customer-facing post history or analytics dashboards.