7 day free trial →
PostEverywhere
PostEverywhere Logo
Pricing
Features
Social Media Management

All-in-one platform for every workflow

Social Media Scheduler

Schedule to 8 platforms from one dashboard

Content Calendar

Visual drag-and-drop content planner

Publishing

Create and distribute across platforms

Automation

Auto-post at optimal times with AI

AI Content Generator

Generate captions, images & videos

AI Image Generator

Create visuals from text prompts

Analytics

Track performance across platforms

Multi-Account

Manage up to 40 accounts

Bulk Scheduling

Upload CSV & schedule hundreds of posts

Platforms
Instagram

Posts, Reels, Stories & Carousels

LinkedIn

Profiles & company pages

TikTok

Videos & photo carousels

Facebook

Pages, groups & Reels

X

Posts, threads & media

YouTube

Videos, Shorts & community

Threads

Text posts & media

Pinterest

Pins & idea pins

API Docs
Resources
Blog

Social media tips and strategies

Free Tools

30+ free social media utilities

AI Models

Browse 50+ AI image & video models

How‑To Guides

Step-by-step tutorials

Support

Help center & contact

For Agencies

Multi-client management at scale

For Creators

Grow your audience everywhere

Join with GoogleStart 7-day free trial
Pricing
Features
  • Social Media Management
  • Social Media Scheduler
  • Content Calendar
  • Publishing
  • Automation
  • AI Content Generator
  • AI Image Generator
  • Analytics
  • Multi-Account
  • Bulk Scheduling
Platforms
  • Instagram
  • LinkedIn
  • TikTok
  • Facebook
  • X
  • YouTube
  • Threads
  • Pinterest
API Docs
Resources
  • Blog
  • Free Tools
  • AI Models
  • How‑To Guides
  • Support
  • For Agencies
  • For Creators
Log in
DevelopersTikTok

How to Post to TikTok via API (2026 Guide)

Jamie Partridge
Jamie Partridge
Founder·April 13, 2026·Updated April 13, 2026·14 min read
How to post to TikTok via API developer guide

TikTok's Content Posting API lets you upload and publish videos programmatically. On paper, that sounds simple. In practice, it is one of the most restrictive social media APIs available — strict app review, a two-step chunked upload flow, no native scheduling, and rate limits that can stall a production pipeline.

This guide walks through both options for posting to TikTok via API: the native Content Posting API and PostEverywhere's unified social media scheduling API. You will get working code examples, a clear picture of the approval process, and an honest comparison so you can pick the right path for your project.

Table of Contents

  1. Why TikTok's API Is Different
  2. Option 1: TikTok Content Posting API (Native)
  3. Option 2: PostEverywhere API
  4. Side-by-Side Comparison
  5. TikTok API Approval Process
  6. Rate Limits and Quotas
  7. Common Pitfalls
  8. FAQs

Why TikTok's API Is Different

Most social platforms — Instagram, LinkedIn, Facebook — let you publish content through a relatively straightforward API call. You authenticate, send a POST request with your media and caption, and the platform publishes it.

TikTok does not work that way. The Content Posting API is intentionally locked down:

  • Video only. No photo carousels, no text posts through the API. If you need to post images, you are out of luck unless you convert them to video first.
  • Two-step upload. You first initialise an upload to get a URL, then send your video in chunks, then trigger the publish. Three round trips minimum.
  • No scheduling. The API publishes immediately or creates a draft. There is no scheduled_publish_time parameter — that is a feature TikTok reserves for its own creator tools.
  • Strict app review. Every app that wants Content Posting access must go through TikTok's manual review. This takes days to weeks.
  • Privacy settings are mandatory. Every publish request must include a privacy level, disclosure settings for branded content, and comment control preferences.

If you are building a tool that posts to multiple platforms, TikTok is the one that will slow you down the most.

Option 1: TikTok Content Posting API (Native)

Prerequisites

Before you write a single line of code, you need:

  1. A TikTok Developer account — Register at developers.tiktok.com.
  2. An approved app with Content Posting scope — Create an app and request the video.publish and video.upload scopes. This triggers a manual review.
  3. OAuth 2.0 tokens — TikTok uses the authorization code flow. Your user must grant permission through TikTok's consent screen. Tokens expire after 24 hours; refresh tokens last 365 days.

Authentication Flow

