Skip to main content
POST
Create a post

Authorizations

Authorization
string
header
required

An API key from Settings, API & MCP: pm_live_...

Headers

Idempotency-Key
string

Makes a retry safe: the same key within 24 hours answers with the first request's result. Up to 255 printable characters.

Required string length: 1 - 255

Body

application/json

A post to send now or schedule.

platforms
enum<string>[]
required

The networks to post to.

Required array length: 1 - 12 elements

A network PostMesh posts to.

Available options:
twitter,
youtube,
instagram,
tiktok,
threads,
facebook,
linkedin,
reddit,
bluesky,
mastodon,
telegram,
discord
content
string
default:""

The caption every account gets unless captions gives it its own.

Maximum string length: 63206
account_ids
string<uuid>[]

The connected accounts to post to, from GET /accounts. Left out, every account on the networks in platforms.

Maximum array length: 50
captions
object

Own captions, keyed by network ("twitter") or by account id for one account's own copy.

media
object[]

Files from POST /media, in order.

Maximum array length: 35
media_ids
string<uuid>[]

Media library ids from GET /media, added after media.

Maximum array length: 35
scheduled_at
string<date-time>

When to post. Left out, the post goes out now.

network_settings
object

Each network's settings (privacy, title, flair...), keyed by network. The fields each takes are below.

settings
object

One account's own settings, keyed by account id. Accounts on one network must agree.

label_ids
string<uuid>[]

Your own labels for the post.

Maximum array length: 10
signature
enum<string>

off sends the post without the accounts' default signatures.

Available options:
on,
off
repeat
object

How a scheduled post repeats. Needs scheduled_at.

draft_id
string<uuid>

The draft this post is made from. Its labels are kept when label_ids is left out.

Response

Answered from your posts: this same post was sent before under this key, so nothing was sent again.

post
object
required

A post: sent, scheduled, waiting or failed.

success
boolean
required

False when every account failed; each account's outcome is in post.accounts.

replayed
boolean

The Idempotency-Key was used before: this is that request's answer, and nothing was sent again.

awaiting_approval
boolean

The API key is in approval mode: the post waits for you in PostMesh.

outcome_unknown
boolean

PostMesh can't tell whether the post went out. Check the account before sending it again.

error
string