Vendasta Composer API

The Composer API from Vendasta — 1 operation(s) for composer.

Business capability
Digital Marketing Management BC-400.60

Operations 1

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/composer/update Update social posts in the composer · Update Posts #
Ask an LLM
“Can I edit several scheduled social posts in one request?”
“What identifier does each post need when updating it in the composer?”
Tell an agent
Update these composer posts: {posts}.
Save changes to social posts {posts} by their internal post IDs.

Specifications

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vendasta:vendasta-composer-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

OpenAPI Specification

vendasta-composer-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Composer API
  version: 1.14.0
servers:
- description: Production
  url: https://prod.apigateway.co/grpc
tags:
- name: Composer
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
components:
  schemas:
    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
    v1MetaData:
      description: 'Metadata message type for saving properties in individual µservice

        This is currently starting with Instagram Carousel posts but

        we would need to update other post types as well.'
      properties:
        propertyName:
          type: string
        propertyValue:
          type: string
      type: object
    protobufAny:
      additionalProperties: {}
      properties:
        '@type':
          type: string
      type: object
    composerv1MediaEntry:
      description: 'Media Entry field to have media

        This is currently starting with Instagram Carousel posts but

        we 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
    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
    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
    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
    rpcStatus:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        message:
          type: string
      type: object
    v1TikTokCustomization:
      properties:
        allowComment:
          type: boolean
        allowDuet:
          type: boolean
        allowStitch:
          type: boolean
        isBrandOrganic:
          type: boolean
        isBrandedContent:
          type: boolean
      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
    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
    v1YoutubeCustomization:
      properties:
        privacyStatus:
          $ref: '#/components/schemas/YoutubeCustomizationPrivacyStatus'
      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
    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
    YoutubeCustomizationPrivacyStatus:
      default: STATUS_INVALID
      enum:
      - STATUS_INVALID
      - STATUS_PUBLIC
      - STATUS_PRIVATE
      - STATUS_UNLISTED
      type: string
  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