Platform guide · Short-form video
TikTok
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.
At a glance
| API | TikTok Content Posting API |
| Connection | OAuth — supply an access token |
| Formats | Video, Story |
| Character limit | 2,200 |
| Media | Supported — pass a public URL |
Connect TikTok
TikTok connects over OAuth. Complete the network’s OAuth to mint an access token, then connect TikTok from the dashboard’s Accounts page. These are the fields it needs:
| Field | Send as | Required | Where to find it |
|---|---|---|---|
| Access tokensecret | accessToken | Required | video.publish scope |
Everything marked secret is sealed with AES-256-GCM before storage — see Connecting accounts.
Publish to TikTok
Once connected, TikTok is just another id in your platforms array. One call publishes:
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"]}'The same request can fan out to Instagram, YouTube and more — add their ids to the array. See Publish everywhere at once.
What you can do
- 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.
Setup & review
FAQ
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.