Guide

Publish a Video to 6 Networks with the GoHighLevel API (Social Planner), Step by Step

With the Social Planner API you upload the video once and send it to each network with its own settings. It works, but a 201 does not mean published and every network has its own rules. This is the route we use, with the official limits and what we learned testing it.

The route in five steps

  1. Upload the MP4 once to Media Storage with POST /medias/upload-file. According to the documentation, videos accept up to 500 MB. The response returns the file URL.
  2. Confirm the URL. Request it and check that it responds as video/mp4 and weighs the same as your file. It takes a minute and saves you from publishing a broken video to six networks.
  3. Create one post per network with POST /social-media-posting/:locationId/posts: one call per connected account, each with its own accountIds, the text in summary, the video in media and, for accounts connected through OAuth, the userId.
  4. Configure each network separately (below).
  5. Poll until you see published. A 201 only means HighLevel accepted the post. The real status arrives later, and it passes through in_progress.

You can do it with the direct API or with HighLevel's official MCP from Claude Code. The logic is the same.

Settings that change per network

  • Instagram: publish it as a reel, with the reel type inside instagramPostDetails and the option to show it in the feed too.
  • TikTok: set the privacyLevel explicitly in tiktokPostDetails. In our public post we left the audience on "Everyone" and turned on the branded content disclosure.
  • YouTube: use youtubePostDetails with title, type (Short or regular video) and privacy. For a regular horizontal 16:9 video, the post type is post.
  • Pinterest: requires the board in pinterestPostDetails.boardIds. No board, no pin.
  • Threads and Bluesky: just the text and the video, but respect their limits.

Official limits per network (video)

NetworkMax sizeDurationText
Instagram Reels300 MB3 s to 15 min2,200 characters
TikTok1 GB3 s to 180 s (personal) or 600 s (business)150 (personal) or 2,200 (business)
YouTube Shortsnot listedup to 60 s, vertical 9:165,000 characters
Pinterest2 GB4 s to 5 mintitle 100, description 500
Threads1 GBup to 5 min500 characters
Bluesky50 MBup to 3 min300 characters

Bluesky is the one that trips people up: an 80 MB video that works for the other five does not fit, and a long text gets rejected. Prepare a short variant of the caption for that network.

How long it really takes

These timings are our own measurements, not a HighLevel promise: YouTube about 12 seconds, Threads, Bluesky and Pinterest between one and two minutes, Instagram and TikTok around five. While a post is in progress, do not resend it: you will duplicate the post.

The traps we found

  • A 201 is not a publication. Verify each network with the post list (get-posts in the MCP) until you see published and its link. If it ends up failed, the error comes in the row.
  • Google Business Profile does not accept this video. It is a network you can connect in Social Planner, but not for this format.
  • YouTube private to public: do it in YouTube Studio. We published first as private to test and made it public from Studio, not through the API, to avoid creating a duplicate post. When you do it, make sure the instant premiere checkbox (Premiere) is not ticked: in our case it ended up right below where the Public option was.
  • Text you write in the chat does not bind the tool. If you automate with an agent, the rules (allowed accounts, limits, tone) go inside the prompt or the code, not in a separate conversation.

Before you automate it

Show a preview with the accounts, the texts and the settings, and wait for a human yes before publishing. Publishing is the only thing in this flow that cannot be cleanly undone.

FAQ

Frequently asked questions

Can I upload the video once and use it on every network?+

Yes. You upload the file to Media Storage, get a URL and use it in each post. Just mind the limit of the strictest network: Bluesky accepts 50 MB.

How do I know if the video has been published?+

Poll the post list until each one moves to published and has its link. A 201 on creation only means HighLevel accepted it.

Does it also work for Facebook, LinkedIn and X?+

The API documentation includes details for Facebook, LinkedIn, Instagram, Pinterest and YouTube. We only tested the six networks in this guide; for the others, test with a private or draft post first.