One finished video, separate results

Post to multiple social media at once

To post to multiple social media at once, connect your accounts to a publishing tool, prepare the video and caption, choose the destinations, then publish or schedule. Check each destination afterward: one submission does not mean every account is live, public or published at the same instant.

Postdom is the agent or API option for TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky. You supply the video and choose the accounts; Postdom submits the publishing work and keeps the destination results together.

How to post to multiple social media at once

  1. Choose the publishing method that fits the job

    For occasional posts, use each platform’s own editor and scheduler. For a visual workflow, choose a tool that supports your exact accounts and post types, with a preview for each destination. For an agent or backend workflow, Postdom can submit a supplied video to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky.

  2. Connect and confirm the destination accounts

    Have the account owner complete each platform’s authorization. In Postdom, check the workspace and connected accounts before choosing targets. Confirm the platform, handle and providerAccountId; an internal account ID or a guessed handle is not a substitute. Keep social passwords out of agent conversations.

  3. Finish the video before sending it

    Watch the exported file from start to finish. Check framing, readable on-screen text and whether you have permission to reuse the footage and audio on each destination. Postdom publishes the supplied video; it does not generate, crop, transcode or re-edit it. Make a separate export when a destination needs a different cut.

  4. Review the caption, audience and disclosures

    Check names, mentions, links and the call to action for each audience. The Postdom convenience helper sends the same caption to the selected accounts and derives the YouTube title from its first line. If a destination needs different wording or settings, split the submission or use a publishing method that exposes those choices.

  5. Set the time and complete any required review

    Choose a publish time only after confirming the timezone. Postdom’s publish_at is a UTC timestamp ending in Z; the same requested time applies to every target in that submission. Use separate submissions for different times. Workspace policy and human approval still apply, and provider processing can finish at different times.

  6. Keep the post ID and check every destination

    Save the returned id, then read that same post. A queued or approval-pending record is not a live post. Compare the requested targets with the destination results, including each status, error and available provider ID or URL. If one destination fails, do not resubmit the entire group and duplicate the successful posts.

Want an editor, not an agent?

Choose a visual scheduler with the destinations, previews and audience controls you need. Postdom’s Schedule page manages existing posts and recovery actions; it is not a fresh-upload composer. If you prefer the platform’s own tools, start with the guides below.

Postdom publishes to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky. Facebook Reels, X, Snapchat Spotlight, Threads, and Bluesky do not have a scheduling guide yet, so they are not linked below.

Prepare one video, but review it for each audience

Start with a finished master file. A product demo may work across the selected accounts, while a spoken “link in bio” instruction, a mention or a music choice may need a different version. Check those details before batching the posts.

Postdom’s upload size cap is 500 MiB. This is a Postdom product ceiling, not a universal native-app limit.Size limit verified 2026-08-21. Postdom upload requirements.

For the actual checks and their scope, use TikTok video dimensions, Reels size and dimensions, and Shorts length and requirements. Caption checks are separate: TikTok, Instagram and YouTube titles and descriptions.

An illustrative edit decision

Your demo ends with “Comment for the full walkthrough.” If you use the helper below, TikTok comments are off and TikTok and YouTube are private. LinkedIn is sent no settings at all - it chooses its own required visibility, which Postdom neither sets nor reads, and it carries no AI disclosure. Facebook Reels gets only the fixed Reel format; X, Snapchat Spotlight and Threads get nothing; Snapchat needs a Public Profile on the account before it can publish, Threads takes its audience from whether the profile is public or private, and every Bluesky post is public because the post record carries no visibility field. That is not the public campaign you described. Change the approved plan or choose a method with the audience and interaction controls you need before submitting.

Check who can actually see each post

The released Node SDK’s publishVideo helper and MCP’s publish_video tool use these settings. They are fixed helper defaults, not the same audience on every platform.

