Developers · Posting API

The social media posting API.One request, every account you list.

Breakreach's posting API publishes the same post to Instagram, TikTok, X, LinkedIn, YouTube, Facebook, Threads, Pinterest, Bluesky, Reddit, Telegram, Discord, Slack, Mastodon and WordPress with one POST /v1/posts: text, photos, a carousel or a video, now, at a set time or as a draft. Failed networks are retried on their own, and a webhook tells you when it's out.

OpenAPI spec

Checked against the API code on October 7, 2026. Breakreach is our product.

POST /v1/posts
curl https://api.breakreach.com/v1/posts \  -H "Authorization: Bearer $BREAKREACH_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "content": "Three ways to brew Morning Light. Which one is yours?",    "accountIds": ["6701a2f4c9e84b0012a3b4c5",                   "6701a2f4c9e84b0012a3b4c6",                   "6701a2f4c9e84b0012a3b4c7"],    "media": ["https://cdn.northbeam.coffee/latte.jpg",              "https://cdn.northbeam.coffee/pourover.jpg",              "https://cdn.northbeam.coffee/roastery.jpg"],    "publishNow": true  }'
POST /v1/postsSending
{  "post": {    "id": "6702c4b9f2a94e0012b7c6f2",    "status": "publishing",    "scheduledAt": "2026-10-07T10:04:11.000Z",    "accounts": [      "instagram (northbeam.coffee)",      "linkedin (Northbeam Coffee)",      "x (northbeam)"    ]  }}
Published · just now
northbeam.coffee
1/3

northbeam.coffee Three ways to brew Morning Light. Which one is yours?

One request, three photos: an Instagram carousel, a LinkedIn carousel (a PDF, one page per photo) and an X post with three images.

Posting API endpoints7 endpoints, one API key.

  • POST/v1/postsPublish now, schedule, take the next free slot or save a draft, on one or many accounts
  • GET/v1/accountsThe connected accounts and their ids, with a warning before one expires
  • POST/v1/mediaCopy a public image or video URL to Breakreach storage, for files behind expiring links
  • GET/v1/postsYour posts with status, time, metrics and the network's error when one failed
  • PATCH/v1/posts/:idEdit a draft, scheduled or failed post; a new time retries a failed one
  • DELETE/v1/posts/:idUnschedule and remove from Breakreach (never from the network)
  • GET/v1/pinterest-boardsThe boards a pin can go to

Base URL https://api.breakreach.com. Every call sends your key as Authorization: Bearer br_…; errors answer { "error": "…" } with a 4xx or 5xx status. Every parameter is in the OpenAPI spec.

What POST /v1/posts takes

FieldTypeWhat it does
contentstring, requiredThe text. Reddit and Pinterest take the first line as the title
accountIdsstring[], requiredIds from GET /v1/accounts, from one workspace
mediastring[]Public URLs of photos or videos, read by extension (.jpg, .png, .webp, .gif, .mp4, .mov, .webm). Required for Instagram, TikTok, YouTube and Pinterest
publishNowbooleanPublish at once
scheduledAtstringISO date and time, read in the workspace timezone unless it carries an offset
useNextSlotbooleanTake the next free slot of the workspace posting schedule
draftbooleanSave for review in Breakreach without scheduling
workspacestringWorkspace slug; your first workspace when left out
tiktokSettingsobjectprivacyLevel, disableComment, disableDuet, disableStitch. Private unless you set the audience
pinterestBoardIdstringRequired for Pinterest, from GET /v1/pinterest-boards; pinterestLink sets the pin's destination
redditSubredditstringSubreddit without r/ (your profile by default); redditFlairText when the subreddit requires a flair

Which networks it coversChecked against the code, not a feature list.

NetworkWhat one post can carryMedia requiredOptions
Instagram1 photo, 1 video (a Reel), or a carousel of 2 to 10 photos and videosYesStories through MCP
TikTok1 video, or a photo post of up to 35 photosYesAudience, comments, duet, stitch
YouTube1 video, titled from the first lineYesTitle and privacy through MCP
Pinterest1 image, or 1 MP4 or MOV video with the image as its coverYesBoard (required), link
XText, with up to 4 images, 1 GIF or 1 videoNoNone
LinkedInText with 1 image or 1 video, 2 to 20 images as a PDF carousel, or a PDF documentNoPersonal profiles only
FacebookText, up to 10 photos or 1 video, on PagesNoNone
ThreadsText, 1 image or 1 videoNoNone
BlueskyUp to 300 characters, with up to 10 images or 1 videoNoNone
RedditA text post, or a link post to your imageNoSubreddit, flair
TelegramText, or 1 photo or video with a caption, in a channelNoNone
DiscordText with up to 4 images, through a channel webhookNoNone
SlackText with up to 10 JPG, PNG or GIF photos, in one channel; a video or WebP as a linkNoNone
MastodonText with up to 4 photos or 1 video, publicNoNone
WordPressA blog post titled from the first line; the first photo is the featured image, more photos and a video follow the textNoNone
Checked on October 7, 2026, against Breakreach's publishing code. Not supported anywhere yet: X threads and polls, Threads carousels, first comments, LinkedIn Company Pages.

How do I post to several networks with one API call?List the accounts, send the post once.

Call GET /v1/accounts once to get the ids of the connected accounts, then pass the ones you want in accountIds. Breakreach turns the one request into each network's own calls: Instagram's container and publish steps, LinkedIn's image upload and share, X's media upload and tweet. You never register a developer app or keep a token alive.

