Vendasta Social Posts API
Social Posts services: SocialPosts, SocialPostsV2, the WordPress plugin service and the blog posts service — publishing and scheduling social and blog content for a business.
Social Posts services: SocialPosts, SocialPostsV2, the WordPress plugin service and the blog posts service — publishing and scheduling social and blog content for a business.
{
"components": {
"schemas": {
"SocialPostDeletionStatus": {
"default": "NONE",
"enum": [
"NONE",
"FAILED",
"IN_PROGRESS"
],
"type": "string"
},
"SocialPostService": {
"default": "TWITTER",
"enum": [
"TWITTER",
"FACEBOOK",
"LINKED_IN",
"GOOGLE_PLUS",
"GOOGLE_MY_BUSINESS",
"UNKNOWN",
"INSTAGRAM",
"CURATED_CONTENT",
"YOUTUBE",
"TIKTOK",
"WORDPRESS"
],
"type": "string"
},
"YoutubeCustomizationV2PrivacyStatusV2": {
"default": "YOUTUBE_PRIVACY_STATUS_INVALID",
"enum": [
"YOUTUBE_PRIVACY_STATUS_INVALID",
"YOUTUBE_PRIVACY_STATUS_PUBLIC",
"YOUTUBE_PRIVACY_STATUS_PRIVATE",
"YOUTUBE_PRIVACY_STATUS_UNLISTED"
],
"type": "string"
},
"googlerpcStatus": {
"properties": {
"code": {
"format": "int32",
"type": "integer"
},
"details": {
"items": {
"$ref": "#/components/schemas/protobufAny"
},
"type": "array"
},
"message": {
"type": "string"
}
},
"type": "object"
},
"protobufAny": {
"additionalProperties": {},
"properties": {
"@type": {
"type": "string"
}
},
"type": "object"
},
"socialpostsv1Author": {
"description": "The author of a blog post.",
"properties": {
"id": {
"description": "Output only. The id of the author.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Output only. The name of the author.",
"readOnly": true,
"type": "string"
}
},
"title": "Author",
"type": "object"
},
"socialpostsv1Category": {
"description": "A blog post category.",
"properties": {
"id": {
"description": "Output only. The category id.",
"format": "int64",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Output only. The category name.",
"readOnly": true,
"type": "string"
}
},
"title": "Category",
"type": "object"
},
"socialpostsv2Author": {
"properties": {
"id": {
"format": "int64",
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"socialpostsv2Category": {
"properties": {
"id": {
"format": "int64",
"title": "This is the categoryId",
"type": "string"
},
"name": {
"title": "This is the category name",
"type": "string"
}
},
"type": "object"
},
"v1BlogPostCustomization": {
"description": "Blog post-specific customization options, including author, categories, and tags.",
"properties": {
"author": {
"$ref": "#/components/schemas/socialpostsv1Author"
},
"categories": {
"description": "Output only. The categories of the blog post.",
"items": {
"$ref": "#/components/schemas/socialpostsv1Category"
},
"readOnly": true,
"type": "array"
},
"siteType": {
"description": "Output only. The site type of the blog post.",
"readOnly": true,
"type": "string"
},
"tags": {
"description": "Output only. The tags of the blog post.",
"items": {
"type": "string"
},
"readOnly": true,
"type": "array"
}
},
"title": "BlogPostCustomization",
"type": "object"
},
"v1CallToAction": {
"description": "A call-to-action button associated with a Google My Business social post.",
"properties": {
"actionType": {
"$ref": "#/components/schemas/v1CallToActionCallToActionType"
},
"url": {
"description": "Output only. The URL for the CTA.",
"readOnly": true,
"type": "string"
}
},
"title": "CallToAction",
"type": "object"
},
"v1CallToActionCallToActionType": {
"default": "LEARN_MORE",
"enum": [
"LEARN_MORE",
"BOOK",
"ORDER",
"SHOP",
"SIGN_UP",
"GET_OFFER",
"CALL"
],
"title": "The type of the CTA",
"type": "string"
},
"v1DeleteSocialPostRequest": {
"description": "Request message for deleting a social post.",
"properties": {
"businessId": {
"description": "Required. The business to delete the social post for.",
"type": "string"
},
"socialPostId": {
"description": "Required. The post id that is going to be deleted.",
"type": "string"
}
},
"required": [
"businessId",
"socialPostId"
],
"title": "DeleteSocialPostRequest",
"type": "object"
},
"v1Error": {
"description": "Describes the reason and category of an error that occurred while scheduling or posting.",
"properties": {
"category": {
"description": "Output only. The category of the error.",
"readOnly": true,
"type": "string"
},
"reason": {
"description": "Output only. The reason for the error.",
"readOnly": true,
"type": "string"
}
},
"title": "Error",
"type": "object"
},
"v1Event": {
"description": "An event associated with a Google My Business social post.",
"properties": {
"endDatetime": {
"description": "Output only. The end timestamp of the event.",
"format": "date-time",
"readOnly": true,
"type": "string"
},
"startDatetime": {
"description": "Output only. The start timestamp of the event.",
"format": "date-time",
"readOnly": true,
"type": "string"
},
"title": {
"description": "Output only. The title of the event.",
"readOnly": true,
"type": "string"
}
},
"title": "Event",
"type": "object"
},
"v1GetMultiSocialPostsRequest": {
"description": "Request message for retrieving multiple social posts by their IDs.",
"properties": {
"businessId": {
"description": "Required. The business ID.",
"type": "string"
},
"internalPostIds": {
"description": "Required. The internal post IDs.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"businessId",
"internalPostIds"
],
"title": "GetMultiSocialPostsRequest",
"type": "object"
},
"v1GetMultiSocialPostsResponse": {
"description": "Response message containing the requested social posts.",
"properties": {
"socialPosts": {
"description": "Output only. The requested social posts.",
"items": {
"$ref": "#/components/schemas/v1SocialPost"
},
"readOnly": true,
"type": "array"
}
},
"title": "GetMultiSocialPostsResponse",
"type": "object"
},
"v1ListSocialPostsRequest": {
"description": "Request message for listing social posts for a business.",
"properties": {
"businessId": {
"description": "Required. The business to list the social posts for.",
"type": "string"
},
"cursor": {
"description": "Optional. A cursor that can be provided to retrieve the next page of results.",
"type": "string"
},
"end": {
"description": "Optional. If an end time is provided, a page of the posts older than it will be\nreturned. If an end time of the current date time is provided you will not\nget any posts that are scheduled to be posted.",
"format": "date-time",
"type": "string"
},
"pageSize": {
"description": "Optional. Number of results to grab.",
"format": "int64",
"type": "string"
},
"partnerId": {
"description": "Optional. The partner the social posts belong to.",
"type": "string"
},
"socialServiceIds": {
"description": "Optional. A list of social service IDs to request posts for.",
"items": {
"type": "string"
},
"type": "array"
},
"start": {
"description": "Optional. If a start time is provided, a page of the posts that are newer than it\nwill be returned. If a start time of the current date time is provided you\nwill get a page of posts that are scheduled to be posted.",
"format": "date-time",
"type": "string"
},
"tags": {
"description": "Optional. A list of tags to request posts for.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"businessId"
],
"title": "ListSocialPostsRequest",
"type": "object"
},
"v1ListSocialPostsResponse": {
"description": "Response message containing a page of social posts.",
"properties": {
"hasMore": {
"description": "Output only. Whether or not more results exist.",
"readOnly": true,
"type": "boolean"
},
"nextCursor": {
"description": "Output only. A cursor that can be provided to retrieve the next page of results.",
"readOnly": true,
"type": "string"
},
"socialPosts": {
"description": "Output only. A page of social posts.",
"items": {
"$ref": "#/components/schemas/v1SocialPost"
},
"readOnly": true,
"type": "array"
}
},
"title": "ListSocialPostsResponse",
"type": "object"
},
"v1MediaEntry": {
"description": "A single media item (image, video, etc.) attached to a social post.",
"properties": {
"containerId": {
"description": "Output only. The container identifier, if the network requires it.",
"readOnly": true,
"type": "string"
},
"mediaEntryId": {
"description": "Output only. The unique identifier of this media entry.",
"readOnly": true,
"type": "string"
},
"mediaPath": {
"description": "Output only. The storage path of the media.",
"readOnly": true,
"type": "string"
},
"mediaType": {
"description": "Output only. The MIME type or classification of the media (e.g. image, video).",
"readOnly": true,
"type": "string"
},
"mediaUrl": {
"description": "Output only. The URL where the media is hosted.",
"readOnly": true,
"type": "string"
},
"metaData": {
"description": "Output only. Metadata associated with this media entry.",
"items": {
"$ref": "#/components/schemas/v1MetaData"
},
"readOnly": true,
"type": "array"
}
},
"title": "MediaEntry",
"type": "object"
},
"v1MetaData": {
"description": "A key-value pair of metadata associated with a social post or media entry.",
"properties": {
"propertyName": {
"description": "Required. The name of the metadata property.",
"type": "string"
},
"propertyValue": {
"description": "Required. The value of the metadata property.",
"type": "string"
}
},
"title": "MetaData",
"type": "object"
},
"v1PostType": {
"default": "POST_TYPE_INVALID",
"enum": [
"POST_TYPE_INVALID",
"POST_TYPE_IMAGE",
"POST_TYPE_VIDEO",
"POST_TYPE_GIF",
"POST_TYPE_REEL",
"POST_TYPE_CAROUSEL",
"POST_TYPE_STORIES",
"POST_TYPE_TEXT",
"POST_TYPE_IMAGE_STORY",
"POST_TYPE_VIDEO_STORY"
],
"type": "string"
},
"v1PostingStatus": {
"default": "POSTING_IN_PROGRESS",
"enum": [
"POSTING_IN_PROGRESS",
"POSTING_FAILED",
"POSTING_COMPLETED"
],
"type": "string"
},
"v1SocialCampaign": {
"description": "Campaign details associated with a social post.",
"properties": {
"id": {
"description": "Output only. The unique ID of the campaign.",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Output only. The name of the campaign.",
"readOnly": true,
"type": "string"
}
},
"title": "SocialCampaign",
"type": "object"
},
"v1SocialPost": {
"description": "Represents a social media post, including its content, scheduling, status, and metadata.",
"properties": {
"blogPostCustomization": {
"$ref": "#/components/schemas/v1BlogPostCustomization"
},
"brandId": {
"description": "Output only. A unique identifier for a brand (if this is a multilocation post).",
"readOnly": true,
"type": "string"
},
"businessId": {
"description": "Output only. The unique identifier of the business this post is related to.",
"readOnly": true,
"type": "string"
},
"callToAction": {
"$ref": "#/components/schemas/v1CallToAction"
},
"campaign": {
"$ref": "#/components/schemas/v1SocialCampaign"
},
"created": {
"description": "Output only. The date time that this entity was created in our system (not the time that\nit was posted).",
"format": "date-time",
"readOnly": true,
"type": "string"
},
"createdBy": {
"description": "Output only. Identifier of who created this post.\nIn automation flow it will be an assistant ID.\nIn chat flow it will be a user ID.",
"readOnly": true,
"type": "string"
},
"deletionStatus": {
"$ref": "#/components/schemas/SocialPostDeletionStatus"
},
"error": {
"$ref": "#/components/schemas/v1Error"
},
"event": {
"$ref": "#/components/schemas/v1Event"
},
"imageUrl": {
"description": "Output only. The image URL posted.",
"readOnly": true,
"type": "string"
},
"imageUrls": {
"description": "Output only. A list of image URLs for this post.",
"items": {
"type": "string"
},
"readOnly": true,
"type": "array"
},
"isError": {
"description": "Output only. Whether the post encountered an error during posting.",
"readOnly": true,
"type": "boolean"
},
"linkPreviewImageUrl": {
"description": "Output only. An image that appears as a preview to a URL link.",
"readOnly": true,
"type": "string"
},
"mediaEntries": {
"description": "Output only. Array of media content when uploading multiple media.",
"items": {
"$ref": "#/components/schemas/v1MediaEntry"
},
"readOnly": true,
"type": "array"
},
"metaData": {
"description": "Output only. Metadata about the media.",
"items": {
"$ref": "#/components/schemas/v1MetaData"
},
"readOnly": true,
"type": "array"
},
"multilocationPostId": {
"description": "Output only. A unique identifier if this is a multilocation post.",
"readOnly": true,
"type": "string"
},
"name": {
"description": "Output only. The name of the social account (may not always be populated).",
"readOnly": true,
"type": "string"
},
"parentId": {
"description": "Output only. The correlation id for posts that have been posted as a group.",
"readOnly": true,
"type": "string"
},
"permalink": {
"description": "Output only. The link to the post on the social page (e.g. an actual link to Facebook).",
"readOnly": true,
"type": "string"
},
"postText": {
"description": "Output only. The text content of the post.",
"readOnly": true,
"type": "string"
},
"postType": {
"$ref": "#/components/schemas/v1PostType"
},
"posted": {
"description": "Output only. The date time that this post was posted to its corresponding social\naccount.",
"format": "date-time",
"readOnly": true,
"type": "string"
},
"profileImageUrl": {
"description": "Output only. The profile image URL of the social account that posted.",
"readOnly": true,
"type": "string"
},
"profileUrl": {
"description": "Output only. The profile URL of the social account that posted.",
"readOnly": true,
"type": "string"
},
"scheduled": {
"description": "Output only. The date time that this post is scheduled to be posted. If it's in the past\nthat means we have or are attempting to post this. You can see if it was\nsuccessful based on the status.",
"format": "date-time",
"readOnly": true,
"type": "string"
},
"service": {
"$ref": "#/components/schemas/SocialPostService"
},
"socialPostId": {
"description": "Output only. The unique identifier of this social post.",
"readOnly": true,
"type": "string"
},
"socialServiceId": {
"description": "Output only. The id of the social service this post was created with.",
"readOnly": true,
"type": "string"
},
"status": {
"$ref": "#/components/schemas/v1PostingStatus"
},
"tiktokCustomization": {
"$ref": "#/components/schemas/v1TikTokCustomization"
},
"title": {
"description": "Output only. The title of the post.",
"readOnly": true,
"type": "string"
},
"updatedBy": {
"description": "Output only. Identifier of who last updated this post. Empty until the first\nupdate, then overwritten on every subsequent update.\nIn automation flow it will be an assistant ID.\nIn chat flow it will be a user ID.",
"readOnly": true,
"type": "string"
},
"username": {
"description": "Output only. The username of the social account (may not always be populated).",
"readOnly": true,
"type": "string"
},
"videoUrl": {
"description": "Output only. The video URL posted.",
"readOnly": true,
"type": "string"
},
"youtubeCustomization": {
"$ref": "#/components/schemas/v1YoutubeCustomization"
}
},
"title": "SocialPost",
"type": "object"
},
"v1TikTokCustomization": {
"description": "TikTok-specific options for video posts, including community interaction and branding settings.",
"properties": {
"allowComment": {
"description": "Output only. Whether viewers can comment on the video. Default: true for public engagement.",
"readOnly": true,
"type": "boolean"
},
"allowDuet": {
"description": "Output only. Whether other users can create duet videos (side-by-side reactions).",
"readOnly": true,
"type": "boolean"
},
"allowStitch": {
"description": "Output only. Whether other users can stitch/use clips from this video in their content.",
"readOnly": true,
"type": "boolean"
},
"isBrandOrganic": {
"description": "Output only. Whether this is organic brand content (not paid promotion).\nREQUIRED by TikTok. Set to true for regular business posts, false for paid advertising.",
"readOnly": true,
"type": "boolean"
},
"isBrandedContent": {
"description": "Output only. Whether this video contains branded content or product placement.\nREQUIRED by TikTok. Set to true if showcasing products/services, false for general content.",
"readOnly": true,
"type": "boolean"
}
},
"title": "TikTokCustomization",
"type": "object"
},
"v1YoutubeCustomization": {
"description": "YouTube-specific customization options for video posts, including title and privacy settings.",
"properties": {
"privacyStatus": {
"$ref": "#/components/schemas/v1YoutubeCustomizationPrivacyStatus"
},
"title": {
"description": "Output only. Title of the YouTube video.",
"readOnly": true,
"type": "string"
}
},
"title": "YoutubeCustomization",
"type": "object"
},
"v1YoutubeCustomizationPrivacyStatus": {
"default": "YOUTUBE_PRIVACY_STATUS_INVALID",
"description": " - YOUTUBE_PRIVACY_STATUS_PUBLIC: Video is visible to everyone on YouTube and can appear in search results.\nUse this for public content meant to reach a wide audience.\n - YOUTUBE_PRIVACY_STATUS_PRIVATE: Video is only visible to the owner and cannot be shared or found in search.\nUse this for videos that should not be accessible to anyone else.\n - YOUTUBE_PRIVACY_STATUS_UNLISTED: Video can be viewed by anyone with the direct link but won't appear in search results\nor on the channel page. Use this for semi-private sharing (e.g., sharing with clients).",
"enum": [
"YOUTUBE_PRIVACY_STATUS_INVALID",
"YOUTUBE_PRIVACY_STATUS_PUBLIC",
"YOUTUBE_PRIVACY_STATUS_PRIVATE",
"YOUTUBE_PRIVACY_STATUS_UNLISTED"
],
"type": "string"
},
"v2BlogImage": {
"properties": {
"path": {
"title": "The path of the image",
"type": "string"
},
"publicUrl": {
"title": "The public url of the image",
"type": "string"
}
},
"type": "object"
},
"v2BlogPost": {
"properties": {
"author": {
"$ref": "#/components/schemas/socialpostsv2Author"
},
"businessId": {
"title": "Business ID",
"type": "string"
},
"categories": {
"items": {
"$ref": "#/components/schemas/socialpostsv2Category"
},
"title": "Category for a blog",
"type": "array"
},
"commentsCount": {
"format": "int64",
"title": "Blog comment count",
"type": "string"
},
"content": {
"title": "Blog Content",
"type": "string"
},
"created": {
"format": "date-time",
"title": "Created Time",
"type": "string"
},
"createdBy": {
"description": "Identifier of who created this blog post.\nIn automation flow it will be an assistant ID.\nIn chat flow it will be a user ID.",
"type": "string"
},
"deleted": {
"format": "date-time",
"title": "Deleted Time",
"type": "string"
},
"error": {
"title": "Holds the error message from blog",
"type": "string"
},
"images": {
"items": {
"$ref": "#/components/schemas/v2MediaProperty"
},
"title": "Image property for Blog",
"type": "array"
},
"internalPostId": {
"title": "Internal post Id of Blog",
"type": "string"
},
"metadata": {
"items": {
"$ref": "#/components/schemas/v2MetadataV2"
},
"title": "Key/value metadata associated with the blog post (e.g. assistant_type, workflow_type, workflow_source)",
"type": "array"
},
"pageViews": {
"format": "int64",
"title": "Blog post visitor count",
"type": "string"
},
"partnerId": {
"title": "Partner ID",
"type": "string"
},
"permalink": {
"title": "Permalink for a blog",
"type": "string"
},
"postDateTime": {
"format": "date-time",
"title": "Blog post date time",
"type": "string"
},
"postId": {
"title": "Blog Post Id",
"type": "string"
},
"postedDateTime": {
"format": "date-time",
"title": "Blog posted date time",
"type": "string"
},
"siteType": {
"title": "Site Type",
"type": "string"
},
"socialServiceId": {
"title": "Social service Id for blog",
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"title": "Tags for a blog",
"type": "array"
},
"title": {
"title": "Blog Title",
"type": "string"
},
"updated": {
"format": "date-time",
"title": "Updated Time",
"type": "string"
},
"updatedBy": {
"description": "Identifier of who last updated this blog post. Empty until the first\nupdate, then overwritten on every subsequent update.\nIn chat flow it will be a user ID.",
"type": "string"
},
"userId": {
"title": "User Id",
"type": "string"
},
"userName": {
"title": "User Name",
"type": "string"
},
"video": {
"items": {
"$ref": "#/components/schemas/v2MediaProperty"
},
"title": "Video property for Blog",
"type": "array"
}
},
"type": "object"
},
"v2BlogVideo": {
"properties": {
"path": {
"title": "The path of the video",
"type": "string"
},
"publicUrl": {
"title": "The public url of the video",
"type": "string"
}
},
"type": "object"
},
"v2DeleteBlogPostRequest": {
"description": "Request message for deleting a blog post.",
"properties": {
"businessId": {
"description": "Required. The business id.",
"type": "string"
},
"internalPostId": {
"description": "Required. The internal post id of the blog post to delete.",
"type": "string"
},
"parentPostId": {
"description": "Optional. The parent post id, if applicable.",
"type": "string"
}
},
"required": [
"businessId",
"internalPostId"
],
"title": "DeleteBlogPostRequest",
"type": "object"
},
"v2LinkV2": {
"description": "Link preview information associated with a social post, including URL, title, and preview image.",
"properties": {
"description": {
"description": "Optional. The description of the link.",
"type": "string"
},
"name": {
"description": "Optional. The name of the link preview.",
"type": "string"
},
"picture": {
"description": "Optional. The preview image associated with the link.",
"type": "string"
},
"shortcode": {
"description": "Optional. The shortcode of the link.",
"type": "string"
},
"title": {
"description": "Optional. The title for the link.",
"type": "string"
},
"url": {
"description": "Required. The URL of the link.",
"type": "string"
}
},
"required": [
"url"
],
"title": "LinkV2",
"type": "object"
},
"v2ListPostableSocialServiceRequest": {
"description": "Request message for listing postable social services for a business.",
"properties": {
"businessId": {
"description": "Required. The business id of the account.",
"type": "string"
}
},
"required": [
"businessId"
],
"title": "ListPostableSocialServiceRequest",
"type": "object"
},
"v2ListPostableSocialServiceResponse": {
"description": "Response message containing the list of postable social services.",
"properties": {
"postableSocialService": {
"description": "Output only. List of postable social services.",
"items": {
"$ref": "#/components/schemas/v2SocialService"
},
"readOnly": true,
"type": "array"
}
},
"title": "ListPostableSocialServiceResponse",
"type": "object"
},
"v2MediaProperty": {
"properties": {
"path": {
"title": "Path of media",
"type": "string"
},
"publicUrl": {
"title": "Public Url for the blog media",
"type": "string"
}
},
"type": "object"
},
"v2MetadataV2": {
"description": "A key-value pair used to store generic metadata information associated with a post or media.",
"properties": {
"name": {
"description": "Required. The property name or key.",
"type": "string"
},
"value": {
"description": "Required. The property value associated with the name/key.",
"type": "string"
}
},
"required": [
"name",
"value"
],
"title": "MetadataV2",
"type": "object"
},
"v2PostActionV2": {
"description": "A call-to-action (CTA) associated with a social post.",
"properties": {
"linkUrl": {
"description": "Required. The link URL where the CTA will lead to.",
"type": "string"
},
"type": {
"description": "Required. The
# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vendasta/refs/heads/main/openapi/vendasta-social-posts-openapi.json