DestinationAudienceBefore submitting
TikTokOnly you (SELF_ONLY)AI disclosure on; comments, Duet and Stitch off. The helper sends preview and express-consent confirmations as true. A real human must preview the content and expressly consent before the call.
Instagram ReelsAccount’s audience settingsPublishes as a Reel with the AI-generated flag on. The helper does not offer a private audience override for Instagram; do not treat it as a private test destination.
YouTube ShortsPrivateSynthetic-media disclosure on; marked not made for kids. The caption’s first line becomes the title and is cut to the helper’s title limit. Review that title and the actual audience classification before submitting.
LinkedInChosen by LinkedInPostdom sends no LinkedIn-specific settings. The Posts API requires a visibility value, so one is always set — by LinkedIn, on the account’s behalf. Postdom neither chooses nor reads it, so there is nothing to select here. LinkedIn exposes no AI-disclosure field either, so no disclosure accompanies the post.
Facebook ReelsAccount’s audience settingsPublishes as a Reel. That format is the only setting Postdom sends and it is fixed, so there is nothing to choose. Facebook Reels expose no AI-disclosure field through the publishing path, so no disclosure accompanies the post — unlike Instagram, where the same Reel format does carry one.
XAccount’s audience settingsPostdom sends no X-specific settings at all. X exposes no visibility field on the publishing path and no AI-disclosure field, so nothing is selected on your behalf and nothing is disclosed. The video is a post with media attached rather than a separate surface.
Snapchat SpotlightAccount’s audience settingsPublishes to Spotlight, and needs a Public Profile on the account — you choose one while connecting, and a regular account cannot publish. Postdom sends no Snapchat-specific settings; the endpoint does expose a save-to-profile option that Postdom does not send, so this is not a destination with no options, it is one where Postdom chooses none of them.
ThreadsAccount’s audience settingsPostdom sends no Threads-specific settings. Meta’s posting endpoint exposes no visibility field and no AI-disclosure field, so nothing is selected on your behalf and no disclosure accompanies the post. Your Threads profile being public or private is what decides who sees it, and the post inherits that — it is a real audience difference, set on the account rather than per post, and Postdom neither sets nor reads it.
BlueskyPublicPostdom sends no Bluesky-specific settings, and here that genuinely means there is nothing to choose: an app.bsky.feed.post carries no visibility field at all, so every post is public. Reply gating lives in separate threadgate and postgate records rather than in the post, and Postdom writes neither. Bluesky is also the one destination you connect with an app password rather than by authorising a redirect — generate it in your Bluesky settings, not your account password.

Stop if those settings do not fit. A tool call is not a substitute for the actual preview, consent, AI disclosure or child-audience decision. These helpers do not expose overrides. For a different publication configuration, use a method that lets you select the required settings and honors the account’s policy.

See the publish tool’s settings and human approval guidance. Instagram should not be used as a private test just because the other destinations are private.

Submit with an agent or a backend

Connect the intended workspace, have a human authorize the social accounts, and supply an accepted, fetchable finished-video URL or an already-stored Postdom media handle. Review the content and the settings above before sending anything.

With an agent

Ask it to read workspace status and the brief, list the accounts, and show you the exact destinations and settings. After the required human review and consent, it can call publish_video. Have it keep the returned id, read get_publish for that ID and report every destination separately.

Connect an MCP agent

With your backend

Use publishVideo for the submission and getPost(submission.id) for a later read. Keep the request key and returned ID with your own job record. Authentication permits access; the post still has to satisfy workspace policy and any required approval.

Developer integration walkthrough

Prefer a workflow tool to writing either? The Zapier, n8n and Make guides each set out what is usable today and what is still held, so you can tell a working path from a planned one before building on it.

The example uses the private TikTok and YouTube defaults, Instagram’s account audience, and AI disclosure on TikTok, Instagram Reels and YouTube Shorts. TikTok preview and express consent must already have happened; YouTube’s not-made-for-kids setting must be accurate.

Show the Node SDK example and scheduling option

Replace every placeholder with a verified value. The example was exercised with mock responses, not an authenticated provider publication. It uses methods available in the released @postdom/sdk package; it does not show a successful live response.

import { Postdom } from "@postdom/sdk";

const postdom = new Postdom({
  apiKey: process.env.POSTDOM_API_KEY
});

// Match platform + handle, then copy providerAccountId.
// Never select every connected account automatically.
console.table(await postdom.listAccounts());

const submission = await postdom.publishVideo({
  accountIds: [
    "REPLACE_WITH_TIKTOK_PROVIDER_ID",
    "REPLACE_WITH_INSTAGRAM_PROVIDER_ID",
    "REPLACE_WITH_YOUTUBE_PROVIDER_ID"
  ],
  videoUrl: "https://media.example.com/approved-demo.mp4",
  caption: "See the finished product demo.\nWhich detail should we explain next?",
  intent: "Publish the human-reviewed demo with the confirmed settings",
  idempotencyKey: "REPLACE_WITH_STABLE_KEY_FOR_THIS_EXACT_REQUEST"
});