TikTok uses a standard OAuth 2.0 authorization code grant:

  1. Redirect the user to https://www.tiktok.com/v2/auth/authorize/ with your client_key, scope, and redirect_uri.
  2. The user approves your app. TikTok redirects back to your URI with a code parameter.
  3. Exchange the code for an access token by calling https://open.tiktokapis.com/v2/oauth/token/.

The access token is what you include in every subsequent API call. Store it securely — and build token refresh logic from day one. If your access token expires mid-upload, the whole operation fails.

Step 1: Initialise the Upload

The first call tells TikTok you want to upload a video. You specify the file size and how you want to upload (chunked or direct from URL):

curl -X POST 'https://open.tiktokapis.com/v2/post/publish/inbox/video/init/' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json; charset=UTF-8' \
  -d '{
    "source_info": {
      "source": "FILE_UPLOAD",
      "video_size": 52428800,
      "chunk_size": 10485760,
      "total_chunk_count": 5
    }
  }'

TikTok responds with a publish_id and an upload_url. You will need both.

Step 2: Upload Video Chunks

Split your video into chunks of the size you specified, then upload each one sequentially:

curl -X PUT 'UPLOAD_URL_FROM_STEP_1' \
  -H 'Content-Range: bytes 0-10485759/52428800' \
  -H 'Content-Type: video/mp4' \
  --data-binary @chunk_001.mp4

Repeat for each chunk, incrementing the Content-Range header. If any chunk fails, you need to retry that specific chunk — TikTok does not support resumable uploads across sessions.

Step 3: Publish the Video

Once all chunks are uploaded, trigger the actual publish:

curl -X POST 'https://open.tiktokapis.com/v2/post/publish/video/init/' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json; charset=UTF-8' \
  -d '{
    "post_info": {
      "title": "Your video caption goes here #hashtag",
      "privacy_level": "PUBLIC_TO_EVERYONE",
      "disable_duet": false,
      "disable_comment": false,
      "disable_stitch": false,
      "video_cover_timestamp_ms": 1000
    },
    "source_info": {
      "source": "FILE_UPLOAD",
      "video_size": 52428800,
      "chunk_size": 10485760,
      "total_chunk_count": 5
    }
  }'

The privacy_level field is required. Your options are PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, or SELF_ONLY. If you omit it, the request fails.

What You Cannot Do with the Native API

  • Schedule posts for a future time. There is no scheduling parameter. You either publish now or create a draft.
  • Post photos or carousels. The Content Posting API is video-only.
  • Post to multiple accounts in one call. Each request targets a single authenticated user.
  • Edit after publishing. Once published, you cannot update the caption, privacy settings, or cover image through the API.

If you need TikTok scheduling, you will need to build a queue on your side and trigger publishes at the right time — or use a tool that handles it for you.

Option 2: PostEverywhere API

PostEverywhere's developer API wraps TikTok's Content Posting API (and seven other platforms) behind a single endpoint. You do not deal with chunked uploads, token refresh, or privacy setting requirements — the API handles all of that internally.

One Request to Publish

curl -X POST https://api.posteverywhere.com/v1/posts \
  -H "Authorization: Bearer YOUR_PE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["tiktok"],
    "content": "Your video caption goes here #hashtag",
    "media_url": "https://your-cdn.com/video.mp4",
    "publish_at": "2026-04-15T14:00:00Z"
  }'

Five lines. No chunked uploads, no privacy level boilerplate, no separate initialise-and-publish steps.

What This Gives You Over the Native API

  • Scheduling. Set publish_at to any future time. PostEverywhere queues the video and publishes it when the time comes. TikTok's native API does not support this at all.
  • Multi-platform publishing. Change "platforms": ["tiktok"] to "platforms": ["tiktok", "instagram", "youtube"] and post the same video everywhere from one request.
  • Automatic chunked uploads. Pass a media_url and PostEverywhere handles the download, chunking, and upload to TikTok's servers.
  • Token management. Connect TikTok accounts once through PostEverywhere's OAuth flow. The API handles token refresh automatically.
  • Webhook callbacks. Get notified when your post publishes successfully or fails, so you can build reliable workflows without polling.

Building a TikTok integration? PostEverywhere's developer API handles chunked uploads, token refresh, and scheduling — so you can ship in hours instead of weeks. Get your API key →

