openapi: 3.2.0 info: title: Social Messages API version: Evergreen description: These APIs allow users to use Vendasta's social capabilities. All the endpoints require either the `social` or `business` scopes to be accessed. servers: - url: https://prod.apigateway.co/products/social description: Production - url: https://demo.apigateway.co/products/social description: Demo - url: http://localhost:3000/products/social description: Local - description: Localhost url: '{local}/products/social' security: - OAuth2Demo: - business - social - OAuth2Prod: - business - social tags: - name: Messages paths: /messages: options: summary: List valid HTTP verbs for /messages operationId: options-messages description: 'Used solely for [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) the OPTIONS request returns the list of possible HTTP methods and other headers that browsers use to protect user''s security. You should not call this operation directly. ' responses: '204': description: No Content tags: - Messages x-lifecycle: status: trustedTester get: summary: List Social Messages operationId: get-messages responses: '200': description: OK content: application/vnd.api+json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/messages' links: type: object properties: self: type: string format: uri first: type: string format: uri description: Provides a link back to the first page of results. next: type: string format: uri description: The URI at which the next page of results can be gotten from. description: "[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Trusted Tester`\n\n An endpoint dedicated to listing all the posts made by the business filtered by the selected parameters." parameters: - schema: type: string example: AG-12345 in: query name: filter[businessLocation.id] description: Returns all the posts for a business. - schema: type: string in: query name: page[cursor] description: The cursor stores all your filters and current location in the list to allow paging over the results in smaller batches. The value will be provided in the response links. - schema: type: integer example: 20 default: 25 in: query name: page[limit] description: The maximum number of Social Posts you would like to return. - schema: type: string example: Jd6889Js3,PostGroup1 in: query name: filter[socialProfileExternalIds] description: A comma-seperated list filtering messages to profiles with these external identifiers. - schema: type: string example: '2022-02-04T16:52:34.000Z' in: query name: filter[startAt] description: All the messages scheduled to be posted from the timestamp. Times used must be in ISO 8601 format, UTC time. - schema: type: string example: '2022-02-04T16:52:34.000Z' in: query name: filter[endAt] description: All the messaged scheduled to posted at the end of timestamp. Times used must be in ISO 8601 format, UTC time. - schema: type: string example: FBU-839,IGU-762348 name: filter[socialProfileIds] in: query description: Comma seperated string representing all the social profile ids from which the posts are to be listed. The list of profile ids can be obtained from /socialProfiles endpoint. - schema: type: string in: query name: filter[statuses] description: Comma seperated string containing the statuses of the messages to be listed. The statuses can be scheduled, posted or failed. tags: - Messages x-lifecycle: status: trustedTester post: summary: Schedule Message operationId: post-messages description: Please contact Sales to learn more about the scheduling message API tags: - Messages responses: '200': description: OK components: schemas: messages: title: Messages type: object description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Trusted Tester` A data structure that describes a message you wish to schedule to be posted on a social network.' examples: [] x-tags: - Messages properties: id: type: string description: A unique identifier assigned to this message. We will automatically assign the Message one on creation. type: type: string default: messages attributes: type: object properties: messageText: type: string description: 'The text of the message you’re making. This text is subject to limitations depending on what service you are posting to, such as Tweet length for Twitter. ' status: type: string enum: - scheduled - posted - failed description: 'The status of the message will be automatically set to one of the following by the system: scheduled: The message has been approved and is scheduled to be sent at the time indicated in `scheduledAt` posted: The message was successfully sent to the social profile failed: An error occurred when sending the message. You can view the details in the `error` attribute.' example: scheduled readOnly: true media: type: array description: An array containing the media attached to the post. items: type: object properties: type: type: string enum: - image - video - gif example: image readOnly: true url: type: string example: https://www.example.com/image.jpg postedAt: type: string format: date-time description: 'A string representing the timestamp at which the post was posted. Times used must be in ISO 8601 format, UTC time.' example: '2022-02-04T16:52:34.000Z' scheduledAt: type: string format: date-time description: 'A string representing the timestamp at which the post is scheduled. Defaults to 5 minutes after the Message is made, and must be at least 5 minutes after the Message is created. Times used must be in ISO 8601 format, UTC time.' example: '2022-02-04T16:52:34.000Z' errors: type: array description: An array of error objects. readOnly: true items: type: object properties: details: type: string description: The description of the error. example: The post is not valid. GMBPostCustomization: type: object description: "A special data structure that can be passed in to allow for special attached events for messages posted on Google My Business. \n\nYou can add an Event, a Call to Action, or both. If you want an Event, the `title`, `eventStartAt`, and `eventEndAt` fields must all be filled out. If you want a Call To Action, the `CTAType` and `linkUrl` fields must be filled out. `linkUrl` is optional if the CTAType is `callNow`." properties: title: type: string description: A title for the attached event. eventStartAt: type: string description: The time at which the attached event will start. eventEndAt: type: string description: The time at which the attached event will end. CTAType: type: string enum: - book - order - learnMore - signup - shop - callNow description: An enum for which Call to Action you wish to use. linkURL: type: string description: A Url for a link you want to associate with your Call to Action. required: - messageText relationships: type: object properties: socialProfiles: type: object description: The Social Profiles we’re posting this message under. properties: data: type: array items: type: object properties: type: type: string default: socialProfiles readOnly: true id: type: string required: - type - id businessLocation: type: object description: The location that owns the social profiles that posts will be sent from. required: - data properties: data: type: object required: - type - id properties: type: type: string default: businessLocations id: type: string required: - socialProfiles - businessLocation required: - type securitySchemes: JWT: type: http scheme: bearer bearerFormat: JWT OAuth2Demo: type: oauth2 flows: authorizationCode: authorizationUrl: https://sso-api-demo.apigateway.co/oauth2/auth tokenUrl: https://sso-api-demo.apigateway.co/oauth2/token scopes: business: Read-write access to business details social: Read-write access to Social AI APIs OAuth2Prod: type: oauth2 flows: authorizationCode: authorizationUrl: https://sso-api-prod.apigateway.co/oauth2/auth tokenUrl: https://sso-api-prod.apigateway.co/oauth2/token scopes: business: Read-write access to business details social: Read-write access to Social AI APIs