Each account gets the same text and media. When a network needs something different (a shorter text for Bluesky, a board for Pinterest), send two requests: one per group of accounts. Bluesky is cut at 300 characters, a Pinterest description at 800 and a TikTok video caption at 2,200. X, LinkedIn, Instagram, Threads and Facebook get your text as sent, so keep X at 280 characters yourself or X refuses the post.

What media can the API send?Public URLs, read by extension.

Media goes in as public URLs. The type comes from the file extension, so a link without one is skipped. Instagram, TikTok, YouTube and Pinterest need at least one photo or video; the other networks also take text alone.

Files behind signed or expiring links (an S3 presigned URL, a CMS preview) may be gone when a scheduled post goes out. POST /v1/media copies the file to Breakreach storage first and returns a permanent URL with the right extension. Photos are converted where a network insists: JPEG for Instagram and TikTok, recompressed under 2 MB for Bluesky.

  • CarouselsInstagram takes 2 to 10 photos and videos; every photo is cropped to the first one's shape, as Instagram shows them. LinkedIn turns 2 to 20 photos into a PDF document people page through. TikTok turns up to 35 photos into a photo post.
  • VideoOne video per post on Instagram (a Reel), TikTok, YouTube, LinkedIn, X, Facebook, Threads, Bluesky, Pinterest and Telegram.
  • Instagram feed photosOutside Instagram's 4:5 to 1.91:1 range, a feed photo is cropped from the centre instead of being refused. Stories are exempt.

What happens when a network rejects a post?Retries for the temporary errors, the reason for the rest.

Temporary failures (a rate limit, a timeout, a 5xx from the network) are retried up to 3 times, 5, 10 and 15 minutes later, and only on the accounts that failed. Anything else marks the post failed with the network's answer in error, prefixed with the account id.

A post that went out on some accounts and not on others ends published, with the failures listed. PATCH /v1/posts/:id with a new scheduledAt, useNextSlot or publishNow retries a failed post once you've fixed the cause.

Errors from Breakreach itself are plain JSON, { "error": "…" }, with a 4xx status: a missing content, an account from another workspace, media missing for Instagram. They read well enough to hand straight to an AI agent, which is how the MCP server uses them.

How do I know when a post is live?

Add a webhook in Settings, API & MCP. Breakreach sends post.published when a post went out on at least one account, with each network's post id, and post.failed when it went out nowhere. Each call is signed with HMAC-SHA256 of the raw body in X-Breakreach-Signature. Webhooks come with the Developer, Pro and Agency plans.

Without a webhook, poll GET /v1/posts?status=published or read one post's numbers with GET /v1/posts/:id/metrics, which also returns the network post ids.

What does the posting API cost?

The Developer plan costs $5 a month per connected account up to 20, $3 from 21 to 100 and $2 after that, never per call or per post. The API also comes with every regular plan, from Starter at $29 a month for 5 accounts. A cron job that posts every hour costs the same as one that posts once a week.

For AI agents

Agents get the same calls.As MCP tools, no code to write.

An agent in Claude Code, Cursor, Codex or OpenClaw calls the same publishing code through the MCP server, so “post this to Instagram and LinkedIn now” works without writing the request.

  • create_postThe same call as POST /v1/posts, plus Instagram Stories and a YouTube title and privacy
  • upload_mediaCopies a public URL to Breakreach storage
  • update_postEdits, reschedules or retries a post
  • list_accountsFinds the account ids from a name like “my Instagram”

What the posting API doesn't do yetSo you know before you build.

  • X threads and polls, Threads carousels and polls
  • First comments, and Reel or YouTube cover images
  • LinkedIn Company Pages: personal profiles only
  • Deleting a post from the network: DELETE removes it from Breakreach only
  • Idempotency keys: check GET /v1/posts before repeating a request that timed out

The rest of the API (webhooks, workspaces per customer, connect links for your users, the price per connected account) is on the developers page.

FAQ

Questions, answered.

Short answers about the Posting API.

Yes, a unified social media API like Breakreach. One POST /v1/posts reaches Instagram, TikTok, X, LinkedIn, YouTube, Facebook, Threads, Pinterest, Bluesky, Reddit, Telegram, Discord, Slack, Mastodon and WordPress, through Breakreach's own apps on each network.

Yes. Accounts connect through Breakreach's apps: Meta approved our Instagram permissions in September 2026 and TikTok approved our Content Posting API audit the same month, so TikTok posts can go out public.

Yes. Set publishNow to true and the post goes out at once; the response says publishing, and post.published fires when it's live.

Yes. Instagram carousels of 2 to 10 photos and videos, LinkedIn carousels of 2 to 20 photos (as a PDF), TikTok photo posts of up to 35 photos, Facebook posts with up to 10 photos, and one video per post on every network that takes video.

Yes. Create a workspace per customer with POST /v1/workspaces, then POST /v1/connect-links, and send them the link. They connect their networks on a hosted page without a Breakreach login.

Not yet. The API is plain JSON over HTTPS, and the OpenAPI 3.1 spec at api.breakreach.com/v1/openapi.json generates a typed client in most languages.

Instagram
TikTok
LinkedIn
YouTube
X
Facebook
Threads

Your first call is five minutes away.From $5 a month per account.

Billed per connected account. Cancel anytime.