TikTok's Content Posting API lets an approved developer app publish videos to a creator's account. You authenticate each creator with TikTok OAuth (Login Kit), request the video.publish / video.upload scopes, and upload the media. Direct Post requires your app to pass TikTok's audit; before that, posts can only be created as drafts the user confirms in-app.
The audit is the hard part for solo builders. PostWire goes through it so your code never touches the approval flow.
PostWire's Smart Distribute turns a single prompt (plus optional media) into the best native post for every network — never the same text everywhere, which every algorithm penalizes. For TikTok it writes a hook-first caption with ≤5 hashtags in the caption, tuned to TikTok's own conventions while it simultaneously reframes the same idea for YouTube, X, LinkedIn and the rest. AI generation is included free on every plan (you pay for brands, not per post) and is one MCP tool (generate_posts) or one REST call (POST /api/generate).
PostWire connects your own TikTok account through TikTok's official Login Kit (OAuth). On the TikTok consent screen you explicitly approve these scopes — nothing is accessed without your authorization:
user.info.basic — read your basic profile (open id, avatar, display name) so PostWire can show which account is connected.video.publish — publish a video you submit directly to your own TikTok profile (Direct Post).video.upload — upload a video to your account as a draft for you to finish and post inside the TikTok app.Before anything is published, PostWire shows you the creator info returned by TikTok (your username and avatar), lets you choose the privacy level and the comment / duet / stitch settings, and requires your explicit confirmation. PostWire only ever posts the exact content you (or your authorized agent) send, and only to the account you connected. We never sell or share your data, and you can disconnect your account or delete your data at any time from the dashboard. See our Privacy Policy and Terms of Service.
TikTok uses OAuth, not a password. Your user connects in the dashboard, or you generate the authorization URL via the API:
curl -X POST https://postwire.io/api/oauth/tiktok/url \
-H "Authorization: Bearer $POSTWIRE_API_KEY"
# -> { "url": "https://.../oauth/authorize?..." }
# The user opens the URL, approves, and PostWire stores the token (and refreshes it for you).
Once connected, posting is a single request. Add more networks by putting more strings in platforms.
curl -X POST https://postwire.io/api/post \
-H "Authorization: Bearer $POSTWIRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platforms":["tiktok"],"video_url":"https://cdn.example.com/clip.mp4","text":"Behind the scenes 😱 #buildinpublic"}'
PostWire ships a first-class MCP server — not docs-only. Add it to any MCP client:
{
"mcpServers": {
"postwire": {
"command": "npx",
"args": ["-y", "postwire-mcp"],
"env": { "POSTWIRE_API_KEY": "pw_live_xxx" }
}
}
}
Then the agent just calls the tool:
{
"name": "post_to_social",
"arguments": { "platforms": ["tiktok"], "video_url": "https://cdn.example.com/clip.mp4", "text": "Day 12 🚀" }
}
| Direct integration | PostWire | |
|---|---|---|
| Platform audit / review | You apply & maintain it | Handled for you |
| OAuth + token refresh | You build it | Managed |
| AI agent support | Build your own tool | MCP tool out of the box |
| Other networks | One integration each | 9 networks, one API |
| Plan | Price | Brands |
|---|---|---|
| Free | $0 | 1 brand · 30 posts/mo |
| Starter | $9 | 3 brands · 300/mo |
| Pro | $29 | 10 brands · 2,000/mo |
| Agency | $99 | 50 brands |
| Scale | $299 | 200 brands |
Running 50 brands on Ayrshare costs roughly $779 — and its MCP is docs-only, so an agent can't actually post. See PostWire vs Ayrshare.
Get your API key — free →user.info.basic) to identify the connected account, and video.publish / video.upload to post the videos you send. PostWire never sells or shares your data, only posts content you explicitly submit to your own authorized account, and lets you disconnect or delete your data at any time.