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.

Code editor showing a POST request to the AdaptlyPost social-posts endpoint publishing a TikTok video with privacyLevel set

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.

Manage

Post to All Your Platforms at Once

Share to Instagram, TikTok, YouTube, X, and more with one click. Each post auto-adapts to fit the platform.

Schedule

Visual Content Calendar

The AdaptlyPost calendar shows every draft, scheduled, and published post by day, so your posting slots stay filled.

Measure

Social Media Analytics in One Place

AdaptlyPost tracks views, likes, shares, and engagement for every connected account in one analytics dashboard.

Integrate

API Access & OpenClaw Skill

Connect via API or let your OpenClaw AI agent manage posts for you. Automate social media with natural language commands.

Generate

AI Image Generator for Social Media

Generate scroll-stopping images in seconds. Just describe your vision and let AI bring it to life.

Create

AI Caption Generator for Every Platform

The AdaptlyPost AI copilot writes captions, rewrites them per platform, and adds hashtags from a single prompt.

Organize

Social Media Content Planner

AdaptlyPost keeps drafts, scheduled posts, and published content in one queue, so you see what goes live and when.

Trusted by Creators and Teams

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

Running 11 accounts across 8 platforms with almost zero friction

I am currently running 11 accounts spread across Facebook, Instagram, Threads, LinkedIn, Bluesky, YouTube, X, and TikTok, all connected and posting daily. Ease of use: 10/10. The learning curve is basically nonexistent. Scheduling posts across multiple platforms takes minutes instead of the hours it used to take me doing it manually. It has replaced at least two other subscriptions for me and I have zero regrets.

jeremy8939jeremy8939

Simple, powerful and amazing support

It's easy to use, and connecting it with Claude lets me organize and distribute videos and images while staying true to my brand's style. What really stands out is the support: I told Taras I needed two new features, the ability to publish Instagram posts mixing images and videos, and to upload PDFs to LinkedIn via MCP, and he had both ready in just 3 hours. Fast, responsive, and truly amazing.

destacadestaca

My Honest Experience Running My Social Media with AdaptlyPost + Claude AI

Then the part that still feels a little crazy: I told Claude to generate the full posts including images and graphics and schedule everything through AdaptlyPost. I went to my content calendar expecting to babysit the process. It was already filled. 30 days of posts, text and visuals, scheduled and ready. The whole thing took about 10 minutes. I used to lose hours every week to this.

basantkumar405basantkumar405

Finally, a tool that fits a terminal-first workflow (and top-tier support!)

I've tried several social media scheduling tools in the past, and none of them quite clicked with my workflow. Adaptly completely changed that.

mayank09mayank09

Responsive developer and a client-friendly connect link that solves a real agency pain point

My favorite feature is the Shareable Connect Link. You can generate a link so a client can connect their own social accounts, with no dashboard access required. Getting non-technical clients to hand over access to their accounts has been a constant pain point for me, and this removes most of that friction. I send a link, they click through and authorize, and I'm done.

automatexyzautomatexyz

Solid multi-account scheduler, we run 3 brands on it daily

We've been using AdaptlyPost to schedule Instagram, Facebook, LinkedIn (and Stories) across three brands. What I like most is that it stays out of the way once posts are queued. We schedule stills, carousels, and Reels/Stories in batches, review the calendar, and let it publish.

DacstyleDacstyle

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 five event types - post.published, post.failed, post.partially_failed, post.scheduled and account.unauthorized - there is no per-event subscription filtering.

Simple, Transparent Pricing

Choose the perfect plan for your needs

-17%

Creator

Perfect for individuals and solopreneurs

$19

/month

  • 30 connected social accounts

  • Unlimited scheduled posts

  • Team collaboration

  • 1 workspace

  • 150 AI credits/month

  • AI Captions

  • AI Image Studio

  • API/MCP/CLI

  • Image, video & carousel posts

  • Direct Connector

  • Direct Plugin

  • Browser extensions

Works with

Most Popular

Pro

For professionals and growing teams

$39

/month

  • 60 connected social accounts

  • Unlimited scheduled posts

  • 3 team members

  • 3 workspaces

  • 400 AI credits/month

  • AI Captions

  • AI Image Studio

  • API/MCP/CLI

  • Image, video & carousel posts

  • Direct Connector

  • Direct Plugin

  • Browser extensions

Works with

Enterprise

For agencies and enterprises ready to scale

$89

/month

  • 100 connected social accounts

  • Unlimited scheduled posts

  • 10 team members

  • 10 workspaces

  • 1000 AI credits/month

  • AI Captions

  • AI Image Studio

  • API/MCP/CLI

  • Image, video & carousel posts

  • Direct Connector

  • Direct Plugin

  • Browser extensions

Works with

Custom

Custom limits, white-label and priority support

Custom

  • Unlimited social accounts

  • Unlimited scheduled posts

  • Unlimited team members

  • Unlimited workspaces

  • Unlimited AI credits

  • AI Captions

  • AI Image Studio

  • API/MCP/CLI

  • Image, video & carousel posts

  • Direct Connector

  • Direct Plugin

  • Browser extensions

Works with

All plans include a 7-day free trial

Want to see the full feature comparison? View pricing page

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.