TikTok · Short-form video

The TikTok API, init, upload, poll — handled

Publish video to TikTok from a URL. We call the Content Posting API's init endpoint, pull your file, and track the publish status — you send a caption and a link.

Video postsPull-from-URLCaptionsScheduling
Official OAuth APIup to 2,200 charsTikTok Content Posting API
curl https://postmyish.com/api/v1/posts \
  -H "Authorization: Bearer $POSTMYISH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"wait for it… 👀 #buildinpublic","platforms":["tiktok"]}'
201 · { id: "9f2c8b1e…", status: "published" }JSON
Why not raw?

TikTok Content Posting API is powerful — and painful

The official API can do this. It just makes you do a lot first. Here's what raw TikTok publishing costs you, and what PostMyIsh absorbs.

Raw TikTok API
With PostMyIsh
Publishing
init → upload the file → poll status/fetch until it's live (3 calls)
One POST /v1/posts; we run the sequence
Auth
OAuth with video.publish, gated behind an app audit
One OAuth screen, one encrypted token
Visibility
Unaudited apps can only post SELF_ONLY (private)
We default to SELF_ONLY until your audit clears — no surprises
Media
You host the video and expose a URL TikTok can pull
Pass a URL; we send it as the source
Capabilities

Everything TikTok supports, one endpoint

Post types, limits, and scheduling — all through the same POST /v1/posts call, formatted the way TikTok expects.

Video from a URL

PULL_FROM_URL — TikTok fetches the file you host; no multipart upload.

Captions to 2,200

Title/caption with hashtags, delivered with the post.

Status tracking

We keep the publish_id and can poll delivery status.

Fan-out

The same call lands on Instagram and YouTube too.

Copy, paste, ship

Real calls, not pseudocode

Every snippet hits the live API — same base URL, Bearer auth, plain JSON. Add your key and it runs.

Publish to TikTok now

One POST fans out to TikTok. The response carries the id and status the moment it ships.

curl https://postmyish.com/api/v1/posts \
  -H "Authorization: Bearer $POSTMYISH_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"wait for it… 👀 #buildinpublic","platforms":["tiktok"]}'
How it works

Live in three steps, not three weeks

Connect TikTok, call one endpoint, and we run the TikTok Content Posting API plumbing behind it.

Step 01

Connect the account

Link it once from the Accounts page through its official login. The credential is stored encrypted.

Step 02

POST /v1/posts

Send one caption and the platform id. Add schedule_at to queue it, or media for a URL.

Step 03

We handle the rest

Container flows, token refresh, rate limits, and the real post id — all on our side.

Straight talk: The Content Posting API requires an app audit before public posting. Until it clears, posts go out private (SELF_ONLY) to the creator — we set that automatically so nothing posts publicly by accident.

One API, eleven more

TikTok is one entry in the same array

Add another id to platforms and the identical call posts there too. One request already covers TikTok, Instagram, and YouTube — no second integration.

See all twelve networks
TikTok API FAQ

The honest answers

What's real, what needs review, and what TikTok itself requires — no hand-waving.

Is this the official TikTok API?

Yes — the TikTok Content Posting API with the video.publish scope.

Can I post publicly?

Direct public posting unlocks after TikTok's app audit. Before that, the API only allows private (SELF_ONLY) posts to the creator's own account — a TikTok rule, not ours.

How is the video sent?

Via PULL_FROM_URL: you host the file and pass its URL as media; TikTok fetches it. Hosting uploaded files is the one prerequisite.

Can I schedule?

Yes — schedule_at queues it and we run the init/upload/poll flow when it fires.

Ready to post your ish everywhere?

Connect your accounts, write one caption, and be live on every feed in minutes. The free plan is genuinely free.