Scheduling a TikTok Post

The native TikTok API has no scheduling. With PostEverywhere, you add a single field:

curl -X POST https://api.posteverywhere.com/v1/posts \
  -H "Authorization: Bearer YOUR_PE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platforms": ["tiktok"],
    "content": "Scheduled TikTok video #automation",
    "media_url": "https://your-cdn.com/video.mp4",
    "publish_at": "2026-04-20T18:30:00Z"
  }'

The API returns a post_id you can use to check status, reschedule, or cancel before it publishes. If you are already scheduling TikToks through the PostEverywhere dashboard, the API works the same way — just programmatic.

Side-by-Side Comparison

Feature TikTok Native API PostEverywhere API
Authentication OAuth 2.0 per user, 24h token expiry API key, tokens managed internally
Upload flow Chunked upload (3+ API calls) Single request with media_url
Scheduling Not supported publish_at parameter
Multi-platform TikTok only 8 platforms in one request
App review required Yes (days to weeks) No — connect accounts via OAuth
Privacy settings Required in every request Handled automatically
Rate limits Varies by scope and approval tier Included with plan
Webhook callbacks Polling only Native webhook support
Photo/carousel posts Not supported Supported (platform-dependent)
Cost Free (after approval) Starts at $19/mo

If you need full control over TikTok's API and you are only posting to TikTok, the native API is free and capable. If you are building a product that publishes to multiple platforms, or you need scheduling, or you want to skip the approval process, PostEverywhere's API is the faster path. Check the full API documentation for endpoint details.

TikTok API Approval Process

This is the part that catches most developers off guard. You cannot just create a TikTok app and start posting. Here is what the approval process actually looks like:

Step 1: Create a Developer Account

Go to developers.tiktok.com and register. This is instant — no approval needed for the account itself.

Step 2: Create an App

In the developer portal, create a new app. You will need to specify:

  • App name and description
  • Platform (web, iOS, Android)
  • Redirect URIs for OAuth
  • Which scopes you need (select video.publish and video.upload for posting)

Step 3: Submit for Review

Once you request the Content Posting scopes, your app enters TikTok's manual review queue. You will need to provide:

  • A demo video or screenshots showing how your app uses the API
  • A privacy policy URL — TikTok requires this for all apps
  • A terms of service URL
  • A detailed description of your use case — vague descriptions get rejected

How Long Does Approval Take?

Based on developer reports and TikTok's own documentation:

  • Best case: 3-5 business days
  • Typical: 1-2 weeks
  • If you get rejected and resubmit: Add another 1-2 weeks per round

TikTok does not offer an expedited review track. There is no way to pay for faster approval.

Common Rejection Reasons

  • Vague use case description. "Social media management tool" is not specific enough. Explain exactly which users will post, how often, and why they need API access.
  • Missing privacy policy. A placeholder page will not pass review. You need a real privacy policy that mentions TikTok data handling.
  • Requesting unnecessary scopes. Only request the scopes you actually need. Requesting user.info.basic alongside video.publish when you do not use profile data raises flags.
  • No demo. TikTok wants to see your app working (even with mock data). A Loom video walkthrough is usually enough.
  • Branded content without disclosure. If your app posts sponsored content, you need to show how you handle TikTok's branded content disclosure requirements.

Sandbox Mode

While your app is in review, you can use TikTok's sandbox environment for testing. Sandbox mode lets you make API calls against test accounts, but posts are never actually published. This is useful for building your integration while you wait for approval.

Rate Limits and Quotas

TikTok's API rate limits depend on your app's approval tier and the specific endpoint:

  • Content Posting: Most apps are limited to publishing a certain number of videos per day per user. TikTok does not publish exact numbers publicly — they are assigned during the review process based on your stated use case.
  • Token endpoints: Standard OAuth rate limits apply. Do not call the token refresh endpoint in a tight loop.
  • Upload endpoints: Large file uploads consume bandwidth quotas. TikTok may throttle uploads if you are sending many large videos in rapid succession.

The practical limits for most approved apps:

  • A handful of video publishes per user per day is typical for newly approved apps
  • Higher limits are available but require justification during review
  • Exceeding limits returns a 429 Too Many Requests response with a retry-after header

With PostEverywhere's API, rate limits are managed at the platform level. The API queues requests and distributes them within safe limits so you do not need to build backoff logic yourself. See the API docs for specifics on request quotas per plan.

