Properties
| Name | Type | Description |
|---|---|---|
| content | object | |
| schedule | object | |
| autoDeleteMediaAfterPublish | boolean | When true, all media referenced by this post is automatically deleted from the media library after all social account deliveries for the post have published successfully. |
| retryPolicy | object | Automatic retry policy. Omit to disable automatic retries. |
| socialAccounts | array | Social account targets for this post. All referenced social accounts must belong to the same project. Duplicate `socialAccountId` values are invalid. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/woopsocial-com/json-schema/woopsocial-com-create-post-request-schema.json",
"title": "CreatePostRequest",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/woopsocial-com-openapi-openapi.yml#/components/schemas/CreatePostRequest",
"type": "object",
"additionalProperties": false,
"required": [
"content",
"schedule",
"socialAccounts"
],
"properties": {
"content": {
"$ref": "#/$defs/PostContentInput"
},
"schedule": {
"$ref": "#/$defs/PostSchedule"
},
"autoDeleteMediaAfterPublish": {
"type": "boolean",
"default": false,
"description": "When true, all media referenced by this post is automatically\ndeleted from the media library after all social account deliveries\nfor the post have published successfully.\n"
},
"retryPolicy": {
"$ref": "#/$defs/PostRetryPolicy",
"description": "Automatic retry policy. Omit to disable automatic retries."
},
"socialAccounts": {
"type": "array",
"minItems": 1,
"description": "Social account targets for this post.\n\nAll referenced social accounts must belong to the same project.\nDuplicate `socialAccountId` values are invalid.\n",
"items": {
"$ref": "#/$defs/SocialAccountInput"
}
}
},
"$defs": {
"BlueskyInput": {
"title": "Bluesky",
"allOf": [
{
"$ref": "#/$defs/BlueskyPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
}
]
},
"BlueskyPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"BLUESKY"
]
}
]
}
}
},
"DraftPostSchedule": {
"title": "Draft",
"type": "object",
"additionalProperties": false,
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"DRAFT"
]
}
}
},
"FacebookFields": {
"type": "object",
"required": [
"postType"
],
"properties": {
"link": {
"type": "string"
},
"locationId": {
"type": "string",
"description": "Facebook place ID to attach to the post."
},
"postType": {
"$ref": "#/$defs/FacebookPostType"
}
}
},
"FacebookInput": {
"title": "Facebook",
"allOf": [
{
"$ref": "#/$defs/FacebookPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/FacebookFields"
}
]
},
"FacebookPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"FACEBOOK"
]
}
]
}
}
},
"FacebookPostType": {
"type": "string",
"enum": [
"TEXT_ONLY",
"IMAGE",
"VIDEO",
"REEL",
"STORY"
]
},
"InstagramFields": {
"type": "object",
"required": [
"postType"
],
"properties": {
"postType": {
"$ref": "#/$defs/InstagramPostType"
},
"cover": {
"$ref": "#/$defs/PostContentMediaInput",
"description": "Optional image media reference to use as the cover image for an Instagram Reel.\n\nThis field applies only to `postType=REEL`.\n"
},
"trialParams": {
"$ref": "#/$defs/InstagramTrialParams",
"description": "Optional Trial Reel settings. When provided, `postType` must be `REEL`.\n\nOmit this field to publish a regular Reel.\n"
}
}
},
"InstagramInput": {
"title": "Instagram",
"allOf": [
{
"$ref": "#/$defs/InstagramPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/InstagramFields"
}
]
},
"InstagramPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"INSTAGRAM"
]
}
]
}
}
},
"InstagramPostType": {
"type": "string",
"enum": [
"POST",
"REEL",
"STORY"
]
},
"InstagramTrialGraduationStrategy": {
"type": "string",
"description": "Controls how a Trial Reel graduates to followers. `MANUAL` leaves graduation\nto the user in Instagram. `SS_PERFORMANCE` lets Instagram graduate the Reel\nautomatically based on its performance.\n",
"enum": [
"MANUAL",
"SS_PERFORMANCE"
]
},
"InstagramTrialParams": {
"type": "object",
"additionalProperties": false,
"required": [
"graduationStrategy"
],
"properties": {
"graduationStrategy": {
"$ref": "#/$defs/InstagramTrialGraduationStrategy"
}
}
},
"LinkedInFields": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "URL to publish as a LinkedIn link preview card."
}
}
},
"LinkedInInput": {
"title": "LinkedIn",
"allOf": [
{
"$ref": "#/$defs/LinkedInPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/LinkedInFields"
}
]
},
"LinkedInPagesInput": {
"title": "LinkedIn Pages",
"allOf": [
{
"$ref": "#/$defs/LinkedInPagesPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/LinkedInFields"
}
]
},
"LinkedInPagesPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"LINKEDIN_PAGES"
]
}
]
}
}
},
"LinkedInPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"LINKEDIN"
]
}
]
}
}
},
"MediaLibraryPostContentMediaInput": {
"title": "Media Library Input",
"type": "object",
"additionalProperties": false,
"required": [
"type",
"mediaId"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MEDIA_LIBRARY"
]
},
"mediaId": {
"type": "string",
"description": "Media identifier create by calling [`POST /media/upload-sessions`](/api-reference/media/start-media-upload-session) or [`POST /media`](/api-reference/media/upload-media).",
"x-woopsocial-mcp-description": "Media library item identifier, returned by `media_uploads_complete_session` or listed by `media_list`."
}
}
},
"PinterestFields": {
"type": "object",
"required": [
"pinterestBoardId"
],
"properties": {
"pinterestBoardId": {
"type": "string",
"description": "Identifier of the board to pin to."
},
"title": {
"type": "string"
},
"link": {
"type": "string",
"maxLength": 2048,
"description": "Destination URL to attach to the Pin."
}
}
},
"PinterestInput": {
"title": "Pinterest",
"allOf": [
{
"$ref": "#/$defs/PinterestPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/PinterestFields"
}
]
},
"PinterestPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"PINTEREST"
]
}
]
}
}
},
"PostContentInput": {
"type": "array",
"minItems": 1,
"maxItems": 1,
"description": "Post content expressed as thread items.\n\nThe array exists for future thread support. Currently exactly one item\nis supported.\n",
"items": {
"$ref": "#/$defs/PostContentItemInput"
}
},
"PostContentItemInput": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"text": {
"type": "string",
"description": "Text content for this thread item."
},
"media": {
"type": "array",
"items": {
"$ref": "#/$defs/PostContentMediaInput"
}
}
}
},
"PostContentMediaInput": {
"description": "Content media reference.\n",
"oneOf": [
{
"$ref": "#/$defs/MediaLibraryPostContentMediaInput"
}
]
},
"PostRetryPolicy": {
"type": "object",
"additionalProperties": false,
"description": "Automatically creates a scheduled retry post for each failed target.\nSuccessful targets are never copied. Known failures requiring user\nintervention, such as insufficient credits or disconnected accounts,\nare not automatically retried. If the platform published a post but\nits response was lost, retrying may produce a duplicate.\n",
"required": [
"maxRetries",
"delaySeconds"
],
"properties": {
"maxRetries": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "Maximum automatic retries per target, excluding the original attempt."
},
"delaySeconds": {
"type": "integer",
"minimum": 60,
"maximum": 86400,
"description": "Minimum wait after each failure before the retry is published."
}
}
},
"PostSchedule": {
"description": "When the post should be published.",
"oneOf": [
{
"$ref": "#/$defs/DraftPostSchedule"
},
{
"$ref": "#/$defs/PublishNowPostSchedule"
},
{
"$ref": "#/$defs/ScheduleForLaterPostSchedule"
}
]
},
"PublishNowPostSchedule": {
"title": "Publish Now",
"type": "object",
"additionalProperties": false,
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"PUBLISH_NOW"
]
}
}
},
"ScheduleForLaterPostSchedule": {
"title": "Schedule For Later",
"type": "object",
"additionalProperties": false,
"required": [
"type",
"scheduledFor"
],
"properties": {
"type": {
"type": "string",
"enum": [
"SCHEDULE_FOR_LATER"
]
},
"scheduledFor": {
"type": "string",
"format": "date-time",
"description": "UTC time (ISO 8601) when the post should be published. The value must be in the future.\n"
}
}
},
"SocialAccountInput": {
"oneOf": [
{
"$ref": "#/$defs/BlueskyInput"
},
{
"$ref": "#/$defs/FacebookInput"
},
{
"$ref": "#/$defs/InstagramInput"
},
{
"$ref": "#/$defs/LinkedInInput"
},
{
"$ref": "#/$defs/LinkedInPagesInput"
},
{
"$ref": "#/$defs/PinterestInput"
},
{
"$ref": "#/$defs/ThreadsInput"
},
{
"$ref": "#/$defs/TikTokInput"
},
{
"$ref": "#/$defs/WoopTestInput"
},
{
"$ref": "#/$defs/XInput"
},
{
"$ref": "#/$defs/YouTubeInput"
}
]
},
"SocialAccountInputBase": {
"type": "object",
"required": [
"socialAccountId"
],
"properties": {
"socialAccountId": {
"type": "string",
"description": "Connected social account identifier."
},
"contentOverride": {
"$ref": "#/$defs/PostContentInput"
}
}
},
"SocialPlatform": {
"type": "string",
"enum": [
"PINTEREST",
"LINKEDIN",
"LINKEDIN_PAGES",
"INSTAGRAM",
"FACEBOOK",
"THREADS",
"TIKTOK",
"X",
"YOUTUBE",
"BLUESKY",
"WOOPTEST"
],
"description": "Identifies which social media platform this data structure targets.\n"
},
"ThreadsInput": {
"title": "Threads",
"allOf": [
{
"$ref": "#/$defs/ThreadsPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
}
]
},
"ThreadsPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"THREADS"
]
}
]
}
}
},
"TikTokFields": {
"type": "object",
"required": [
"postType",
"allowComment",
"allowDuet",
"allowStitch",
"isYourBrand",
"isBrandedContent",
"autoAddMusic"
],
"properties": {
"postType": {
"$ref": "#/$defs/TikTokPostType"
},
"cover": {
"$ref": "#/$defs/PostContentMediaInput",
"description": "Optional image media reference to use as a custom cover for\n`postType=VIDEO`. WoopSocial stitches the image as a single\nframe at the beginning of the video before sending it to TikTok.\n"
},
"postMode": {
"$ref": "#/$defs/TikTokPostMode",
"default": "DIRECT_POST",
"description": "TikTok posting mode.\n\nDefaults to `DIRECT_POST` when omitted.\n\n`DIRECT_POST` publishes directly to TikTok.\n\n`MEDIA_UPLOAD` uploads the media to TikTok so the creator can\nfinish and publish it in TikTok. Users will receive an inbox notification.\n\nFields not used by the selected mode may be ignored by TikTok.\n"
},
"privacyLevel": {
"$ref": "#/$defs/TikTokPrivacyLevel",
"description": "Required when `postMode=DIRECT_POST`. Not used for `MEDIA_UPLOAD`."
},
"allowComment": {
"type": "boolean",
"description": "Whether comments should be allowed for this TikTok post."
},
"allowDuet": {
"type": "boolean",
"description": "Whether duets should be allowed for this TikTok post.\n\nThis field applies to `postType=VIDEO`.\n\nWhen `postType=PHOTO`, this field is required by the API contract\nbut is not used by TikTok.\n"
},
"allowStitch": {
"type": "boolean",
"description": "Whether stitches should be allowed for this TikTok post.\n\nThis field applies to `postType=VIDEO`.\n\nWhen `postType=PHOTO`, this field is required by the API contract\nbut is not used by TikTok.\n"
},
"isYourBrand": {
"type": "boolean",
"description": "Whether the post should be disclosed as \"Your brand\" content on TikTok."
},
"isBrandedContent": {
"type": "boolean",
"description": "Whether the post should be disclosed as branded content on TikTok."
},
"isAiGeneratedContent": {
"type": "boolean",
"default": false,
"description": "Whether the TikTok post contains AI-generated content. This field applies to video posts.\n"
},
"autoAddMusic": {
"type": "boolean",
"description": "Whether TikTok should automatically add music to this post.\n\nThis field applies to `postType=PHOTO`.\n\nWhen `postType=VIDEO`, this field is required by the API contract\nbut is not used by TikTok.\n"
}
}
},
"TikTokInput": {
"title": "TikTok",
"allOf": [
{
"$ref": "#/$defs/TikTokPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/TikTokFields"
}
]
},
"TikTokPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"TIKTOK"
]
}
]
}
}
},
"TikTokPostMode": {
"type": "string",
"enum": [
"DIRECT_POST",
"MEDIA_UPLOAD"
]
},
"TikTokPostType": {
"type": "string",
"enum": [
"VIDEO",
"PHOTO"
]
},
"TikTokPrivacyLevel": {
"type": "string",
"enum": [
"PUBLIC_TO_EVERYONE",
"SELF_ONLY",
"MUTUAL_FOLLOW_FRIENDS",
"FOLLOWER_OF_CREATOR"
]
},
"WoopTestFields": {
"type": "object",
"properties": {
"shouldSucceed": {
"type": "boolean",
"default": true,
"description": "Whether the simulated delivery should succeed or fail.\n\nDefaults to `true`. Set to `false` to simulate a delivery failure.\n"
}
}
},
"WoopTestInput": {
"title": "WoopTest",
"description": "WoopTest is a sandbox platform for testing and debugging. Posts targeting `WOOPTEST` go through the full scheduling pipeline but are never published to any real social network.",
"allOf": [
{
"$ref": "#/$defs/WoopTestPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/WoopTestFields"
}
]
},
"WoopTestPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"WOOPTEST"
]
}
]
}
}
},
"XInput": {
"title": "X",
"allOf": [
{
"$ref": "#/$defs/XPlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
}
]
},
"XPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"X"
]
}
]
}
}
},
"YouTubeFields": {
"type": "object",
"required": [
"title",
"privacy"
],
"properties": {
"title": {
"type": "string"
},
"privacy": {
"$ref": "#/$defs/YouTubePrivacy"
},
"category": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"madeForKids": {
"type": "boolean"
}
}
},
"YouTubeInput": {
"title": "YouTube",
"allOf": [
{
"$ref": "#/$defs/YouTubePlatform"
},
{
"$ref": "#/$defs/SocialAccountInputBase"
},
{
"$ref": "#/$defs/YouTubeFields"
}
]
},
"YouTubePlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"YOUTUBE"
]
}
]
}
}
},
"YouTubePrivacy": {
"type": "string",
"enum": [
"public",
"private",
"unlisted"
]
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/woopsocial-com-create-post-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.