Platforms / TikTok
LivePlatform integration
Ship Your Integration
In Minutes, Not Weeks.
TikTok's Content Posting API + creator OAuth flow. letmepost ships the upload track — push_by_file inbox upload with chunked status polling. Connect and publish work today: the video lands in the creator's TikTok inbox and they tap publish in the app. Direct Post is approved and is next up.
Live · Content Posting API · read the docs →
{
"targets": [{ "platform": "tiktok", "accountId": "acc_tt_xyz" }],
"text": "Posted via letmepost.",
"media": [{ "type": "video", "mediaId": "med_video_xyz" }],
"options": { "tiktok": { "privacyLevel": "PUBLIC_TO_EVERYONE" } }
}Why letmepost vs Content Posting API direct?
TikTok Direct
- You complete TikTok app review (4–10 weeks per scope)
- You implement push_by_file with chunked status polling
- You manage the SELF_ONLY → PUBLIC_TO_EVERYONE upgrade path
- You handle two-audit gating (Upload vs Direct Post)
- You write OAuth 2.0 PKCE + refresh-token lifecycle
- You parse TikTok's status-poll responses + timeouts
letmepost API
- Our reviewed TikTok app covers you; no audit of your own
- push_by_file abstracted; one POST + a mediaId
- Privacy accepted per-call and always echoed back in a warning when we rewrite it
- Inbox upload works today; Direct Post is approved and next to ship
- OAuth 2.0 PKCE + refresh handled — no token rot
- Upload + finalize timing surfaced via
post.publishedwebhook
⚠ Posts land as a draft, not a public video
TikTok splits posting into two tracks — Upload (push_by_file → the creator's inbox) and Direct Post (video.publish → straight to public). letmepost ships the Upload track today, so a post arrives in the creator's TikTok inbox and they tap publish. Direct Post has cleared review and is the next thing we wire up.
Playground
Connect, configure, post.
TikTok OAuth 2.0 PKCE + account pick. Connect and upload today; the creator confirms the publish in the TikTok app.
CONNECT TIKTOK →Content types
Every TikTok surface, one shape.
How it works
Three steps, under two minutes.
Get your API key
Sign up at dashboard.letmepost.dev.
Connect a TikTok account
OAuth 2.0 PKCE. Pick the account. Required scopes (user.info.basic, video.upload, video.publish) resolved at connect time.
Upload a video
One POST /v1/posts with the video mediaId. We handle push_by_file + chunked status polling, fire post.published when TikTok finalizes.
Features
What we built so you don't.
Honest about the draft step
Ask for a public post and we say so: a tiktok.audit.self_only warning comes back on the response and on the post.published webhook, never a silent downgrade. Ask for self_only and there is nothing to warn about.
push_by_file abstracted
Init the upload, chunk the bytes, poll status (5s → 30s → 120s backoff up to 30min). We handle the whole flow as one SDK call.
SELF_ONLY → public path
In sandbox, posts land with privacyLevel: "SELF_ONLY"; once the Direct Post audit clears, the same call publishes PUBLIC_TO_EVERYONE. No code change.
MP4 / MOV, ≤ 287MB
Standard TikTok push_by_file limits. Preflight rejects oversize or unsupported codecs before the upload starts.
Code example
upload a video · typescript
import { Letmepost } from '@letmepost/sdk'; const lmp = new Letmepost({ apiKey: process.env.LMP_API_KEY }); const result = await lmp.posts.create({ targets: [{ platform: 'tiktok', accountId: 'acc_tt_xyz' }], text: 'A demo of letmepost. Posted via the API.', media: [{ type: 'video', mediaId: 'med_video_xyz' }], options: { tiktok: { privacyLevel: 'SELF_ONLY', // PUBLIC_TO_EVERYONE once Direct Post audit clears }, }, });
Common questions
about tiktok uploads
Does my post go straight to TikTok?
It uploads to the creator's TikTok inbox as a draft and they tap publish in the app. That is the Upload track, which is live today. Direct Post, which publishes without that tap, has cleared review and is the next thing we ship.
What audits does TikTok require?
Two separate audits. Upload (push_by_file → inbox, SELF_ONLY only) is the first; Direct Post (video.publish → public) is the second. letmepost has the publisher shipped for both.
How big can videos be?
≤ 287MB and ≤ 10 minutes per push_by_file upload. MP4 or MOV. Larger files go through TikTok's pull_by_url path (planned).
What privacy levels are supported?
PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. Sandbox forces SELF_ONLY until Direct Post audit clears.
Sandbox vs production behavior?
In sandbox: posts land in the user's TikTok inbox with privacy=SELF_ONLY; the user confirms publish in the TikTok app. In production (Direct Post audited): the same call publishes directly to the user's feed.
One API · 8 platforms
TikTok is just one of them.
Learn more
Good to know
Notes from the integration.
Two-track app review — Upload (push_by_file → inbox) and Direct Post (video.publish → public). Both cleared; the Upload track is what ships today.
150-char caption. Video ≤ 287MB or 10 min via push_by_file. MP4 or MOV.
PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY. Sandbox forces SELF_ONLY until Direct Post clears.
BYO TikTok developer app and use it today. Same publisher code, your audit record.
post.published fires when TikTok finalizes processing. Status-poll backoff is 5s → 30s → 120s up to a 30-min deadline.
READY FOR TIKTOK?
Connect a TikTok account and send your first upload today. The creator confirms the publish in the app.