Skip to main content

TikTok content publishing API

TikTok Content Publishing API for Content Teams

TikTok publishing in Wahdx Connection runs through official account flows and one content endpoint. You send a single video or a photo carousel of up to 35 images, publish immediately or schedule up to 30 days ahead, and read post status back without opening the TikTok app. This page covers what the API can and cannot do, the media specs that pass validation, the account connection options, and the metrics you can pull afterward.

What the TikTok API can do

The API covers the publishing work a content team does every day. It connects a TikTok account through an official flow, prepares a video or photo carousel, adds a caption, and sends it now or on a schedule. Status tracking then reports queued, processing, published, or failed for each post. Because TikTok sits on the same endpoint as the other four platforms, the integration code you write here carries over to Instagram, Threads, Facebook, and YouTube.

  • Video posts and photo carousels of up to 35 images.
  • Publish immediately or schedule up to 30 days ahead.
  • Queued, processing, published, and failed status per post.
  • Account analytics for followers, likes, video count, and top videos.
  • QR login for products that link TikTok accounts inside their own interface.

What the TikTok API cannot do

TikTok does not accept text-only posts, so a request without media is rejected. The API stays inside publishing: it does not read or post comments, send direct messages, or act on follows. Content that breaks platform rules is rejected by TikTok and appears as a failed post. There is no customer-registrable webhook for publish completion either, so integrations poll the status endpoints after submission. Knowing these limits before you design a feature keeps you from building something the API cannot support.

  • No text-only posts. Media is required.
  • No comment, direct message, or follow actions.
  • No webhook. Poll the status endpoints instead.
  • Content that violates platform rules returns a failed status.

Official account connection

Two paths are available. A standard TikTok login works for most integrations, and the QR login API covers products that link accounts inside their own experience. QR login requires a Professional or Maximum plan. Your backend requests a QR session, your interface shows the code, and your system polls every 2 to 3 seconds until the user confirms, the session expires, the code is used, or 5 minutes pass. Polling should stop on any non-OK response, because a non-OK reply means the session can no longer complete.

  • Standard TikTok login flow for most integrations.
  • QR login on Professional and Maximum plans.
  • Session states: new, scanned, confirmed, expired, utilised.
  • Stop polling on a non-OK response or after 5 minutes.

TikTok media requirements

Video publishing is most reliable with vertical MP4 or MOV using H.264 at 1080x1920, between 3 seconds and 10 minutes. Photo carousels accept up to 35 images and must stay photo-only; mixing stills and video in one payload is rejected. TikTok also accepts a cover frame timestamp through tiktokSettings when you want to control the thumbnail, and one post cannot mix photos with a video.

TikTok media requirements for API publishing
RequirementValue
FormatMP4 or MOV
CodecH.264 recommended
Aspect ratio9:16 vertical recommended
Resolution1080x1920 recommended
Duration3 seconds to 10 minutes
Photo carouselUp to 35 images, photo-only
Video cover framevideo_cover_timestamp_ms in tiktokSettings

Publishing limits and scheduling

Posts go out immediately or queue up to 30 days ahead. The queue runs server-side, so it keeps processing without a browser open, and scheduled content validates against the selected account before it enters the queue. Only successful publishes count toward the monthly upload quota, which means a rejected video costs a retry rather than an upload credit. Failed posts stay visible in status and can be resubmitted once the media is fixed.

Publish sequence: endpoint to endpoint

A TikTok post is three calls. List connected accounts to find the TikTok accountId. Send the post to POST /api/content/post with either one video URL or multiple image URLs, and add tiktokSettings when the post needs them. Then poll GET /api/content/status/:accountId/:publishId with the media type included until the post reaches published or failed. The same three-call shape works for every platform, which keeps the integration short.

// Video and photo carousel use the SAME endpoint:
// POST /api/content/post

const videoPayload = {
  "platform": "tiktok",
  "accountId": "CONNECTED_ACCOUNT_ID",
  "content": "Video caption",
  "mediaItems": [
    {
      "url": "https://your-domain.com/video.mp4"
    }
  ]
};

const photoCarouselPayload = {
  "platform": "tiktok",
  "accountId": "CONNECTED_ACCOUNT_ID",
  "photoTitle": "Carousel title",
  "content": "Carousel caption",
  "mediaItems": [
    {
      "url": "https://your-domain.com/photo-1.jpg"
    },
    {
      "url": "https://your-domain.com/photo-2.jpg"
    }
  ]
};

Reading metrics back

Analytics for a connected TikTok account cover followers, likes, video count, and top videos. The values come from TikTok for that account, so a metric the platform does not expose returns null rather than an estimate. Paired with the publishing analytics endpoint, you can see both how many posts you sent and how the audience responded, without blending TikTok numbers into figures from other platforms.

FAQ

Common questions about the TikTok API

Can I publish TikTok content from an API?

Yes. The API is built for server-side integrations that need controlled TikTok video and photo carousel publishing with status monitoring.

Should the API key be used in browser code?

No. API keys should stay in a trusted backend, serverless function, or private integration layer, never in browser JavaScript.

Can I schedule TikTok posts ahead of time?

Yes, up to 30 days ahead. Scheduled posts are queued and processed server-side.

What happens when a TikTok post fails?

The status endpoint reports it as failed. Failed publishes do not count toward the monthly upload quota, so you can fix the media and resubmit.