Guide

How to Post to Multiple Social Media at Once

If you manage content for a brand, agency or personal project, you already know the pain of uploading the same video or image to each platform one by one. This guide shows you how to publish to TikTok, Instagram, YouTube, LinkedIn and 7 more platforms with a single API call.

Why posting one by one is costing you time

Think about what happens every time you finish editing a video. You open TikTok, upload, write a caption, pick a cover. Then you do the same thing on Instagram. Then YouTube. Then LinkedIn. Before you know it, 30 minutes have gone by and you haven't done any actual creative work.

The math gets worse when you manage multiple brands. Five clients with ten platforms each means fifty manual uploads per piece of content. That's not sustainable, and it's exactly the problem that a social media API solves.

What you'll need before starting

  • An Upload-Post account (the free plan includes 10 uploads per month)
  • Your API key, which you can generate from the API Keys dashboard
  • At least one social media account connected through your Upload-Post profile
  • A video or image file ready to publish

Step 1: Create your account and connect platforms

Head over to app.upload-post.com and create a free account. No credit card needed. Once you're in, go to User Management and create a profile. Think of a profile as a container that groups all the social accounts for one brand or client.

From that profile, connect the platforms you want. Upload-Post currently supports TikTok, Instagram, YouTube, LinkedIn, Facebook, X (Twitter), Threads, Pinterest, Reddit and Bluesky. You can connect all ten or just the ones that matter for your workflow.

Step 2: Get your API key

Navigate to API Keys in the dashboard and generate a new key. Copy it somewhere safe because you'll use it in every API request as your authentication header. The format is simple:

Authorization: Apikey your-api-key-here

Step 3: Send one request, publish everywhere

This is where the magic happens. Instead of uploading separately to each platform, you make a single POST request to the /api/upload endpoint and pass multiple platform[] parameters. The API handles the rest: format conversion, aspect ratio adaptation, caption length limits, everything.

cURL example

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Check out our latest product launch" \
  -F "platform[]=tiktok" \
  -F "platform[]=instagram" \
  -F "platform[]=youtube" \
  -F "platform[]=linkedin" \
  -F "platform[]=facebook" \
  -F "platform[]=threads"

That's it. Six platforms, one command. You can add up to all ten supported platforms in the same request.

Python example

from upload_post import UploadPostClient

client = UploadPostClient(api_key="your-api-key-here")

response = client.upload_video(
    video_path="/path/to/my-video.mp4",
    title="Check out our latest product launch",
    user="mybrand",
    platforms=["tiktok", "instagram", "youtube", "linkedin"]
)

for platform, result in response["results"].items():
    if result["success"]:
        print(f"{platform}: {result['url']}")
    else:
        print(f"{platform}: failed")

You can install the Python SDK with pip install upload-post. There's also a JavaScript SDK available through npm.

Node.js example

import { UploadPost } from 'upload-post';

const uploader = new UploadPost('your-api-key-here');

const result = await uploader.upload('/path/to/my-video.mp4', {
    title: 'Check out our latest product launch',
    user: 'mybrand',
    platforms: ['tiktok', 'instagram', 'youtube', 'linkedin', 'threads']
});

console.log(result);

Step 4: Understanding the API response

After the upload completes, the API returns a JSON response with individual results for each platform. This way you can confirm which posts went live and get direct links to them.

{
  "success": true,
  "results": {
    "tiktok": {
      "success": true,
      "url": "https://www.tiktok.com/@yourbrand/video/123..."
    },
    "instagram": {
      "success": true,
      "url": "https://www.instagram.com/p/ABC..."
    },
    "youtube": {
      "success": true,
      "url": "https://youtube.com/shorts/XYZ..."
    }
  },
  "usage": {
    "count": 12,
    "limit": 100,
    "last_reset": "2025-09-01T10:00:00.000Z"
  }
}

Platform specific options you should know about

While the basic request works for most cases, each platform has specific parameters you can use to fine tune your posts. Here are the most useful ones:

Platform Useful parameters Notes
TikTokprivacy_level, tiktok_titleMax 15 videos per day per account
Instagrammedia_type (REELS/STORIES), collaboratorsMax 50 uploads per day
YouTubetags[], privacyStatus, thumbnailShorts auto-detected for videos under 60s
LinkedInvisibility, target_linkedin_page_idCan post to personal profile or company page
Facebookfacebook_page_id (required), facebook_media_typeRequires a connected Facebook Page
Pinterestpinterest_board_id (required), pinterest_linkBoard ID is mandatory for every pin

Check the full API reference for every available parameter on each platform.

Want to skip the code? Use n8n or Make.com

If you're not a developer, you can still post to all your platforms at once using visual automation tools. Upload-Post has official integrations with the most popular ones:

  • n8n has an official Upload-Post community node. You can trigger a workflow from Google Drive, Dropbox or any source and publish to all platforms automatically. There are also ready made templates you can import in one click.
  • Make.com (formerly Integromat) works great with the HTTP module and multipart form data.
  • Zapier can connect your favorite tools to Upload-Post for fully automated publishing.

Posting photos and carousels to multiple platforms

Videos aren't the only content type you can distribute. The /api/upload_photos endpoint lets you publish images and carousels across platforms in the same way. Just swap the video parameter for photos[]:

curl -X POST https://api.upload-post.com/api/upload_photos \
  -H "Authorization: Apikey your-api-key-here" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "user=mybrand" \
  -F "title=Our new collection" \
  -F "platform[]=instagram" \
  -F "platform[]=tiktok" \
  -F "platform[]=linkedin"

Instagram will create a carousel post, TikTok will turn them into a slideshow, and LinkedIn will display them as a multi-image post. Each platform gets the format that works best for its audience.

Adding a first comment automatically

A common strategy on Instagram and TikTok is to put hashtags or a call to action in the first comment instead of the caption. You can do this automatically by adding the first_comment parameter to your request:

-F "first_comment=#marketing #socialmedia #contentcreator Follow for more!"

This works on Instagram, Facebook, Threads, Bluesky, Reddit, X and YouTube. You can even set different comments per platform using parameters like instagram_first_comment or x_first_comment.

Character limits to keep in mind

When you're posting the same caption to multiple platforms, remember that each one has different character limits. Here are the main ones:

Platform Caption limit
X (Standard)280 characters
Bluesky300 characters
Threads500 characters
Pinterest500 characters
Instagram2,200 characters
TikTok2,200 characters
LinkedIn3,000 characters
YouTube5,000 characters
Facebook63,206 characters

You can use platform specific title parameters (like tiktok_title, youtube_title, etc.) to set a different caption for each platform if needed. Our character counter tool can help you check limits before posting.

Async uploads for large files

If your video is large or you're posting to many platforms, the request might take a while. You can add async_upload=true to get an immediate response with a request_id, then poll the status later:

curl https://api.upload-post.com/api/uploadposts/status?request_id=abc123 \
  -H "Authorization: Apikey your-api-key-here"

You can also set up webhooks to get notified automatically when each platform upload finishes.

Frequently asked questions

Does posting to all platforms at once hurt my reach or engagement?

No. Upload-Post uses each platform's official API and OAuth authentication. The platforms see your content as a regular post. There are no rotating IPs, no bots, no workarounds. Your views and engagement stay exactly the same as if you uploaded manually.

Can I customize the caption for each platform?

Yes. The title parameter sets the default caption for all platforms. But you can override it per platform using tiktok_title, instagram_title, youtube_title, linkedin_title, and so on. This is perfect when you want longer descriptions on YouTube and shorter ones on TikTok.

What video formats work?

MP4 with H.264 encoding works on every platform. If your file uses a different codec, Upload-Post will transcode it automatically. You can also process videos beforehand using our built in FFmpeg editor.

How much does this cost?

There's a free plan with 10 uploads per month. Paid plans start at $16/month (billed annually) and include unlimited uploads. That's a fraction of what tools like Buffer or Hootsuite charge, especially when you factor in the per-channel pricing those tools use.

Stop uploading one platform at a time

Create a free account, connect your social profiles, and start posting to all platforms with a single API call. Takes about 5 minutes to set up.

No credit card required. 10 free uploads included.