Vendasta Drafts API
The Drafts API from Vendasta — 8 operation(s) for drafts.
The Drafts API from Vendasta — 8 operation(s) for drafts.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/vendasta-drafts-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Social Drafts API
version: 1.13.0
servers:
- description: Production
url: https://prod.apigateway.co/grpc
tags:
- name: Drafts
paths:
/v1/social-drafts/create:
post:
operationId: Drafts_CreateDraft
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1CreateDraftRequest'
description: Request message for creating a new social draft.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1CreateDraftResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
security:
- OAuth2:
- business-app
summary: Create Draft
tags:
- Drafts
/v1/social-drafts/create-multi:
post:
operationId: Drafts_CreateMultiDrafts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1CreateMultiDraftsRequest'
description: Request message for creating multiple social drafts at once.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1CreateMultiDraftsResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
summary: Create Multi Drafts
tags:
- Drafts
/v1/social-drafts/delete:
post:
operationId: Drafts_DeleteDraft
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1DeleteDraftRequest'
description: Request message for deleting a social draft.
required: true
responses:
'200':
content:
application/json:
schema:
type: object
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
security:
- OAuth2:
- business-app
summary: Delete Draft
tags:
- Drafts
/v1/social-drafts/delete-multi:
post:
operationId: Drafts_DeleteMultiMLDrafts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1MultiDeleteMLDraftPostsRequest'
description: Request message for deleting multiple multilocation draft posts.
required: true
responses:
'200':
content:
application/json:
schema:
type: object
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
summary: Delete Multi ML Drafts
tags:
- Drafts
/v1/social-drafts/get:
post:
operationId: Drafts_GetDraft
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1GetDraftRequest'
description: Request message for retrieving a single social draft.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1GetDraftResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
summary: Get Draft
tags:
- Drafts
/v1/social-drafts/list:
post:
operationId: Drafts_ListDrafts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1ListDraftsRequest'
description: Request message for listing social drafts for a given account group.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1ListDraftsResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
summary: List Drafts
tags:
- Drafts
/v1/social-drafts/update:
post:
operationId: Drafts_UpdateDraft
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1UpdateDraftRequest'
description: Request message for updating an existing social draft.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/v1UpdateDraftResponse'
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
security:
- OAuth2:
- business-app
summary: Update Draft
tags:
- Drafts
/v1/social-drafts/update-multi:
post:
operationId: Drafts_UpdateMultiMLDrafts
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1UpdateMultiMLDraftsRequest'
description: Request message for updating multiple multilocation drafts at once.
required: true
responses:
'200':
content:
application/json:
schema:
type: object
description: A successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
description: An unexpected error response.
summary: Update Multi ML Drafts
tags:
- Drafts
components:
schemas:
rpcStatus:
properties:
code:
format: int32
type: integer
details:
items:
$ref: '#/components/schemas/protobufAny'
type: array
message:
type: string
type: object
v1ListDraftsResponse:
description: Response message containing a page of social drafts.
properties:
drafts:
description: Output only. List of obtained drafts.
items:
$ref: '#/components/schemas/v1Draft'
readOnly: true
type: array
hasMore:
description: Output only. Boolean if there are more drafts to get.
readOnly: true
type: boolean
nextCursor:
description: Output only. Cursor to more drafts if it is greater then the page size.
readOnly: true
type: string
title: ListDraftsResponse
type: object
v1Media:
description: A single media item (image, video, or gif) attached to a draft.
properties:
gifUrl:
description: Optional. URL to a gif, if this media is a gif.
type: string
imageUrl:
description: Optional. URL for an image, if this media is an image.
type: string
mediaId:
description: Optional. Id of the media entry (mostly used when dealing with more than one).
type: string
metaData:
description: Optional. Any metadata associated with this Media (source, last raised exception, etc).
items:
$ref: '#/components/schemas/v1MetaData'
type: array
videoUrl:
description: Optional. URL to a video, if this media is a video.
type: string
title: Media
type: object
v1SSIDDraftType:
description: Maps a social service ID to its corresponding draft type.
properties:
draftType:
$ref: '#/components/schemas/v1DraftType'
ssid:
description: Required. The social service ID.
type: string
required:
- ssid
- draftType
title: SSIDDraftType
type: object
v1BlogPostCustomization:
description: Blog post-specific customization options for a draft, including author, categories, and tags.
properties:
author:
$ref: '#/components/schemas/v1Author'
categories:
description: Optional. The categories of the blog post.
items:
$ref: '#/components/schemas/v1Categories'
type: array
siteType:
description: Optional. The site type of the blog post.
type: string
tags:
description: Optional. The tags of the blog post.
items:
type: string
type: array
title:
description: Optional. The title of the blog post.
type: string
title: BlogPostCustomization
type: object
v1TikTokCustomization:
description: TikTok-specific customization options for video drafts, including community interaction and branding settings.
properties:
allowComment:
description: Optional. Whether viewers can comment on the video.
type: boolean
allowDuet:
description: Optional. Whether other users can create duet videos.
type: boolean
allowStitch:
description: Optional. Whether other users can stitch clips from this video.
type: boolean
isBrandOrganic:
description: Optional. Whether this is organic brand content.
type: boolean
isBrandedContent:
description: Optional. Whether this video contains branded content or product placement.
type: boolean
title: TikTokCustomization
type: object
v1DeleteDraftRequest:
description: Request message for deleting a social draft.
properties:
accountGroupId:
description: Required. The account group id.
type: string
draftId:
description: Required. The internal id of the draft.
type: string
required:
- accountGroupId
- draftId
title: DeleteDraftRequest
type: object
v1CreateDraftResponse:
description: Response message containing the newly created draft.
properties:
draft:
$ref: '#/components/schemas/v1Draft'
title: CreateDraftResponse
type: object
v1Draft:
description: Represents a social media draft post, including its content, scheduling, and metadata.
properties:
accountGroupId:
description: Output only. Unique id signifying account group this draft belongs to.
readOnly: true
type: string
blogPostCustomization:
$ref: '#/components/schemas/v1BlogPostCustomization'
brandId:
description: Output only. The brand id of the draft.
readOnly: true
type: string
campaignCustomization:
$ref: '#/components/schemas/v1CampaignCustomization'
created:
description: Output only. Time when the draft was created.
format: date-time
readOnly: true
type: string
draftId:
description: Output only. Unique id for the draft.
readOnly: true
type: string
draftText:
description: Output only. Raw text of the draft.
readOnly: true
type: string
draftType:
$ref: '#/components/schemas/v1DraftType'
gmbPostCustomization:
$ref: '#/components/schemas/v1GMBPostCustomization'
isHidden:
description: Output only. Whether this draft is hidden.
readOnly: true
type: boolean
media:
description: Output only. A list of media attached to this draft.
items:
$ref: '#/components/schemas/v1Media'
readOnly: true
type: array
metadata:
description: Output only. Any metadata associated with this draft (source, last raised exception, etc).
items:
$ref: '#/components/schemas/v1MetaData'
readOnly: true
type: array
multilocationPostId:
description: Output only. The multilocation post id of the draft.
readOnly: true
type: string
options:
description: Output only. Special configuration options for the composer.
items:
type: string
readOnly: true
type: array
postDateTime:
description: Output only. Time the draft is set to be posted at.
format: date-time
readOnly: true
type: string
previews:
description: Output only. Preview link for shortened URL Links.
readOnly: true
type: string
socialNetworkIdentifier:
description: 'Output only. Identifier for the social network platform (e.g., LinkedIn Profile URL).
Used to track drafts associated with specific social network profiles,
particularly when connections are disconnected and posts move to drafts.'
readOnly: true
type: string
ssidDraftTypes:
description: Output only. SSID Draft Type mapping.
items:
$ref: '#/components/schemas/v1SSIDDraftType'
readOnly: true
type: array
ssids:
description: Output only. Social Service ids used in this draft.
items:
type: string
readOnly: true
type: array
tiktokCustomization:
$ref: '#/components/schemas/v1TikTokCustomization'
updated:
description: Output only. Time when the draft was updated.
format: date-time
readOnly: true
type: string
youtubeCustomization:
$ref: '#/components/schemas/v1YoutubeCustomization'
title: Draft
type: object
v1MetaData:
description: A key-value pair of metadata associated with a draft 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
required:
- propertyName
- propertyValue
title: MetaData
type: object
v1Categories:
description: A blog post category.
properties:
id:
description: Optional. The category id.
format: int64
type: string
name:
description: Optional. The category name.
type: string
title: Categories
type: object
v1CreateMultiDraftsRequest:
description: Request message for creating multiple social drafts at once.
properties:
drafts:
description: Required. The list of drafts to create.
items:
$ref: '#/components/schemas/v1CreateDraftRequest'
type: array
required:
- drafts
title: CreateMultiDraftsRequest
type: object
v1UpdateMultiMLDraftsRequest:
description: Request message for updating multiple multilocation drafts at once.
properties:
drafts:
description: Required. Array of UpdateDraftRequest.
items:
$ref: '#/components/schemas/v1UpdateDraftRequest'
type: array
required:
- drafts
title: UpdateMultiMLDraftsRequest
type: object
v1CreateDraftRequest:
description: Request message for creating a new social draft.
properties:
accountGroupId:
description: Required. Unique id signifying account group this belongs to.
type: string
blogPostCustomization:
$ref: '#/components/schemas/v1BlogPostCustomization'
brandId:
description: Optional. The brand id of the draft.
type: string
campaignCustomization:
$ref: '#/components/schemas/v1CampaignCustomization'
draftText:
description: Optional. Raw text of the draft.
type: string
draftType:
$ref: '#/components/schemas/v1DraftType'
gmbPostCustomization:
$ref: '#/components/schemas/v1GMBPostCustomization'
isHidden:
description: Optional. Whether the draft is hidden.
type: boolean
media:
description: Optional. List of the media attached to the draft.
items:
$ref: '#/components/schemas/v1Media'
type: array
metadata:
items:
$ref: '#/components/schemas/v1MetaData'
title: Optional. Any metadata associated with this draft (source, last raised exception, etc)
type: array
multilocationPostId:
description: Optional. The multilocation post id of the draft.
type: string
options:
description: Optional. Special configurations options for the composer.
items:
type: string
type: array
postDateTime:
description: Optional. Time the draft is set to be posted at.
format: date-time
type: string
previews:
description: Optional. Preview link for shortened URL Links.
type: string
socialNetworkIdentifier:
description: 'Optional. Identifier for the social network platform (e.g., LinkedIn Profile URL).
Used to track drafts associated with specific social network profiles,
particularly when connections are disconnected and posts move to drafts.'
type: string
ssidDraftTypes:
description: Optional. The ssid draft type map.
items:
$ref: '#/components/schemas/v1SSIDDraftType'
type: array
ssids:
description: Optional. Social Service ids used in this draft.
items:
type: string
type: array
tiktokCustomization:
$ref: '#/components/schemas/v1TikTokCustomization'
youtubeCustomization:
$ref: '#/components/schemas/v1YoutubeCustomization'
required:
- accountGroupId
title: CreateDraftRequest
type: object
v1GetDraftResponse:
description: Response message containing the requested draft.
properties:
draft:
$ref: '#/components/schemas/v1Draft'
title: GetDraftResponse
type: object
v1MultiDeleteMLDraftPostsRequest:
description: Request message for deleting multiple multilocation draft posts.
properties:
brandId:
description: Required. Brand id of all multilocation draft posts.
type: string
mlDraftPosts:
description: Required. List of multilocation draft Posts.
items:
$ref: '#/components/schemas/v1MlDraftPost'
type: array
required:
- mlDraftPosts
- brandId
title: MultiDeleteMLDraftPostsRequest
type: object
v1CreateMultiDraftsResponse:
description: Response message containing the newly created drafts.
properties:
drafts:
description: Output only. The list of newly created drafts.
items:
$ref: '#/components/schemas/v1Draft'
readOnly: true
type: array
title: CreateMultiDraftsResponse
type: object
v1DraftType:
default: DRAFT_TYPE_INVALID
enum:
- DRAFT_TYPE_INVALID
- DRAFT_TYPE_IMAGE
- DRAFT_TYPE_VIDEO
- DRAFT_TYPE_GIF
- DRAFT_TYPE_REEL
- DRAFT_TYPE_CAROUSEL
- DRAFT_TYPE_TEXT
- DRAFT_TYPE_STORIES
- DRAFT_TYPE_IMAGE_STORY
- DRAFT_TYPE_VIDEO_STORY
type: string
v1Author:
description: The author of a blog post.
properties:
id:
description: Optional. The id of the author.
format: int64
type: string
name:
description: Optional. The name of the author.
type: string
title: Author
type: object
protobufAny:
additionalProperties: {}
properties:
'@type':
type: string
type: object
v1YoutubeCustomization:
description: YouTube-specific customization options for video drafts, including title and privacy settings.
properties:
privacyStatus:
$ref: '#/components/schemas/YoutubeCustomizationPrivacyStatus'
title:
description: Optional. Title of the YouTube video.
type: string
title: YoutubeCustomization
type: object
v1GetDraftRequest:
description: Request message for retrieving a single social draft.
properties:
accountGroupId:
description: Required. The account group id of the draft.
type: string
draftId:
description: Required. The internal id of the draft.
type: string
required:
- accountGroupId
- draftId
title: GetDraftRequest
type: object
v1CampaignCustomization:
description: Campaign-specific customization options for a draft, including campaign identity and link shortening.
properties:
id:
description: Optional. Id of the Campaign.
type: string
name:
description: Optional. Name of the Campaign.
type: string
shortCode:
description: Optional. Short code for the custom shortened URL.
type: string
title: CampaignCustomization
type: object
v1UpdateDraftResponse:
description: Response message containing the updated draft.
properties:
draft:
$ref: '#/components/schemas/v1Draft'
title: UpdateDraftResponse
type: object
v1VisibilityType:
default: VISIBILITY_TYPE_INVALID
enum:
- VISIBILITY_TYPE_INVALID
- VISIBILITY_TYPE_ALL
- VISIBILITY_TYPE_HIDDEN
- VISIBILITY_TYPE_VISIBLE
type: string
v1UpdateDraftRequest:
description: Request message for updating an existing social draft.
properties:
accountGroupId:
description: Required. Unique id signifying account group this belongs to.
type: string
blogPostCustomization:
$ref: '#/components/schemas/v1BlogPostCustomization'
brandId:
description: Optional. The brand id of the draft.
type: string
campaignCustomization:
$ref: '#/components/schemas/v1CampaignCustomization'
draftId:
description: Required. Unique id for the draft.
type: string
draftText:
description: Optional. Raw text of the draft.
type: string
draftType:
$ref: '#/components/schemas/v1DraftType'
gmbPostCustomization:
$ref: '#/components/schemas/v1GMBPostCustomization'
isHidden:
description: Optional. Whether the draft is hidden.
type: boolean
media:
description: Optional. List of media attached to the draft.
items:
$ref: '#/components/schemas/v1Media'
type: array
metadata:
items:
$ref: '#/components/schemas/v1MetaData'
title: Optional. Any metadata associated with this draft (source, last raised exception, etc)
type: array
multilocationPostId:
description: Optional. The multilocation post id of the draft.
type: string
options:
description: Optional. Special configurations options for the composer.
items:
type: string
type: array
postDateTime:
description: Optional. Time the draft is set to be posted at.
format: date-time
type: string
previews:
description: Optional. Preview link for shortened URL Links.
type: string
socialNetworkIdentifier:
description: 'Optional. Identifier for the social network platform (e.g., LinkedIn Profile URL).
Used to track drafts associated with specific social network profiles,
particularly when connections are disconnected and posts move to drafts.'
type: string
ssidDraftTypes:
description: Optional. The ssid draft type map.
items:
$ref: '#/components/schemas/v1SSIDDraftType'
type: array
ssids:
description: Optional. Social Service ids used in this draft.
items:
type: string
type: array
tiktokCustomization:
$ref: '#/components/schemas/v1TikTokCustomization'
youtubeCustomization:
$ref: '#/components/schemas/v1YoutubeCustomization'
required:
- accountGroupId
- draftId
title: UpdateDraftRequest
type: object
YoutubeCustomizationPrivacyStatus:
default: YOUTUBE_PRIVACY_STATUS_INVALID
enum:
- YOUTUBE_PRIVACY_STATUS_INVALID
- YOUTUBE_PRIVACY_STATUS_PUBLIC
- YOUTUBE_PRIVACY_STATUS_PRIVATE
- YOUTUBE_PRIVACY_STATUS_UNLISTED
type: string
v1ListDraftsRequest:
description: Request message for listing social drafts for a given account group.
properties:
accountGroupId:
description: Required. The account group id.
type: string
cursor:
description: Optional. Cursor to more drafts if it is greater then the page size.
type: string
end:
description: Optional. If an end time is provided, a page of the drafts older than it will be returned.
format: date-time
type: string
networks:
description: Optional. Should filter on basis of networks ssids.
items:
type: string
type: array
pageSize:
description: Optional. Number of results to grab.
format: int64
type: string
searchTerm:
description: Optional. Including searching in draft.
type: string
start:
description: Optional. If a start time is provided, a page of the drafts that are newer than it will be returned.
format: date-time
type: string
visibilityType:
$ref: '#/components/schemas/v1VisibilityType'
required:
- accountGroupId
title: ListDraftsRequest
type: object
v1MlDraftPost:
description: Identifies a multilocation draft post and the account groups it belongs to, used for bulk deletion.
properties:
accountGroupIds:
description: Required. List of account group ids for that post.
items:
type: string
type: array
multilocationPostId:
description: Required. Post Id mapped to each multilocation post.
type: string
required:
- multilocationPostId
- accountGroupIds
title: MlDraftPost
type: object
v1GMBPostCustomization:
description: Google My Business-specific customization options for a draft, including event and call-to-action settings.
properties:
ctaType:
description: Optional. Call to action type.
type: string
eventEnd:
description: Optional. Scheduled end for the event.
format: date-time
type: string
eventStart:
description: Optional. Scheduled start for the event.
format: date-time
type: string
linkUrl:
description: Optional. URL link for event.
type: string
title:
description: Optional. Title of the GMB Event.
type: string
title: GMBPostCustomization
type: object
securitySchemes:
OAuth2:
flows:
authorizationCode:
authorizationUrl: https://sso-api-prod.apigateway.co/oauth2/auth
scopes:
business-app: Allows the application to manage all features of Business App
tokenUrl: https://sso-api-prod.apigateway.co/oauth2/token
type: oauth2