Vendasta Composer API
The Composer service on the Vendasta gRPC gateway, used for composing content within the platform.
The Composer service on the Vendasta gRPC gateway, used for composing content within the platform.
{
"components": {
"schemas": {
"YoutubeCustomizationPrivacyStatus": {
"default": "STATUS_INVALID",
"enum": [
"STATUS_INVALID",
"STATUS_PUBLIC",
"STATUS_PRIVATE",
"STATUS_UNLISTED"
],
"type": "string"
},
"composerv1MediaEntry": {
"description": "Media Entry field to have media\nThis is currently starting with Instagram Carousel posts but\nwe would need to update other post types as well.",
"properties": {
"containerId": {
"type": "string"
},
"mediaEntryId": {
"type": "string"
},
"mediaType": {
"type": "string"
},
"mediaUrl": {
"type": "string"
},
"metaData": {
"items": {
"$ref": "#/components/schemas/v1MetaData"
},
"type": "array"
}
},
"type": "object"
},
"protobufAny": {
"additionalProperties": {},
"properties": {
"@type": {
"type": "string"
}
},
"type": "object"
},
"rpcStatus": {
"properties": {
"code": {
"format": "int32",
"type": "integer"
},
"details": {
"items": {
"$ref": "#/components/schemas/protobufAny"
},
"type": "array"
},
"message": {
"type": "string"
}
},
"type": "object"
},
"v1Exception": {
"description": "An error encountered for a specific social service during a post operation.",
"properties": {
"message": {
"description": "Output only. The error message describing what went wrong.",
"readOnly": true,
"type": "string"
},
"socialServiceId": {
"description": "Output only. The social service ID where the error occurred.",
"readOnly": true,
"type": "string"
}
},
"title": "Exception",
"type": "object"
},
"v1GMBPostCustomization": {
"properties": {
"ctaType": {
"type": "string"
},
"eventEnd": {
"format": "date-time",
"type": "string"
},
"eventStart": {
"format": "date-time",
"type": "string"
},
"linkUrl": {
"type": "string"
},
"title": {
"type": "string"
}
},
"type": "object"
},
"v1Link": {
"properties": {
"description": {
"title": "The description of the link",
"type": "string"
},
"name": {
"title": "The name of the link preview",
"type": "string"
},
"picture": {
"description": "The preview image associated with the link.",
"type": "string"
},
"title": {
"title": "The title for the link",
"type": "string"
}
},
"type": "object"
},
"v1MetaData": {
"description": "Metadata message type for saving properties in individual µservice\nThis is currently starting with Instagram Carousel posts but\nwe would need to update other post types as well.",
"properties": {
"propertyName": {
"type": "string"
},
"propertyValue": {
"type": "string"
}
},
"type": "object"
},
"v1Post": {
"description": "A social media post to be scheduled, updated, or returned in results.",
"properties": {
"brandId": {
"description": "Optional. If this is an ML post, brand ID is also required.",
"type": "string"
},
"businessId": {
"description": "Required. The business ID of the account.",
"type": "string"
},
"gifUrl": {
"description": "Optional. The URL of a gif to post.",
"type": "string"
},
"gmbPostCustomization": {
"$ref": "#/components/schemas/v1GMBPostCustomization"
},
"imageUrls": {
"description": "Optional. The URLs of images to include on the post.",
"items": {
"type": "string"
},
"type": "array"
},
"internalPostId": {
"description": "Required. The internal post ID, used to identify the post for updates.",
"type": "string"
},
"isMultilocation": {
"description": "Optional. If this is a multi-location composer post or not.",
"type": "boolean"
},
"link": {
"$ref": "#/components/schemas/v1Link"
},
"linkShortCodes": {
"description": "Optional. The shortcodes of links in the post.",
"items": {
"type": "string"
},
"type": "array"
},
"linkUrl": {
"description": "Optional. The URL of a link to post.",
"type": "string"
},
"mediaEntries": {
"description": "Optional. Array of media content when uploading multiple media.",
"items": {
"$ref": "#/components/schemas/composerv1MediaEntry"
},
"type": "array"
},
"metaData": {
"description": "Optional. Metadata about the media, could be anything.",
"items": {
"$ref": "#/components/schemas/v1MetaData"
},
"type": "array"
},
"postText": {
"description": "Optional. The post text content.",
"type": "string"
},
"postType": {
"$ref": "#/components/schemas/v1PostType"
},
"scheduled": {
"description": "Optional. The time to schedule the post for.",
"format": "date-time",
"type": "string"
},
"socialServiceId": {
"description": "Required. The ID of the social service connection to publish to.",
"type": "string"
},
"tiktokCustomization": {
"$ref": "#/components/schemas/v1TikTokCustomization"
},
"title": {
"description": "Optional. The title of the post. Used by YouTube and LinkedIn.",
"type": "string"
},
"videoUrl": {
"description": "Optional. The URL of a video to post.",
"type": "string"
},
"youtubeCustomization": {
"$ref": "#/components/schemas/v1YoutubeCustomization"
}
},
"required": [
"socialServiceId",
"businessId",
"internalPostId"
],
"title": "Post",
"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"
},
"v1Result": {
"description": "A successful result containing the social post ID and post details.",
"properties": {
"post": {
"$ref": "#/components/schemas/v1Post"
},
"socialPostId": {
"description": "Output only. The social post ID assigned by the social media platform.",
"readOnly": true,
"type": "string"
}
},
"title": "Result",
"type": "object"
},
"v1TikTokCustomization": {
"properties": {
"allowComment": {
"type": "boolean"
},
"allowDuet": {
"type": "boolean"
},
"allowStitch": {
"type": "boolean"
},
"isBrandOrganic": {
"type": "boolean"
},
"isBrandedContent": {
"type": "boolean"
}
},
"type": "object"
},
"v1UpdatePostsRequest": {
"description": "Request to update one or more scheduled social media posts.",
"properties": {
"posts": {
"description": "Required. The list of posts to update. Each post must include its internal_post_id.",
"items": {
"$ref": "#/components/schemas/v1Post"
},
"type": "array"
}
},
"required": [
"posts"
],
"title": "UpdatePostsRequest",
"type": "object"
},
"v1UpdatePostsResponse": {
"description": "Response containing the results of updating social media posts.",
"properties": {
"exceptions": {
"description": "Output only. Exceptions encountered during post updates.",
"items": {
"$ref": "#/components/schemas/v1Exception"
},
"readOnly": true,
"type": "array"
},
"results": {
"description": "Output only. The successfully updated posts.",
"items": {
"$ref": "#/components/schemas/v1Result"
},
"readOnly": true,
"type": "array"
}
},
"title": "UpdatePostsResponse",
"type": "object"
},
"v1YoutubeCustomization": {
"properties": {
"privacyStatus": {
"$ref": "#/components/schemas/YoutubeCustomizationPrivacyStatus"
}
},
"type": "object"
}
},
"securitySchemes": {
"OAuth2": {
"flows": {
"authorizationCode": {
"authorizationUrl": "https://sso-api-prod.apigateway.co/oauth2/auth",
"scopes": {},
"tokenUrl": "https://sso-api-prod.apigateway.co/oauth2/token"
}
},
"type": "oauth2"
}
}
},
"info": {
"title": "Composer",
"version": "1.14.0"
},
"openapi": "3.0.0",
"paths": {
"/v1/composer/update": {
"post": {
"operationId": "Composer_UpdatePosts",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v1UpdatePostsRequest"
}
}
},
"description": "Request to update one or more scheduled social media posts.",
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/v1UpdatePostsResponse"
}
}
},
"description": "A successful response."
},
"default": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/rpcStatus"
}
}
},
"description": "An unexpected error response."
}
},
"summary": "Update Posts",
"tags": [
"Composer"
]
}
}
},
"servers": [
{
"description": "Production",
"url": "https://prod.apigateway.co/grpc"
}
],
"tags": [
{
"name": "Composer"
}
]
}