Skip to main content
The TikTok lane uploads videos through the Content Posting API. It publishes only once a TikTok credential is present in your .env; until then the lane is live-but-unauthenticated and waits for you to connect it (set PENDPOST_MODE=mock to exercise it through the mock driver).
Beta lane. TikTok is built but not yet live-verified end to end, so treat it as a preview and do not rely on it for guaranteed delivery. The lane loses this badge once it is live-verified.
You own your TikTok account and are responsible for TikTok’s terms of service. pendpost drafts and schedules, but a human approves before anything goes live.
Unaudited apps post privately. Until your app passes TikTok’s content-posting audit, every post is forced to SELF_ONLY, visible only to the posting account. Submit the app for audit to publish publicly.

Setup ceremony

The app uses the user.info.basic, video.upload, and video.publish scopes. The auth command runs a local loopback server to receive the authorization code.
  1. Create a developer app. Open the TikTok developer portal and create an app. Add the Login Kit and Content Posting API products. Copy the client key and client secret from the app credentials.
  2. Record the client secret. Copy the client secret and store it. It is used on the token exchange and refresh calls.
  3. Add the redirect uri. In the app settings, register the redirect uri exactly: http://127.0.0.1:8088/oauth/tiktok/callback. The auth command runs a local loopback server there.
Then authorize. It opens the consent screen, exchanges the code, and stores the access and refresh tokens with their expiry:
The access token is refreshed automatically before it expires.

Environment variables

A lane publishes only once its credential is present. If the TikTok variables are blank, the TikTok lane is live-but-unauthenticated and waits for you to connect it. Set PENDPOST_MODE=mock to exercise it through the mock driver.

Validate the lane

A present credential is not the same as a working one. After setup, validate the TikTok lane in the Setup tab, or run a live probe with the health_recheck tool, to confirm the credential is live and not just configured. The lane is ready when it reports live.
Over MCP. Setup and rotation are an interactive human ceremony; secrets are never written through MCP. An agent can still check status (account_status), run a live liveness probe (health_recheck), and read non-secret config (config_get) over MCP without touching credentials.

Common failures