Platforms / TikTok
In reviewPlatform integration
Ship Your Integration
In Minutes, Not Weeks.
TikTok's Content Posting API + creator OAuth flow, gated by TikTok's two-track app review (Upload + Direct Post). letmepost has the publisher shipped — push_by_file inbox upload with chunked status polling. Hosted users wait on review; self-hosters with their own TikTok developer app can publish today.
In review · 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 hosted users (when review clears)
- push_by_file abstracted; one POST + a mediaId
- Privacy level surfaced per-call; SELF_ONLY in sandbox, public after audit
- Inbox upload works today; Direct Post flips when its audit clears
- OAuth 2.0 PKCE + refresh handled — no token rot
- Upload + finalize timing surfaced via
post.publishedwebhook
⚠ TikTok's review gates production
TikTok runs two separate audits — Upload (push_by_file → inbox, SELF_ONLY) and Direct Post (video.publish → public). letmepost has the publisher built for both. Hosted users wait on review; self-host users with their own TikTok app can publish today.
Playground
Connect, configure, post.
TikTok OAuth 2.0 PKCE + account pick. Audit-gated for hosted users; self-host today with your own TikTok developer 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.
Audit-aware
Hosted users wait on our TikTok review; self-host users plug their own TikTok developer app and use it today. Same publisher code, your audit record.
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
When does TikTok go live?
Hosted users wait on TikTok app review (4–10 weeks per scope). Self-host with your own TikTok developer app today — same publisher code, your audit record.
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) + Direct Post (video.publish → public). 4–10 weeks per scope.
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?
Self-host today with your own TikTok developer app. Hosted users queue up; live when TikTok app review clears. Same publisher either way.