Agentic Posting is the TikTok-only publishing API for agents. Canonical agent instructions (read this before acting): https://agenticposting.com/SKILL.md API schema: https://api.agenticposting.com/v1/openapi.json Compact AI index: https://agenticposting.com/llms.txt Human setup, Polar billing, TikTok connection, and API-key claim: https://agenticposting.com/dashboard.html Agent discovery after setup: - GET https://api.agenticposting.com/v1/context - GET https://api.agenticposting.com/v1/capabilities Never ask a user to paste an API key into chat. Never Direct Post without an immutable intent and a separate, explicit creator confirmation. Agent-channel Direct Post is disabled by default; use the signed browser review URL or TikTok draft flow when capabilities say it is unavailable. A Direct Post intent requires a recognizable TikTok username or nickname. If preparation returns tiktok_creator_identity_missing, stop; no confirmable intent was created. Browser confirmation requires both the intent review token and a current Clerk session for a member of the same workspace. New review capabilities use the agp_review_ prefix; legacy bare digest tokens are invalid. The token alone can read an active review but cannot confirm it. Before Direct Post confirmation, show every immutable setting, including auto-add music, photo cover index, and video cover timestamp. Show a setting for the other media type as not applicable rather than hiding it; an 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. The API rejects incompatible settings instead of silently dropping them. A non-null TikTok publishId is durable initialization-acceptance proof, not proof of publication or inbox delivery. An exact idempotent replay may instead 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 the exact stored state without claiming acceptance. A key is bound to exact input, and changed input returns a conflict. Poll the existing job or intent for status. After any ambiguous provider result, reuse only the existing operation and idempotency key; never create a replacement that could duplicate a post. A reserved attempt with no TikTok publish id remains held for internal provider/operator reconciliation; there is no public reconciliation endpoint, automatic expiry, or agent/creator release control. Job read and refresh responses expose only id, status, publishId, tiktokPostId, and failReason. Internal owner, request, and idempotency hashes are not public response fields.