Common Pitfalls

After working with TikTok's API and hearing from developers building integrations, these are the issues that come up most:

1. Forgetting Privacy Settings

Every publish request must include privacy_level. There is no default. If you omit it, the API returns an error. This is unlike most social APIs where content defaults to public.

2. Token Expiry Mid-Upload

TikTok access tokens expire after 24 hours. If you initialise an upload, wait, then try to publish chunks the next day, the token is dead. Build token refresh into your upload pipeline — not just your authentication flow.

3. Video Format Requirements

TikTok is strict about video specs:

  • Format: MP4 or WebM
  • Max file size: 4 GB
  • Max duration: 10 minutes for most accounts (60 minutes for some)
  • Min resolution: 720p recommended, 360p minimum
  • Aspect ratio: 9:16 (vertical) performs best, but 16:9 and 1:1 are accepted

If your video does not meet these requirements, the upload succeeds but the publish fails — with an unhelpful error message.

4. No Edit After Publish

Once a video is published through the API, you cannot update the caption, change the cover image, or modify privacy settings. If something is wrong, your only option is to delete and re-upload. Build a preview/confirmation step into your workflow.

5. Chunk Upload Ordering

Chunks must be uploaded in order, and each chunk must complete before the next one starts. Parallel chunk uploads are not supported. If you are uploading a large video, this means the upload step is inherently sequential and can be slow on high-latency connections.

6. Branded Content Disclosure

If the video is a paid partnership or sponsored content, you must set the brand_content_toggle and brand_organic_toggle fields in your publish request. Failing to disclose branded content violates TikTok's policies and can get your app's API access revoked.

Skip the complexity. PostEverywhere's API handles TikTok's chunked uploads, privacy defaults, and token refresh behind a single endpoint. Start your 7-day free trial — no credit card required.

7. Webhook vs. Polling for Status

TikTok's API does not push publish status to you. After triggering a publish, you need to poll the status endpoint to know if the video went live, failed processing, or is still in review. Build polling with exponential backoff — checking every second will hit rate limits fast.

FAQs

Can I schedule TikTok posts through the API?

Not through TikTok's native Content Posting API. There is no scheduled_publish_time parameter — you can only publish immediately or save as a draft. To schedule, you need to build your own queue and trigger publishes at the right time, or use a third-party API like PostEverywhere that supports scheduling natively.

How long does TikTok API approval take?

Typically 1-2 weeks for the initial review. If your app gets rejected, each resubmission adds another 1-2 weeks. The fastest approvals (3-5 business days) go to apps with clear use cases, complete documentation, and a working demo.

Can I post photos or carousels to TikTok via API?

No. TikTok's Content Posting API only supports video uploads. If you need to post photo carousels (which TikTok supports in the app), there is currently no API endpoint for that. This is a known limitation that TikTok has not addressed publicly.

What happens if my TikTok access token expires?

The access token expires after 24 hours. Use the refresh token (valid for 365 days) to get a new access token. If the refresh token also expires, the user must re-authorize your app through the OAuth flow. Always implement proactive token refresh — do not wait for a 401 error.

Can I post to multiple TikTok accounts with one API app?

Yes, but each account must independently authorize your app through the OAuth consent screen. Each account gets its own access token and refresh token. There is no admin or agency-level token that covers multiple accounts.

Is the TikTok API free?

Yes, there is no cost for using TikTok's Content Posting API once your app is approved. The cost is developer time — building and maintaining the integration, handling token management, chunked uploads, and error recovery. If you value shipping speed, a unified API that abstracts the complexity can be worth the subscription cost.

What are the video size and duration limits?

Maximum file size is 4 GB. Maximum duration is 10 minutes for most accounts, though some creator accounts can upload up to 60 minutes. Minimum recommended resolution is 720p. Supported formats are MP4 and WebM.

How do I handle TikTok API errors?

TikTok returns standard HTTP status codes with JSON error bodies. Common errors include invalid_token (refresh your token), rate_limit_exceeded (back off and retry), and video_processing_failed (check your video format). Always log the full error response — TikTok's error messages are sometimes vague, and having the raw response helps when debugging.

Wrap Up

