Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/postiz-posts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Postiz Posts API
version: '1.0'
description: 'Operations tagged Posts across 3 of this provider''s published API definitions: postiz-platform-swagger-openapi.json, postiz-posts-api-openapi.yml, postiz-public-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.postiz.com/public/v1
description: Postiz Cloud
- url: https://{your-domain}/api/public/v1
description: Self-hosted
variables:
your-domain:
default: localhost:5000
description: Your Postiz instance domain
tags:
- name: Posts
paths:
/posts/{id}/statistics:
get:
operationId: PostsController_getStatistics
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/{id}/missing:
get:
operationId: PostsController_getMissingContent
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/{id}/release-id:
put:
operationId: PostsController_updateReleaseId
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/should-shortlink:
post:
operationId: PostsController_shouldShortlink
parameters: []
responses:
'201':
description: ''
tags:
- Posts
/posts/{id}/comments:
post:
operationId: PostsController_createComment
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'201':
description: ''
tags:
- Posts
/posts/tags:
get:
operationId: PostsController_getTags
parameters: []
responses:
'200':
description: ''
tags:
- Posts
post:
operationId: PostsController_createTag
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTagDto'
responses:
'201':
description: ''
tags:
- Posts
/posts/tags/{id}:
put:
operationId: PostsController_editTag
parameters:
- name: id
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTagDto'
responses:
'200':
description: ''
tags:
- Posts
delete:
operationId: PostsController_deleteTag
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts:
get:
operationId: PostsController_getPosts
parameters: []
responses:
'200':
description: ''
tags:
- Posts
post:
operationId: PostsController_createPost
parameters: []
responses:
'201':
description: ''
tags:
- Posts
/posts/find-slot:
get:
operationId: PostsController_findSlot
parameters: []
responses:
'200':
description: ''
tags:
- Posts
/posts/find-slot/{id}:
get:
operationId: PostsController_findSlotIntegration
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/list:
get:
operationId: PostsController_getPostsList
parameters: []
responses:
'200':
description: ''
tags:
- Posts
/posts/old:
get:
operationId: PostsController_oldPosts
parameters:
- name: date
required: true
in: query
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/group/{group}/debug-export:
get:
operationId: PostsController_getPostGroupDebugExport
parameters:
- name: group
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/group/{group}:
get:
operationId: PostsController_getPostsByGroup
parameters:
- name: group
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
delete:
tags:
- Posts
summary: Delete posts by group
description: Deletes all posts that share the given group ID.
operationId: deletePostByGroup
parameters:
- name: group
in: path
required: true
description: Group ID
schema:
type: string
responses:
'200':
description: Posts deleted
/posts/{id}:
get:
operationId: PostsController_getPost
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
delete:
tags:
- Posts
summary: Delete a post
description: Deletes a post by ID. A 404 means the post is already deleted and is safe to ignore.
operationId: deletePost
parameters:
- name: id
in: path
required: true
description: Post ID
schema:
type: string
responses:
'200':
description: Post deleted
/posts/valid:
post:
operationId: PostsController_validatePosts
parameters: []
responses:
'201':
description: ''
tags:
- Posts
/posts/generator/draft:
post:
operationId: PostsController_generatePostsDraft
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGeneratedPostsDto'
responses:
'201':
description: ''
tags:
- Posts
/posts/generator:
post:
operationId: PostsController_generatePosts
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GeneratorDto'
responses:
'201':
description: ''
tags:
- Posts
/posts/{group}:
delete:
operationId: PostsController_deletePost
parameters:
- name: group
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/{id}/date:
put:
operationId: PostsController_changeDate
parameters:
- name: id
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Posts
/posts/separate-posts:
post:
operationId: PostsController_separatePosts
parameters: []
responses:
'201':
description: ''
tags:
- Posts
/posts/{id}/status:
put:
tags:
- Posts
summary: Change post status
description: Changes a post's status between draft and schedule.
operationId: changePostStatus
parameters:
- name: id
in: path
required: true
description: Post ID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- draft
- schedule
responses:
'200':
description: Status changed
security:
- ApiKeyAuth: []
servers:
- url: https://api.postiz.com/public/v1
description: Postiz Cloud
- url: https://{your-domain}/api/public/v1
description: Self-hosted
variables:
your-domain:
default: localhost:5000
description: Your Postiz instance domain
/posts/{id}/settings:
put:
tags:
- Posts
summary: Update post settings
description: Merges the given keys into the post's existing provider settings. Only the keys you pass are changed; content and publish date are untouched, so a running publishing workflow is not restarted. The merged settings are re-validated. Works only on not-yet-published posts (scheduled or draft).
operationId: updatePostSettings
parameters:
- name: id
in: path
required: true
description: Post ID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- settings
properties:
settings:
type: object
additionalProperties: true
description: Provider settings to merge into the post's existing settings. Only the keys you pass are changed; everything else stays. Keys depend on the channel's platform.
example:
settings:
content_posting_method: DIRECT_POST
responses:
'200':
description: Post settings updated successfully
content:
application/json:
schema:
type: object
properties:
postId:
type: string
publishDate:
type: string
example:
postId: post-123
publishDate: '2026-08-01T10:00:00'
'400':
description: The id belongs to a comment (pass the root post id), the post is already published or its publish time passed, or the merged settings failed validation
'404':
description: Post not found
security:
- ApiKeyAuth: []
servers:
- url: https://api.postiz.com/public/v1
description: Postiz Cloud
- url: https://{your-domain}/api/public/v1
description: Self-hosted
variables:
your-domain:
default: localhost:5000
description: Your Postiz instance domain
components:
schemas:
CreateTagDto:
type: object
properties: {}
CreateGeneratedPostsDto:
type: object
properties: {}
GeneratorDto:
type: object
properties: {}
Tag:
type: object
required:
- value
- label
properties:
value:
type: string
label:
type: string
CreatePostRequest:
type: object
required:
- type
- date
- shortLink
- tags
properties:
type:
type: string
enum:
- draft
- schedule
- now
description: Post type.
date:
type: string
format: date-time
description: Publish date in UTC ISO format.
shortLink:
type: boolean
description: Whether to use short links.
order:
type: string
description: Order of posts.
inter:
type: number
description: Interval between posts.
tags:
type: array
items:
$ref: '#/components/schemas/Tag'
posts:
type: array
description: Required if type is not 'draft'.
items:
$ref: '#/components/schemas/PostItem'
PostItem:
type: object
required:
- integration
- value
properties:
integration:
type: object
required:
- id
properties:
id:
type: string
description: Integration ID.
value:
type: array
items:
$ref: '#/components/schemas/PostContent'
group:
type: string
description: Group ID for related posts.
settings:
type: object
description: Platform-specific settings, selected by the __type discriminator (e.g. x, linkedin, instagram, youtube, tiktok, reddit, discord, slack, telegram, mastodon, bluesky, wordpress, medium, devto).
properties:
__type:
type: string
PostsResponse:
type: object
properties:
posts:
type: array
items:
$ref: '#/components/schemas/Post'
PostContent:
type: object
required:
- content
properties:
content:
type: string
description: Post text content.
id:
type: string
description: Post ID (for updates).
image:
type: array
items:
$ref: '#/components/schemas/Media'
Media:
type: object
required:
- id
- path
properties:
id:
type: string
path:
type: string
Post:
type: object
properties:
id:
type: string
content:
type: string
publishDate:
type: string
format: date-time
releaseURL:
type: string
description: URL of the published post.
state:
type: string
enum:
- QUEUE
- PUBLISHED
- ERROR
- DRAFT
integration:
type: object
properties:
id:
type: string
providerIdentifier:
type: string
name:
type: string
picture:
type: string
MissingContentItem:
type: object
properties:
id:
type: string
description: Platform-specific content ID
url:
type: string
description: Thumbnail or preview URL for the content
DevToSettings:
title: Dev.to
type: object
required:
- __type
- title
properties:
__type:
type: string
enum:
- devto
title:
type: string
minLength: 2
description: Article title
main_image:
$ref: '#/components/schemas/Media'
description: Cover image
canonical:
type: string
format: uri
description: Original URL for SEO
organization:
type: string
description: Organization ID
tags:
type: array
maxItems: 4
items:
$ref: '#/components/schemas/Tag'
MediumSettings:
title: Medium
type: object
required:
- __type
- title
- subtitle
properties:
__type:
type: string
enum:
- medium
title:
type: string
minLength: 2
description: Article title
subtitle:
type: string
minLength: 2
description: Article subtitle
canonical:
type: string
format: uri
description: Original URL for SEO
publication:
type: string
description: Publication ID to post to
tags:
type: array
maxItems: 4
items:
$ref: '#/components/schemas/Tag'
PostContent_2:
type: object
required:
- content
properties:
content:
type: string
description: Post text content
id:
type: string
description: Post ID (for updates)
image:
type: array
items:
$ref: '#/components/schemas/Media'
WhopSettings:
title: Whop
type: object
required:
- __type
- company
- experience
description: Whop post settings
properties:
__type:
type: string
enum:
- whop
company:
type: string
minLength: 1
description: Company ID
experience:
type: string
minLength: 1
description: Experience/forum ID
title:
type: string
description: Post title
EmptySettings:
title: Other Platforms (Threads, Mastodon, Bluesky, etc.)
type: object
required:
- __type
description: For platforms that don't require additional settings
properties:
__type:
type: string
enum:
- threads
- mastodon
- bluesky
- telegram
- nostr
- vk
- kick
description: Platform identifier
DiscordSettings:
title: Discord
type: object
required:
- __type
- channel
properties:
__type:
type: string
enum:
- discord
channel:
type: string
minLength: 1
description: Discord channel ID
RedditSettings:
title: Reddit
type: object
required:
- __type
- subreddit
properties:
__type:
type: string
enum:
- reddit
subreddit:
type: array
minItems: 1
items:
type: object
properties:
value:
type: object
required:
- subreddit
- title
- type
- is_flair_required
properties:
subreddit:
type: string
minLength: 2
description: Subreddit name without r/
title:
type: string
minLength: 2
description: Post title
type:
type: string
enum:
- self
- link
- image
- video
description: Post type
url:
type: string
description: URL for link posts
is_flair_required:
type: boolean
flair:
type: object
properties:
id:
type: string
name:
type: string
TwitchSettings:
title: Twitch
type: object
required:
- __type
description: Twitch post settings
properties:
__type:
type: string
enum:
- twitch
messageType:
type: string
enum:
- message
- announcement
description: Message type
announcementColor:
type: string
enum:
- primary
- blue
- green
- orange
- purple
description: Announcement color (only for announcement type)
YouTubeSettings:
title: YouTube
type: object
required:
- __type
- title
- type
properties:
__type:
type: string
enum:
- youtube
title:
type: string
minLength: 2
maxLength: 100
description: Video title
type:
type: string
enum:
- public
- private
- unlisted
description: Video visibility
selfDeclaredMadeForKids:
type: string
enum:
- 'yes'
- 'no'
description: Made for kids declaration
thumbnail:
$ref: '#/components/schemas/Media'
description: Custom thumbnail
tags:
type: array
items:
$ref: '#/components/schemas/Tag'
MoltbookSettings:
title: Moltbook
type: object
required:
- __type
- submolt
description: Moltbook post settings
properties:
__type:
type: string
enum:
- moltbook
submolt:
type: string
minLength: 1
description: Submolt (community) ID
InstagramSettings:
title: Instagram
type: object
required:
- __type
- post_type
properties:
__type:
type: string
enum:
- instagram
- instagram-standalone
description: Use 'instagram' for FB-linked, 'instagram-standalone' for standalone
post_type:
type: string
enum:
- post
- story
description: Type of Instagram post
is_trial_reel:
type: boolean
description: Whether to post as a trial reel
graduation_strategy:
type: string
enum:
- MANUAL
- SS_PERFORMANCE
description: Graduation strategy for trial reels
collaborators:
type: array
items:
type: object
properties:
label:
type: string
description: Collaborator username
CreatePostRequest_2:
type: object
required:
- type
- date
- shortLink
- tags
properties:
type:
type: string
enum:
- draft
- schedule
- now
description: Post type
date:
type: string
format: date-time
description: Publish date in UTC ISO format
shortLink:
type: boolean
description: Whether to use short links
order:
type: string
description: Order of posts
inter:
type: number
description: Interval between posts
tags:
type: array
items:
$ref: '#/components/schemas/Tag'
posts:
type: array
items:
$ref: '#/components/schemas/PostItem_2'
description: Required if type is not 'draft'
GmbSettings:
title: Google My Business
type: object
required:
- __type
description: Google My Business post settings
properties:
__type:
type: string
enum:
- gmb
topicType:
type: string
enum:
- STANDARD
- EVENT
- OFFER
description: Post type
callToActionType:
type: string
enum:
- NONE
- BOOK
- ORDER
- SHOP
- LEARN_MORE
- SIGN_UP
- GET_OFFER
- CALL
description: Call-to-action button
callToActionUrl:
type: string
format: uri
description: URL for CTA (required if callToActionType is set)
eventTitle:
type: string
description: Event title (required for EVENT type)
eventStartDate:
type: string
description: Event start date
eventEndDate:
type: string
description: Event end date
eventStartTime:
type: string
description: Event start time
eventEndTime:
type: string
description: Event end time
offerCouponCode:
type: string
description: Coupon code (for OFFER type)
offerRedeemUrl:
type: string
format: uri
description: Redemption URL
offerTerms:
type: string
description: Offer terms and conditions
SkoolSettings:
title: Skool
type: object
required:
- __type
- group
- label
- title
description: Skool post settings
properties:
__type:
type: string
enum:
- skool
group:
type: string
minLength: 1
description: Group ID
label:
type: string
minLength: 1
description: Label/category ID
title:
type: string
minLength: 1
description: Post title
WarpcastSettings:
title: Warpcast
type: object
required:
- __type
description: Warpcast (Farcaster) post settings
properties:
__type:
type: string
enum:
- warpcast
subreddit:
type: array
description: Farcaster channels to post to
items:
type: object
properties:
value:
type: object
required:
- id
properties:
id:
type: string
description: Channel ID
ListmonkSettings:
title: Listmonk
type: object
required:
- __type
- subject
- preview
- list
properties:
__type:
type: string
enum:
- listmonk
subject:
type: string
minLength: 1
description: Email subject line
preview:
type: string
description: Email preview text
list:
type: string
description: List ID to send to
template:
type: string
description: Template ID (optional)
Post_2:
type: object
properties:
id:
type: string
content:
type: string
settings:
type: object
additionalProperties: true
description: The post's current provider-specific settings (the same shape used when creating the post). Keys depend on the channel's platform.
example:
content_posting_method: DIRECT_POST
publishDate:
type: string
format: date-time
releaseURL:
type: string
description: URL of the published post
state:
type: string
enum:
- QUEUE
- PUBLISHED
- ERROR
- DRAFT
integration:
type: object
properties:
id:
type: string
providerIdentifier:
type: string
name:
type: string
picture:
type: string
FacebookSettings:
title: Facebook
type: object
required:
- __type
description: Facebook post settings
properties:
__type:
type: string
enum:
- facebook
url:
type: string
format: uri
description: Optional link URL to include in the post
PostItem_2:
type: object
required:
- integration
- value
properties:
integration:
type: object
required:
- id
properties:
id:
type: string
description: Integration ID
value:
type: array
items:
$ref: '#/components/schemas/PostContent_2'
group:
type: string
description: Group ID for related posts
settings:
oneOf:
- $ref: '#/components/schemas/XSettings'
- $ref: '#/components/schemas/LinkedInSettings'
- $ref: '#/components/schemas/InstagramSettings'
- $ref: '#/components/schemas/FacebookSettings'
- $ref: '#/components/schemas/YouTubeSettings'
- $ref: '#/components/schemas/TikTokSettings'
- $ref: '#/components/schemas/RedditSettings'
- $ref: '#/components/schemas/LemmySettings'
- $ref: '#/components/schemas/PinterestSettings'
- $ref: '#/components/schemas/DiscordSettings'
- $ref: '#/components/schemas/SlackSettings'
- $ref: '#/components/schemas/TwitchSettings'
- $ref: '#/components/schemas/DribbbleSettings'
- $ref: '#/components/schemas/MediumSettings'
- $ref: '#/components/schemas/DevToSettings'
- $ref: '#/components/schemas/HashnodeSettings'
- $ref: '#/components/schemas/WordpressSettings'
- $ref: '#/components/schemas/ListmonkSettings'
- $ref: '#/components/schemas/GmbSettings'
- $ref: '#/components/schemas/WarpcastSettings'
- $ref: '#/components/schemas/MoltbookSettings'
- $ref: '#/components/schemas/SkoolSettings'
- $ref: '#/components/schemas/WhopSettings'
- $ref: '#/components/schemas/EmptySettings'
description: Provider-specific settings
LinkedInSettings:
title: LinkedIn
type: object
required:
- __type
properties:
__type:
type: string
enum:
- linkedin
- linkedin-page
description: Use 'linkedin' for profiles, 'linkedin-page' for company pages
post_as_images_carousel:
type: boolean
description: Display multiple images as a carousel
carousel_name:
type: string
description: Name for the carousel document
HashnodeSettings:
title: Hashnode
type: object
required:
- __type
- title
- tags
properties:
__type:
type: string
enum:
- hashnode
title:
type: string
minLength: 6
description: Article title
subtitle:
type: string
minLength: 2
description: Article subtitle
main_image:
$ref: '#/components/schemas/Media'
description: Cover image
canonical:
type: string
format: uri
description: Original URL for SEO
publication:
type: string
description: Publication ID (required)
tags:
type: array
minItems: 1
items:
$ref: '#/components/schemas/Tag'
DribbbleSettings:
title: Dribbble
type: object
required:
- __type
- title
properties:
__type:
type: string
enum:
- dribbble
title:
type: string
minLength: 1
description: Shot title
team:
type: string
format: uri
description: Team URL
PinterestSettings:
title: Pinterest
type: object
required:
- __type
- board
properties:
__type:
type: string
enum:
- pinterest
board:
type: string
minLength: 1
description: Board ID
title:
type: string
maxLength: 100
link:
type: string
format: uri
dominant_color:
type: string
SlackSettings:
title: Slack
type: object
required:
- __type
- channel
properties:
__type:
type: string
enum:
- slack
channel:
type: string
minLength: 1
description: Slack channel ID
XSettings:
title: X (Twitter)
type: object
required:
- __type
- who_can_reply_post
properties:
__type:
type: string
enum:
- x
description: Must be 'x'
who_can_reply_post:
type: string
enum:
- everyone
- following
- mentionedUsers
- subscribers
- verified
description: Who can reply to the post
community:
type: string
description: 'X Community URL (format: https://x.com/i/communities/123)'
LemmySettings:
title: Lemmy
type: object
required:
- __type
- subreddit
description: Lemmy uses 'subreddit' for communities (historical naming)
properties:
__type:
type: string
enum:
- lemmy
subreddit:
type: array
minIte
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/postiz/refs/heads/main/openapi/postiz-posts-api-openapi.yml