woopsocial-com · Schema

CreatePostRequest

CompanySocial MediaMCPAI Agents

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.
View JSON Schema on GitHub

JSON Schema

woopsocial-com-create-post-request-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.