TikTok's Content Posting API works. It is also the most involved social media publishing API you will integrate with. The chunked upload flow, mandatory privacy settings, token management, and manual app review process add up to real engineering time — especially if TikTok is just one of several platforms you need to support.

If you are building a TikTok-only tool and you want full control, the native API is the right choice. Learn the quirks, build robust error handling, and budget time for the approval process.

If you are building something that posts to TikTok alongside Instagram, LinkedIn, YouTube, or other platforms — or you need scheduling, which TikTok's API simply does not offer — PostEverywhere's developer API handles the complexity so you can focus on your product.

Either way, you now have everything you need to get started. Pick the option that fits your use case and build something worth posting.

Explore the PostEverywhere API documentation →

Jamie Partridge
Written by Jamie Partridge

Founder & CEO of PostEverywhere. Writing about social media strategy, publishing workflows, and analytics that help brands grow faster.

Contents

  • Table of Contents
  • Why TikTok's API Is Different
  • Option 1: TikTok Content Posting API (Native)
  • Option 2: PostEverywhere API
  • Side-by-Side Comparison
  • TikTok API Approval Process
  • Rate Limits and Quotas
  • Common Pitfalls
  • FAQs
  • Wrap Up

Related

  • Social Media Scheduling API: The Complete Developer Guide
  • How to Schedule Instagram Posts with an API (2026 Guide)
  • How to Schedule LinkedIn Posts with an API (2026 Guide)
  • How to Schedule TikToks in 2026 (Without Shadowbans)

Related Articles

Developers

Social Media Scheduling API: The Complete Developer Guide

Everything you need to know about social media scheduling APIs — how they work, which platforms support them, rate limits, and how to build your own scheduling workflow.

March 23, 2026·25 min read
Developers

How to Schedule Instagram Posts with an API (2026 Guide)

Learn how to schedule Instagram posts programmatically using the Instagram Graph API or a unified scheduling API. Includes cURL examples, rate limits, and a side-by-side comparison.

April 13, 2026·15 min read
Developers

How to Schedule LinkedIn Posts with an API (2026 Guide)

LinkedIn's API is one of the most restrictive in social media. This guide covers both the native LinkedIn API and a simpler alternative — with code examples, approval tips, and gotchas.

April 13, 2026·15 min read
TikTok

How to Schedule TikToks in 2026 (Without Shadowbans)

Yes—you can schedule TikToks. Learn how to schedule TikTok videos from desktop using TikTok Studio's free scheduler or a faster third-party tool, plus the best times and common pitfalls to avoid.

October 26, 2025·26 min read
Tools

9 Best TikTok Schedulers in 2026 (I Tested Them All)

I tested 9 TikTok scheduling tools for auto-publishing, analytics, and ease of use. Here are the best TikTok schedulers with honest pricing, real pros and cons, and who each tool is actually for.

April 10, 2026·15 min read

Ready to Transform Your Social Media Strategy?

Try PostEverywhere to streamline your social media management. Our powerful platform helps you schedule, analyze, and optimize your social media presence across all platforms.

Start Free TrialExplore Our Features

Footer

PostEverywhere

The all-in-one platform for social media management and growth. Built for marketing teams in the US, UK, Canada, Australia & Europe.

XLinkedInInstagram
ToolPilot

Product

  • Features
  • Platforms
  • Industries
  • Small Business
  • Pricing
  • Developers
  • Resources

Features

  • Social Media Scheduling
  • Calendar View
  • AI Content Generator
  • AI Image Generator
  • Best Time to Post
  • Cross-Posting
  • Multi-Account Management
  • Workspaces
  • Bulk Scheduling
  • Agents
  • Campaign Management
  • Analytics

Integrations

  • Instagram Integration
  • LinkedIn Integration
  • TikTok Integration
  • Facebook Integration
  • X Integration
  • YouTube Integration
  • Threads Integration
  • Pinterest Integration

Resources

  • Resources Hub
  • How-To Guides
  • Blog
  • API Docs
  • Help

Free Tools

  • Post Previewer
  • Viral Score Predictor
  • Engagement Calculator
  • Content Repurposer
  • 30-Day Content Generator
  • Grid Previewer
  • Viral Hook Generator
  • Hashtag Generator
  • Character Counter
  • UTM Link Builder

Company

  • Contact
  • Privacy
  • Terms

© 2026 PostEverywhere. All rights reserved.