---
title: "Video and Photo Posts: TikTok Posting API"
description: "Publish videos and 2-35 image photo posts with the TikTok posting API. REST calls, required privacyLevel, sendAsDraft, and per-post publish status."
url: "https://adaptlypost.com/en/usages/tiktok-posting-api"
---

# Publish Videos and Photo Posts With the TikTok Posting API

One POST call to the TikTok posting API publishes a video or a 2-35 image photo post, as long as tiktokConfigs.privacyLevel is set and the media is hosted on cdn.adaptlypost.com. Base URL: https://post.adaptlypost.com/post/api/v1.

[Get an API key](https://adaptlypost.com/en/signup)

![Code editor showing a POST request to the AdaptlyPost social-posts endpoint publishing a TikTok video with privacyLevel set](https://cdn.adaptlypost.com/public/adaptlypost_dashboard.png)

### What the TikTok endpoints actually do

Video and photo posts, required privacy levels, drafts pushed to the TikTok app inbox, and per-platform publish results with the native platformPostId. One TikTok account per call - fan-out to a second account is a second call.

[ManagePost to all your platforms at onceShare to Instagram, TikTok, YouTube, X, and more with one click. Each post auto-adapts to fit the platform.](https://adaptlypost.com/en/features/post-multiple-social-media-accounts-once)

[ScheduleVisual content calendarPlan your week at a glance and never miss your best posting times.](https://adaptlypost.com/en/features/social-media-content-calendar)

[IntegrateAPI access & OpenClaw skillConnect via API or let your OpenClaw AI agent manage posts for you. Automate social media with natural language commands.](https://adaptlypost.com/en/features/openclaw-integration)

[GenerateAI image generator for social mediaGenerate scroll-stopping images in seconds. Just describe your vision and let AI bring it to life.](https://adaptlypost.com/en/features/ai-social-media-image-generator)

[CreateAI caption generator for every platformGet caption ideas, rewrite for different platforms, and add trending hashtags, all with one prompt.](https://adaptlypost.com/en/features/ai-caption-writer)

[OrganizeSocial media content plannerSee drafts, scheduled posts, and published content in one place. Know exactly what's going live and when.](https://adaptlypost.com/en/features/ai-social-media-scheduler)

## Trusted by Creators and Teams

See how creators, marketers, and small businesses use AdaptlyPost to stay consistent and save hours every week.

I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.

[![Denys Zinych](https://cdn.adaptlypost.com/public/denys.jpg)Denys ZinychSoftware Engineer](https://www.linkedin.com/in/denys-zinych-b75543287/)

I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.

[![Irena](https://cdn.adaptlypost.com/public/irena.jpg)IrenaContent Creator](https://www.instagram.com/iirennails/)

I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.

[![Dorian Opacki](https://cdn.adaptlypost.com/public/dorian.jpg)Dorian OpackiSoftware Engineer](https://www.linkedin.com/in/dorianopacki/)

I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.

[![Denys Zinych](https://cdn.adaptlypost.com/public/denys.jpg)Denys ZinychSoftware Engineer](https://www.linkedin.com/in/denys-zinych-b75543287/)

I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.

[![Irena](https://cdn.adaptlypost.com/public/irena.jpg)IrenaContent Creator](https://www.instagram.com/iirennails/)

I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.

[![Dorian Opacki](https://cdn.adaptlypost.com/public/dorian.jpg)Dorian OpackiSoftware Engineer](https://www.linkedin.com/in/dorianopacki/)

I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.

[![Denys Zinych](https://cdn.adaptlypost.com/public/denys.jpg)Denys ZinychSoftware Engineer](https://www.linkedin.com/in/denys-zinych-b75543287/)

I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.

[![Irena](https://cdn.adaptlypost.com/public/irena.jpg)IrenaContent Creator](https://www.instagram.com/iirennails/)

I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.

[![Dorian Opacki](https://cdn.adaptlypost.com/public/dorian.jpg)Dorian OpackiSoftware Engineer](https://www.linkedin.com/in/dorianopacki/)

I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.

[![Denys Kholin](https://cdn.adaptlypost.com/public/denysK.jpg)Denys KholinFreelance Designer](https://www.linkedin.com/in/denys-kholin/)

We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.

[![Taras Shynkarenko](https://cdn.adaptlypost.com/public/taras.jpg)Taras ShynkarenkoStartup Founder](https://www.linkedin.com/in/taras-shynkarenko/)

I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.

[![Denys Kholin](https://cdn.adaptlypost.com/public/denysK.jpg)Denys KholinFreelance Designer](https://www.linkedin.com/in/denys-kholin/)

We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.

[![Taras Shynkarenko](https://cdn.adaptlypost.com/public/taras.jpg)Taras ShynkarenkoStartup Founder](https://www.linkedin.com/in/taras-shynkarenko/)

I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.

[![Denys Kholin](https://cdn.adaptlypost.com/public/denysK.jpg)Denys KholinFreelance Designer](https://www.linkedin.com/in/denys-kholin/)

We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.

[![Taras Shynkarenko](https://cdn.adaptlypost.com/public/taras.jpg)Taras ShynkarenkoStartup Founder](https://www.linkedin.com/in/taras-shynkarenko/)

## How It Works

Step 1

### Get a key, then upload media to our CDN

Every call carries Authorization: Bearer <key>; mint that key under Settings > API Tokens in the dashboard, where it will start with adaptly\_. TikTok will not accept arbitrary mediaUrls: the domain allowlist only permits cdn.adaptlypost.com, so pass your file through POST /upload-urls first (1-20 presigned URLs per call, valid one hour) and post the returned URL. Accepted types are video/mp4, video/quicktime, image/jpeg, image/png and image/webp - no GIF, no HEIC.

Step 2

### POST /social-posts with tiktokConfigs

Send text (the caption field - there is no content field), platforms: \["TIKTOK"\], timezone as an IANA zone like "Europe/Berlin", the TikTok connection id from GET /social-accounts, and tiktokConfigs.privacyLevel, which is mandatory: PUBLIC\_TO\_EVERYONE, MUTUAL\_FOLLOW\_FRIENDS, FOLLOWER\_OF\_CREATOR or SELF\_ONLY. contentType TEXT is rejected outright - TikTok needs VIDEO or a CAROUSEL of 2-35 images. Video must run 3-600 seconds. The body is validated synchronously, so a missing privacyLevel, contentType TEXT, a carousel outside 2-35 images or a mediaUrl on any domain other than cdn.adaptlypost.com comes straight back as a 400 from this call - no post record is created and there is nothing to retry. Add scheduledAt to schedule, saveAsDraft to keep it in AdaptlyPost, or sendAsDraft to hand it to the creator.

Step 3

### Read the TikTok result, retry the TikTok entry

GET /social-posts/:id/results returns the TikTok row with status, publishedAt and the native platformPostId - TikTok never hands back a permalink, so build your own link from the id if you need one. This endpoint reports what TikTok did after we accepted and dispatched the post, not payload problems - those already came back as a 400 on create. So errorMessage carries platform-side failures: a revoked or expired TikTok connection, media TikTok refuses during its own processing, or TikTok throttling the account. Fix the cause and call POST /social-posts/:id/retry with the TikTok platformId. Every registered webhook endpoint receives all four event types - post.published, post.failed, post.partially\_failed and post.scheduled - there is no per-event subscription filtering.

## Simple, transparent pricing

Choose the perfect plan for your needs

### Creator

Perfect for individuals and solopreneurs

## $19

/month

[Start 7-day Trial](https://adaptlypost.com/en/signup)

* 30 connected social accounts
* Unlimited scheduled posts
* 1 team member
* 3 workspaces
* 150 credits/month
* AI Captions
* AI Image Studio
* API access & OpenClaw integration
* Image, video & carousel posts

Most Popular

### Pro

For professionals and growing teams

## $39

/month

[Start 7-day Trial](https://adaptlypost.com/en/signup)

* 60 connected social accounts
* Unlimited scheduled posts
* 5 team members
* 15 workspaces
* 400 credits/month
* AI Captions
* AI Image Studio
* API access & OpenClaw integration
* Image, video & carousel posts

### Enterprise

For agencies and enterprises ready to scale

## $89

/month

[Start 7-day Trial](https://adaptlypost.com/en/signup)

* 100 connected social accounts
* Unlimited scheduled posts
* 20 team members
* 50 workspaces
* 1000 credits/month
* AI Captions
* AI Image Studio
* API access & OpenClaw integration
* Image, video & carousel posts

All plans include a 7-day free trial

Want to see the full feature comparison? [View pricing page](https://adaptlypost.com/en/pricing)

## What you can publish to TikTok through the API

### Videos, 3 to 600 seconds

One MP4 or MOV per call, uploaded through POST /upload-urls. Publish immediately, set scheduledAt, or store it with saveAsDraft and release it later with POST /social-posts/:id/publish.

### Photo posts up to 35 images

Send contentType CAROUSEL with 2-35 JPEG, PNG or WebP images and TikTok renders a photo post. That 35-image ceiling is the highest of any network we publish to - Instagram and Facebook stop at 10, Pinterest at 5.

### privacyLevel on every request

privacyLevel is mandatory on every TikTok post. TikTok and Pinterest are the two platforms with a required config value - privacyLevel here, boardId on Pinterest. Pick PUBLIC\_TO\_EVERYONE, MUTUAL\_FOLLOW\_FRIENDS, FOLLOWER\_OF\_CREATOR or SELF\_ONLY per post; leaving tiktokConfigs off returns a 400 from POST /social-posts before anything reaches TikTok. There is no sandbox mode; SELF\_ONLY keeps a real post private to your own account.

### sendAsDraft to the TikTok app inbox

Set sendAsDraft and the post lands in the creator's TikTok inbox instead of going live, so they can add sounds, effects or text on device and hit publish themselves. Useful when your users own the account and you only supply the media and caption.

## Start posting to TikTok from your own code

Import GET /openapi.json into your client, upload a clip, and send your first TikTok post. No OAuth dance to build - accounts connect in the dashboard or through a connect link.

[Get an API key](https://adaptlypost.com/en/signup)
