Vendasta Templates API

The Templates API from Vendasta — 2 operation(s) for templates.

Business capability
Customer Feedback Management BC-430.50

Operations 7

POST /reviewRequestTemplates Create Template #
GET /reviewRequestTemplates List Templates #
OPTIONS /reviewRequestTemplates List valid HTTP verbs for /reviewRequestTemplates #
GET /reviewRequestTemplates/{id} Get Template #
DELETE /reviewRequestTemplates/{id} Delete Template #
PATCH /reviewRequestTemplates/{id} Update Template #
OPTIONS /reviewRequestTemplates/{id} List valid HTTP verbs for /reviewRequestTemplates/{id} #

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-templates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Customer Voice REST Templates API
  version: '1.0'
  description: APIs for gathering authentic reviews via email or text using Customer Voice.
servers:
- url: https://prod.apigateway.co/products/reviews
  description: Production
- url: https://demo.apigateway.co/products/reviews
  description: Demo
- url: '{local}/products/reviews'
  description: Local
- url: http://localhost:11001/products/reviews
  description: Localhost
security:
- OAuth2Demo:
  - reviews
- OAuth2Prod:
  - reviews
tags:
- name: Templates
paths:
  /reviewRequestTemplates:
    post:
      summary: Create Template
      operationId: post-templates
      responses:
        '201':
          description: Created
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/reviewRequestTemplates'
      description: 'Status: `Trusted Tester`


        Used to create a new template within Customer Voice. Dynamic content can be inserted via substitution variables.


        The follow variables are supported within an email template:


        - `{{.customerName}}`: The first and last name of the customer.

        - `{{.customerFirstName}}`: The first name of the customer.

        - `{{.businessName}}`: The business location name.

        - `{{.buttonUrl}}`: The review request button URL.


        Can be used for dynamic content visibility within an email template:


        - `{{.displaySource1}}`: Whether or not to display source 1.

        - `{{.displaySource2}}`: Whether or not to display source 2.

        - `{{.displaySource3}}`: Whether or not to display source 3.


        Used to render images within an email template:


        - ``

        - ``

        - ``


        Used to render links within an email template:


        - `{{.sourceName1}}`

        - `{{.sourceName2}}`

        - `{{.sourceName3}}`


        The following members must be populated during creation:

        - `relationships.businessLocation.data.id`'
      x-lifecycle:
        status: trustedTester
      security:
      - OAuth2Demo:
        - reviews
      - OAuth2Prod:
        - reviews
      parameters:
      - schema:
          type: string
          pattern: ^Bearer\s\S+
        in: header
        name: Authorization
        description: A Bearer access token to identify the user the app is acting on behalf of. See the Authorization guide for details.
        required: true
      - schema:
          type: string
          default: application/vnd.api+json
          example: application/vnd.api+json
        in: header
        name: Content-Type
        description: Indicates the format of the request body being sent. In most cases you will want `application/vnd.api+json`
        required: true
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/reviewRequestTemplates'
            examples:
              Example Email Request:
                value:
                  data:
                    type: reviewRequestTemplates
                    attributes:
                      name: My Preferred Sites Review Request
                      content: 'Hi {{.customerName}},

                        <br>

                        <br>

                        Thank you for your business! We''d love to know more about your latest experience with us.

                        <br>

                        <br>

                        {{.buttonUrl}}

                        <br>

                        <br>

                        Thank you,

                        <br>

                        John Doe'
                      metadata:
                        subject: Thank you for choosing us!
                        replyEmail: jondoe@mail.com
                      languageLocaleCode: en-US
                      type: email
                    relationships:
                      businessLocation:
                        data:
                          id: AG-12345
              Example SMS Request:
                value:
                  data:
                    type: reviewRequestTemplates
                    attributes:
                      name: My Preferred Sites Review Request
                      content: We'd love to hear about your recent experience with us. Leave us a review here.
                      metadata:
                        customUrl: https://www.yourcustomerexperience.com/reviews/
                        greeting: Hi {first_name}
                        reviewType: custom
                      type: sms
                    relationships:
                      businessLocation:
                        data:
                          id: AG-12345
      tags:
      - Templates
    get:
      summary: List Templates
      operationId: get-templates
      responses:
        '200':
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/reviewRequestTemplates'
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                      first:
                        type: string
                        description: Provides a link back to the first page of results
                        format: uri
                      next:
                        type: string
                        description: The URI at which the next batch of templates can be gotten from
                        format: uri
      description: 'Status: `Trusted Tester`


        Produces a list of templates'
      parameters:
      - schema:
          type: string
        in: header
        name: Authorization
        description: A Bearer access token to identify the user the app is acting on behalf of. See the Authorization guide for details.
        required: true
      - schema:
          type: string
        in: query
        name: filter[businessLocation.id]
        description: Return templates for the specified business location
        required: true
      - schema:
          type: string
        in: query
        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. [Pagination Docs](https://developers.vendasta.com/platform/ZG9jOjEwMTkzMDg0-overview#paging).
        name: page[cursor]
      - schema:
          type: string
        in: query
        description: The maximum number of tasks you would like returned in a single batch. Use the links.next member in the response to get the remainder. [Pagination Docs](https://developers.vendasta.com/platform/ZG9jOjEwMTkzMDg0-overview#paging).
        name: page[limit]
      security:
      - OAuth2Demo:
        - reviews
      - OAuth2Prod:
        - reviews
      tags:
      - Templates
      x-lifecycle:
        status: trustedTester
      x-internal: false
    options:
      summary: List valid HTTP verbs for /reviewRequestTemplates
      operationId: options-templates
      responses:
        '204':
          description: No Content
      description: Used solely for 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.
      tags:
      - Templates
  /reviewRequestTemplates/{id}:
    parameters:
    - schema:
        type: string
      name: id
      in: path
      required: true
    security:
    - OAuth2Demo:
      - reviews
    - OAuth2Prod:
      - reviews
    get:
      summary: Get Template
      tags:
      - Templates
      responses:
        '200':
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/reviewRequestTemplates'
                  links:
                    type: object
                    properties:
                      self:
                        type: string
      operationId: get-templates-id
      x-lifecycle:
        status: trustedTester
      description: 'Status: `Trusted Tester`


        Fetch the current values for the specified template.'
      parameters:
      - schema:
          type: string
          example: Bearer <Access Token>
          pattern: ^Bearer\s\S+
        in: header
        name: Authorization
        description: A Bearer access token to identify the user the app is acting on behalf of. See the Authorization guide for details.
        required: true
    delete:
      summary: Delete Template
      tags:
      - Templates
      responses:
        '204':
          description: No Content
      operationId: delete-templates-id
      x-lifecycle:
        status: trustedTester
      description: 'Status: `Trusted Tester`


        Delete the specified template.'
      parameters:
      - schema:
          type: string
          example: Bearer <Access Token>
          pattern: ^Bearer\s\S+
        in: header
        name: Authorization
        description: A Bearer access token to identify the user the app is acting on behalf of. See the Authorization guide for details.
        required: true
      security:
      - OAuth2Demo:
        - reviews
      - OAuth2Prod:
        - reviews
    patch:
      summary: Update Template
      operationId: patch-templates-id
      tags:
      - Templates
      description: 'Status: `Trusted Tester`


        Update the existing template.

        Only the root ID and type fields are required. All others are optional and will keep their original value if omitted.'
      x-lifecycle:
        status: trustedTester
      parameters:
      - schema:
          type: string
          example: Bearer <Access Token>
          pattern: ^Bearer\s\S+
        in: header
        name: Authorization
        description: A Bearer access token to identify the user the app is acting on behalf of. See the Authorization guide for details.
        required: true
      - schema:
          type: string
          default: application/vnd.api+json
          enum:
          - application/vnd.api+json
        in: header
        name: Content-Type
        required: true
        description: Indicates the format of the request body being sent. In most cases you will want `application/vnd.api+json`
      security:
      - OAuth2Demo:
        - reviews
      - OAuth2Prod:
        - reviews
      responses:
        '200':
          description: Ok
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/reviewRequestTemplates'
                  links:
                    type: object
                    properties:
                      self:
                        type: string
                        format: uri
                        description: The address of the updated template
          headers: {}
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/reviewRequestTemplates'
    options:
      summary: List valid HTTP verbs for /reviewRequestTemplates/{id}
      operationId: options-templates-id
      description: Used solely for 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:
      - Templates
components:
  schemas:
    reviewRequestTemplates:
      title: Templates
      description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Trusted Tester`


        Templates that can be used for emails and other messaging services.'
      type: object
      x-examples:
        Example Template:
          type: reviewRequestTemplates
          id: AG-12345/type/email/template-id/TEM-12345
          attributes:
            name: My Preferred Sites Review Request
            content: 'Hi {{.customerName}},

              <br>

              <br>

              Thank you for your business! We''d love to know more about your latest experience with us.

              <br>

              <br>

              {{.buttonUrl}}

              <br>

              <br>

              Thank you,

              <br>

              John Doe'
            emailMetadata:
              attributes:
                subject: Thank you for choosing us!
                replyEmail: jondoe@mail.com
            languageLocaleCode: en-US
            type: email
          relationships:
            businessLocation:
              data:
                id: AG-12345
      x-lifecycle:
        status: trustedTester
      x-tags:
      - Templates
      properties:
        id:
          type: string
          example: AG-12345/type/email/template-id/TEM-12345
          readOnly: true
        type:
          type: string
          default: reviewRequestTemplates
          enum:
          - reviewRequestTemplates
          readOnly: true
        attributes:
          type: object
          properties:
            name:
              type: string
              description: A user friendly description for the template.
              example: My Preferred Sites Review Request
            emailMetadata:
              type: object
              description: Additional information about the template.
              properties:
                subject:
                  type: string
                  description: The subject line of the email.
                  example: Thank you for choosing us!
                replyTo:
                  type: string
                  description: The email address to which the customer should reply.
                  example: jondoe@mail.com
                  format: email
            smsMetadata:
              type: object
              description: Additional information about the template.
              properties:
                url:
                  type: string
                  description: The url that will customer will be sent to.
                  example: https://www.yoursite.com/reviews/customer-123
                  format: uri
                greeting:
                  type: string
                  description: The sms message prefix. `{first_name}` is an optional template variable that can be used within the greeting.
                  example: Hi {first_name}
                prefix:
                  type: string
                  description: Generally a shortened version of the company name.
                templateType:
                  type: string
                  enum:
                  - myListing
                  - preferredReviewSites
                  - custom
                  description: '- `myListing`: The link within the sms message will direct the customer to the my listing page.

                    - `preferredReviewSites`: The link within the sms message will direct the customer to the preferred review sites.

                    - `custom`: The link within the sms message will direct the customer to the custom url configured within the metadata.'
            content:
              type: string
              description: The content of the template.
              example: 'Hi {{.customerName}},

                <br>

                <br>

                Thank you for your business! We''d love to know more about your latest experience with us.

                <br>

                <br>

                {{.buttonUrl}}

                <br>

                <br>

                Thank you,

                <br>

                John Doe'
            languageLocaleCode:
              type: string
              pattern: ^[a-z]{2}-[A-Z]{2}$
              example: en-US
              description: 'The local language that the template was written in.


                Note: We currently have a limited set of allowed languages but expect to support many more in the future. When the requested language is not supported US English will be used.


                It should be a single BCP47/RFC5646 language tag. This is an [ISO 639-1 Alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) language code in lowercase and an [ISO 3166-1 Alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code in uppercase, separated by a dash.


                Examples:

                - `en-US` English (US)

                - `fr-FR` French (France)'
            templateType:
              type: string
              enum:
              - email
              - sms
              description: The type of the template.
              example: email
        relationships:
          type: object
          properties:
            businessLocation:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    id:
                      type: string
                      minLength: 1
                      description: The ID of the business location the template belongs to.
                    type:
                      type: string
                      default: businessLocation
                      enum:
                      - businessLocation
                      readOnly: true
                  required:
                  - id
  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:
            reviews: Read-write access to review request 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:
            reviews: Read-write access to review request APIs