If you’re building an app for other Postiz users, use OAuth2 Authentication to get tokens that act on behalf of users. OAuth tokens start with pos_ and are used the same way:
90 requests per hour (100 for the cloud) limit applies to only the create post endpoint.This doesn’t mean you can only post 90 times per hour—each API call counts as one request. Schedule multiple posts in a single request to maximize throughput.
The rate limit is a single global value for the whole instance — it doesn’t tier by subscription plan. Plans tier on channel and post-per-month quotas instead. Self-hosters can adjust the per-hour limit with the API_LIMIT env var (see Configuration Reference).
The request body or path parameter is malformed (wrong shape, unknown enum, missing required field).
401 Unauthorized
Authorization header is missing or the API key is unrecognised.
403 Forbidden
The API key is valid but doesn’t own the resource (e.g. you tried to delete a post in another organisation).
404 Not Found
The endpoint doesn’t exist, or the path parameter (integration ID, post ID) was correct format but no row matched.
413 Payload Too Large
Your request body exceeded 50 MB on /posts — usually because images were base64-inlined instead of pre-uploaded. See Uploads troubleshooting.
429 Too Many Requests
You exceeded API_LIMIT per hour on the create-post endpoint.
5xx
Server error — retry with exponential backoff.
For DELETE endpoints, 404 always means “already deleted” and is safe to ignore. A 500can mean the same thing today because of a known issue where a missing post ID surfaces as 500 instead of 404 — but only if the error matches that specific signature. Treat other 500 responses as real server errors: log them, retry with exponential backoff, and don’t silently suppress them.
The easiest way to generate your post payloads is by using this wizard.
It’s the same wizard to schedule posts in the Postiz app, however instead of scheduling posts, it generates the JSON payload for you to use in your API requests.
For cloud, make sure you are logged in.
For local, make sure your Postiz server is running and your are logged in.
__typexwho_can_reply_post,communitylinkedinpost_as_images_carousellinkedin-pagepost_as_images_carouselfacebookurl(optional)instagrampost_type,collaboratorsinstagram-standalonepost_type,collaboratorswarpcastsubreddit[](channels)__typeyoutubetitle,type,selfDeclaredMadeForKids,thumbnail,tagstiktokprivacy_level,duet,stitch,comment,autoAddMusic,brand_content_toggle,brand_organic_toggle,content_posting_method__typeredditsubreddit[]withtitle,type,flairlemmysubreddit[]withid,title,urldiscordchannelslackchannelskoolgroup,label,titlewhopcompany,experience,title__typepinterestboard,title,link,dominant_colordribbbletitle,team__typemediumtitle,subtitle,canonical,publication,tagsdevtotitle,main_image,canonical,organization,tagshashnodetitle,subtitle,main_image,publication,tagswordpresstitle,main_image,type__typegmbtopicType,callToActionType,callToActionUrl, event/offer fieldslistmonksubject,preview,list,template__typetwitchmessageType,announcementColor