Skip to main content
POST
/
posts
curl --request POST \ --url https://api.postiz.com/public/v1/posts \ --header 'Authorization: <api-key>' \ --header 'Content-Type: application/json' \ --data ' { "type": "schedule", "date": "2024-12-14T10:00:00.000Z", "shortLink": false, "tags": [], "posts": [ { "integration": { "id": "your-integration-id" }, "value": [ { "content": "Hello world!", "image": [] } ], "settings": { "__type": "bluesky" } } ] } '
[
  {
    "postId": "post-123",
    "integration": "integration-456"
  }
]

Provider-Specific Settings

When creating posts, each social media platform requires different settings. The settings object must include a __type field that identifies the platform.

All 27 Supported Platforms

Platform__typeRequired Settings
X (Twitter)xwho_can_reply_post
LinkedInlinkedin-
LinkedIn Pagelinkedin-page-
Facebookfacebook- (optional: url)
Instagram (FB-linked)instagrampost_type
Instagram Standaloneinstagram-standalonepost_type
Threadsthreads-
Blueskybluesky-
Mastodonmastodon-
Warpcast (Farcaster)warpcast- (optional: subreddit[] for channels)
Nostrnostr-
VKvk-

Platforms Without Custom Settings

These platforms only need the __type field:
{
  "settings": {
    "__type": "threads"
  }
}
Platforms: threads, mastodon, bluesky, telegram, nostr, vk

Detailed Provider Settings

See the Provider Settings section for detailed schemas and examples for each platform.

Authorizations

Authorization
string
header
required

Your Postiz API key

Body

application/json
type
enum<string>
required

Post type

Available options:
draft,
schedule,
now
date
string<date-time>
required

Publish date in UTC ISO format

Whether to use short links

tags
object[]
required
order
string

Order of posts

inter
number

Interval between posts

posts
object[]

Required if type is not 'draft'

Response

200 - application/json

Post created successfully

postId
string
integration
string