Properties
| Name | Type | Description |
|---|---|---|
| id | string | Post identifier. |
| projectId | string | Project identifier that the selected social accounts belong to. |
| content | object | |
| schedule | object | |
| autoDeleteMediaAfterPublish | boolean | Whether media auto-delete-after-publish is enabled for this post. |
| retryPolicy | object | |
| socialAccountPosts | array | Platform-specific post instances. |
| createdAt | string | UTC time when the post was created. |
| updatedAt | string | UTC time when the post was last updated. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/woopsocial-com/json-schema/woopsocial-com-post-schema.json",
"title": "Post",
"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/Post",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"projectId",
"content",
"schedule",
"autoDeleteMediaAfterPublish",
"socialAccountPosts",
"createdAt",
"updatedAt"
],
"properties": {
"id": {
"type": "string",
"description": "Post identifier."
},
"projectId": {
"type": "string",
"description": "Project identifier that the selected social accounts belong to."
},
"content": {
"$ref": "#/$defs/PostContent"
},
"schedule": {
"$ref": "#/$defs/PostSchedule"
},
"autoDeleteMediaAfterPublish": {
"type": "boolean",
"description": "Whether media auto-delete-after-publish is enabled for this post."
},
"retryPolicy": {
"$ref": "#/$defs/PostRetryPolicy"
},
"socialAccountPosts": {
"type": "array",
"minItems": 1,
"description": "Platform-specific post instances.",
"items": {
"$ref": "#/$defs/SocialAccountPost"
}
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "UTC time when the post was created."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "UTC time when the post was last updated."
}
},
"$defs": {
"BlueskyPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"BLUESKY"
]
}
]
}
}
},
"BlueskyPost": {
"title": "Bluesky",
"allOf": [
{
"$ref": "#/$defs/BlueskyPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
}
]
},
"DeliveryStatus": {
"type": "string",
"description": "Delivery lifecycle status for a post.\n\n`NOT_STARTED`: The post exists and is scheduled, but delivery has not started yet.\n`SENDING`: Delivery is currently in progress.\n`PUBLISHED`: Delivery completed successfully.\n`FAILED`: Delivery completed unsuccessfully.\n",
"enum": [
"NOT_STARTED",
"SENDING",
"PUBLISHED",
"FAILED"
]
},
"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"
}
}
},
"FacebookPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"FACEBOOK"
]
}
]
}
}
},
"FacebookPost": {
"title": "Facebook",
"allOf": [
{
"$ref": "#/$defs/FacebookPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/FacebookFields"
}
]
},
"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"
}
}
},
"InstagramPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"INSTAGRAM"
]
}
]
}
}
},
"InstagramPost": {
"title": "Instagram",
"allOf": [
{
"$ref": "#/$defs/InstagramPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/InstagramFields"
}
]
},
"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."
}
}
},
"LinkedInPagesPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"LINKEDIN_PAGES"
]
}
]
}
}
},
"LinkedInPagesPost": {
"title": "LinkedIn Pages",
"allOf": [
{
"$ref": "#/$defs/LinkedInPagesPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/LinkedInFields"
}
]
},
"LinkedInPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"LINKEDIN"
]
}
]
}
}
},
"LinkedInPost": {
"title": "LinkedIn",
"allOf": [
{
"$ref": "#/$defs/LinkedInPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/LinkedInFields"
}
]
},
"MediaLibraryPostContentMedia": {
"title": "Media Library Post Content Media",
"type": "object",
"additionalProperties": false,
"required": [
"type",
"mediaId",
"mediaType",
"url",
"thumbnailUrl"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MEDIA_LIBRARY"
]
},
"mediaId": {
"type": "string",
"description": "Media identifier from the media library."
},
"mediaType": {
"$ref": "#/$defs/MediaType"
},
"url": {
"type": "string",
"format": "uri",
"description": "Canonical media URL."
},
"thumbnailUrl": {
"type": "string",
"format": "uri",
"description": "Thumbnail or preview URL for the media item."
}
}
},
"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`."
}
}
},
"MediaType": {
"type": "string",
"enum": [
"IMAGE",
"VIDEO"
]
},
"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."
}
}
},
"PinterestPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"PINTEREST"
]
}
]
}
}
},
"PinterestPost": {
"title": "Pinterest",
"allOf": [
{
"$ref": "#/$defs/PinterestPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/PinterestFields"
}
]
},
"PostAnalytics": {
"type": "object",
"additionalProperties": false,
"description": "Latest stored lifetime metrics for this social account post. Each supported\nmetric contains its latest snapshot, or an empty array if no observation\nexists. Unsupported metrics are omitted; unsupported platforms and post\ntypes return an empty object. Zero is a recorded value, not missing data.\n\nMetrics are collected asynchronously and can have different snapshot dates.\nReading posts does not refresh analytics. Arrays allow future snapshot\nranges without changing the response shape; date-range queries are not\ncurrently supported.\n",
"properties": {
"views": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"impressions": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"uniqueImpressions": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"likes": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"reactions": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"comments": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"shares": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"saves": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"clicks": {
"$ref": "#/$defs/PostAnalyticsSnapshots"
},
"engagementRate": {
"$ref": "#/$defs/PostAnalyticsSnapshots",
"description": "LinkedIn Pages provider-reported engagement ratio; 0.03 means 3 percent."
}
}
},
"PostAnalyticsSnapshot": {
"type": "object",
"additionalProperties": false,
"required": [
"date",
"collectedAt",
"value"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "UTC date of the snapshot, not the day the engagement occurred."
},
"collectedAt": {
"type": "string",
"format": "date-time",
"description": "UTC collection timestamp for this observation."
},
"value": {
"type": "number",
"format": "double",
"description": "Observed lifetime count, or a ratio for engagementRate."
}
}
},
"PostAnalyticsSnapshots": {
"type": "array",
"items": {
"$ref": "#/$defs/PostAnalyticsSnapshot"
}
},
"PostContent": {
"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 returned.\n",
"items": {
"$ref": "#/$defs/PostContentItem"
}
},
"PostContentItem": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"text": {
"type": "string",
"description": "Text content for this thread item."
},
"media": {
"type": "array",
"items": {
"$ref": "#/$defs/PostContentMedia"
}
}
}
},
"PostContentMedia": {
"description": "Resolved content media.\n",
"oneOf": [
{
"$ref": "#/$defs/MediaLibraryPostContentMedia"
}
]
},
"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"
}
}
},
"SocialAccountPost": {
"oneOf": [
{
"$ref": "#/$defs/PinterestPost"
},
{
"$ref": "#/$defs/InstagramPost"
},
{
"$ref": "#/$defs/FacebookPost"
},
{
"$ref": "#/$defs/ThreadsPost"
},
{
"$ref": "#/$defs/BlueskyPost"
},
{
"$ref": "#/$defs/TikTokPost"
},
{
"$ref": "#/$defs/YouTubePost"
},
{
"$ref": "#/$defs/XPost"
},
{
"$ref": "#/$defs/LinkedInPost"
},
{
"$ref": "#/$defs/LinkedInPagesPost"
},
{
"$ref": "#/$defs/WoopTestPost"
}
]
},
"SocialAccountPostBase": {
"type": "object",
"additionalProperties": false,
"required": [
"socialAccountPostId",
"postId",
"projectId",
"socialAccountId",
"deliveryStatus",
"content",
"schedule",
"createdAt",
"updatedAt",
"analytics"
],
"properties": {
"socialAccountPostId": {
"type": "string",
"description": "Social account post identifier."
},
"postId": {
"type": "string",
"description": "Parent post identifier."
},
"projectId": {
"type": "string",
"description": "Project identifier."
},
"socialAccountId": {
"type": "string",
"description": "Connected social account identifier."
},
"deliveryStatus": {
"$ref": "#/$defs/DeliveryStatus"
},
"content": {
"$ref": "#/$defs/PostContent",
"description": "Content for this social account post."
},
"schedule": {
"$ref": "#/$defs/PostSchedule",
"description": "Schedule for this social account post."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "UTC time when the social account post was created."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "UTC time when the social account post was last updated."
},
"deliveryCompletedAt": {
"type": "string",
"format": "date-time",
"description": "UTC time when the latest delivery attempt for this social account post completed both for successful (`PUBLISHED`) and unsuccessful (`FAILED`) terminal `deliveryStatus` values."
},
"externalPostId": {
"type": "string"
},
"externalPostUrl": {
"type": "string",
"format": "uri"
},
"errorMessage": {
"type": "string"
},
"analytics": {
"$ref": "#/$defs/PostAnalytics"
}
}
},
"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"
},
"ThreadsPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"THREADS"
]
}
]
}
}
},
"ThreadsPost": {
"title": "Threads",
"allOf": [
{
"$ref": "#/$defs/ThreadsPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
}
]
},
"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"
}
}
},
"TikTokPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"TIKTOK"
]
}
]
}
}
},
"TikTokPost": {
"title": "TikTok",
"allOf": [
{
"$ref": "#/$defs/TikTokPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/TikTokFields"
}
]
},
"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"
}
}
},
"WoopTestPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"WOOPTEST"
]
}
]
}
}
},
"WoopTestPost": {
"title": "WoopTest",
"allOf": [
{
"$ref": "#/$defs/WoopTestPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/WoopTestFields"
}
]
},
"XPlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"X"
]
}
]
}
}
},
"XPost": {
"title": "X",
"allOf": [
{
"$ref": "#/$defs/XPlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
}
]
},
"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"
}
}
},
"YouTubePlatform": {
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"allOf": [
{
"$ref": "#/$defs/SocialPlatform"
},
{
"type": "string",
"enum": [
"YOUTUBE"
]
}
]
}
}
},
"YouTubePost": {
"title": "YouTube",
"allOf": [
{
"$ref": "#/$defs/YouTubePlatform"
},
{
"$ref": "#/$defs/SocialAccountPostBase"
},
{
"$ref": "#/$defs/YouTubeFields"
}
]
},
"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-post"
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.