console.log("Save this post ID:", submission.id);
const post = await postdom.getPost(submission.id);
console.log(post.status, post.targets, post.publishes);
// If unfinished, read the same ID again later.
// Inspect every destination; do not replay the entire group.

To schedule, add publishAt with your chosen future UTC timestamp ending in Z. In MCP, the field is publish_at. Use separate submissions for different times. Confirm the original local timezone and daylight-saving offset before converting.

This example starts with an existing video source. It does not demonstrate a fresh media upload. Use the publish reference for source requirements and the result reference for returned fields.

One submission can need different next steps

For example, TikTok could finish privately, Instagram could fail, and YouTube could still be processing. That is an illustrative situation, not a captured result. Keep the original post open and inspect each destination instead of declaring the whole campaign live.

What you seeWhat to do
Waiting for approvalHave an authorized human review the exact post in Postdom. The agent cannot approve its own work; being connected does not authorize every post.
Scheduled or publishingRead the same post again within your polling budget. The requested time is not a guarantee that every provider has finished.
A missed time or a draftOpen Schedule and inspect the existing post. Available recovery actions include Publish now or Reschedule; confirm the account and UTC time before acting.
Partial successKeep the successful destination IDs and URLs. Read the failed destination’s error, correct its cause and obtain authorization for any targeted replacement. Do not replay the whole group.
Rejected or stopped by policyStop. Return the feedback or policy reason to the human and obtain fresh authorization before a new submission.
No response or uncertain submissionThe request may have reached the provider. Preserve the original request identity and reconcile its outcome before retrying; a timeout is not proof that nothing was posted.

In Postdom’s Schedule view, check the account and UTC time on the existing post before using a recovery action. “Upcoming” can include posts still waiting for approval. A returned URL or a published state also needs to be read alongside the actual audience setting; it does not by itself mean publicly visible.

After publication, compare each destination’s available metrics. An unavailable metric is not zero, and one network’s results do not establish another’s reach.

Questions before you cross-post

Can I post to all social media platforms at once?

A publishing tool can send a post to several connected accounts, but only to the platforms and formats it supports. Postdom’s destinations are TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky, using a finished video you supply. It is not a publisher for every social network or for text-only and image posts.

Can I do this for free or from my phone?

If you want to avoid a separate scheduling subscription, use each platform’s own publishing tools and check the scheduling options available to your account. That is a separate workflow per platform. On a phone, confirm that a tool supports the exact post type and whether it publishes directly or merely sends a reminder. Check Postdom’s current pricing before choosing its agent or API workflow.

Check current Postdom pricing
Will all of my posts be public?

Not with Postdom’s released convenience helpers. TikTok uses Only you, YouTube uses Private, and Instagram follows the account’s audience settings. AI disclosure is on for TikTok, Instagram Reels and YouTube Shorts; YouTube is marked not made for kids. The helper does not let you override these settings. If they do not match your content or intended audience, stop and choose a suitable publishing method.

Can I use different captions or publish times?

The convenience helper accepts one caption and one optional UTC publish time for the selected accounts. Its YouTube title comes from the caption’s first line. Use separate submissions for destination-specific captions or times, and review each submission before it runs.

What if one platform fails and the others succeed?

Keep the returned post ID and inspect each destination result. Preserve the successful posts, read the failed destination’s error and resolve its cause before authorizing a replacement for that destination. Do not send the whole group again. If the original outcome is uncertain, reconcile it before retrying.

Does posting the same video everywhere hurt reach?

There is no reach guarantee in this workflow. Reuse the video when its message, framing and audio rights fit each destination, and change the caption or edit when they do not. Compare destination-level results rather than assuming that the same file will perform the same way. An unavailable metric is not zero.

Before you cross-post

Reference for each destination

Each destination documents different limits and returns different numbers. These are the pages for the ones that have them.

TikTok

Instagram Reels

YouTube Shorts

LinkedIn

Facebook Reels

Threads

  • Threads character limitWhich figure governs a post's text and which governs a long-form attachment, and what Postdom enforces.

Bluesky

Start with a video you have already reviewed

Confirm the accounts, audience and caption first. Then submit through your chosen workflow and keep the post ID until every destination has a clear outcome.

Connect your accounts