TikTok Posting API
Post and schedule TikTok videos with one API call
Send a video URL and a caption to POST /v1/posts; postpeg checks it against TikTok’s rules, uploads it, and reports back when it’s live.
curl https://api.postpeg.com/v1/posts \
-H "Authorization: Bearer $POSTPEG_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: latte-art-2026-10-02" \
-d '{
"content": "Latte art in 30 seconds, from pour to heart. #coffee #latteart",
"media": [
{
"url": "https://example.com/latte-art.mp4",
"type": "video"
}
],
"account_ids": [
"acc_mfz22d1q5w8e2r6t0y4u7i3o9s"
],
"scheduled_at": "2026-10-02T17:00:00Z",
"platform_options": {
"tiktok": {
"privacy": "public",
"allow_stitch": true,
"brand_organic": true
}
}
}'What the TikTok posting API handles
- Checked before it’s sent. TikTok takes 1 video, or a photo post of up to 35 images, and captions up to 2,200 characters. A post that breaks a rule is refused with every problem listed, and nothing is uploaded.
- Photo carousels.
POST /v1/tiktok/carouselsmakes the slides, caption and hashtags; itsmediagoes straight intoPOST /v1/postsas a photo post. TikTok fetches photos only from postpeg’s verified media address, so photo posts use a carousel’s slides or files uploaded to postpeg, as JPEG or WebP. - Now or scheduled. Leave out
scheduled_atto post now, or set it up to a year ahead. Cancel until it goes out. - TikTok’s own options. Privacy, comments, duet and stitch, and the commercial content disclosures (your brand, branded content, AI-generated), in
platform_options.tiktok. The allowed privacy levels come fromGET /v1/accounts/{id}/tiktok/creator-info. - Retries without duplicates. A bad minute at TikTok is retried with backoff; a post that may already be live is marked failed, never sent twice.
- Analytics. Views, likes, comments and shares per post through
GET /v1/posts/{id}/analytics, where TikTok grants access.
Connecting a TikTok account
Create a connect link with POST /v1/accounts/connect and send the account’s owner to it. They approve access on TikTok’s own screen; your app never sees their password. Accounts connected through postpeg count toward your plan (3 on the trial). See profiles and accounts.
Post, then find out if it worked
Add inspired_by (the TikTok video you learned from) and niche_id to a post, and postpeg measures it at 24 hours and 7 days against that niche’s week: GET /v1/posts/{id}/benchmark says which percentile it reached. See TikTok competitor analysis for where the ideas come from.
Questions
- Is this TikTok’s official Content Posting API?
- Yes. postpeg posts through TikTok’s Content Posting API. You call one postpeg endpoint instead of handling TikTok’s upload, status polling and token refresh yourself.
- Can I post photo carousels to TikTok?
- Yes. Send up to 35 images (never mixed with a video) and postpeg makes a TikTok photo post. TikTok fetches the images from postpeg’s verified media address, so use a carousel’s slides from
POST /v1/tiktok/carouselsor files uploaded to postpeg, as JPEG or WebP. A video is one file, sent by public https URL. - Which privacy settings can I use?
platform_options.tiktok.privacytakespublic,friends,followersorprivate, and defaults topublic. It must be one the creator’s account allows, whichGET /v1/accounts/{id}/tiktok/creator-inforeturns.- Can the same request post to Instagram or YouTube too?
- Yes, if you add your own Zernio key: other networks run on your Zernio account (its first 2 accounts are free). The same request then goes to all of them.
More for TikTok
Send your first post in a few minutes
The 7-day trial has every feature and 3 connected accounts, with no card. It also posts to Instagram, YouTube, LinkedIn and more through your own Zernio account (its first 2 accounts are free). On TikTok, postpeg also shows what’s working in your niche: TikTok growth.