Spot Integrations API

The Integrations API from Spot — 2 operation(s) for integrations.

OpenAPI Specification

spot-integrations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Spot AI — Spot Connect (beta) Analytics Integrations API
  version: 1.10.0
  description: Spot AI Developer API
  contact:
    name: Spot AI
    url: https://developers.spot.ai/
servers:
- url: https://dev-api.spot.ai/
tags:
- name: Integrations
paths:
  /v1/integrations:
    post:
      operationId: CreateIntegration
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationResult'
              examples:
                Example 1:
                  value:
                    integration:
                      id: 1
                      name: My Integration
                      integration_type_id: 1
                      created: '2023-06-29T12:20:05.533Z'
                      updated: '2023-06-29T12:20:05.533Z'
        '403':
          description: The responder function for a forbidden response
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                required:
                - message
                type: object
        '422':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
      description: 'This endpoint creates a new integration. You may choose a canned

        integration type or create a fully custom integration.


        Canned integrations will have a schema template to help you

        create event types and a specific visualization layer.

        You will still be able to customize the event type schema however you see fit.'
      summary: Create a new integration
      tags:
      - Integrations
      security:
      - bearer_security: []
      parameters: []
      requestBody:
        description: '- The integration to create'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateIntegrationInput'
              description: '- The integration to create'
    get:
      operationId: GetAllIntegrations
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationListResult'
              examples:
                Example 1:
                  value:
                    integrations:
                    - id: 1
                      name: My Integration
                      integration_type_id: 1
                      created: '2023-06-29T12:20:05.533Z'
                      updated: '2023-06-29T12:20:05.533Z'
                    - id: 2
                      name: My Integration 2
                      integration_type_id: 1
                      created: '2023-06-29T12:20:05.533Z'
                      updated: '2023-06-29T12:20:05.533Z'
        '400':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
      description: 'This endpoint returns details of all integrations that the caller can access within an organization.

        Integrations that the caller does not have access to will not be included in the response.

        Details include integration number, integration name, and integration type.'
      summary: Get all integrations
      tags:
      - Integrations
      security:
      - bearer_security: []
      parameters: []
  /v1/integrations/{integration_id}:
    delete:
      operationId: DeleteIntegration
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationResult'
              examples:
                Example 1:
                  value:
                    integration:
                      id: 1
                      name: My Integration
                      integration_type_id: 1
                      created: '2023-06-29T12:20:05.533Z'
                      updated: '2023-06-29T12:20:05.533Z'
        '422':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
      description: 'This endpoint can be used to delete an integration.

        All associated data including integration devices, integration event types,

        and events will also be deleted'
      summary: Delete an existing integration
      tags:
      - Integrations
      security:
      - bearer_security: []
      parameters:
      - description: '- The ID of the integration to delete'
        in: path
        name: integration_id
        required: true
        schema:
          format: int32
          type: integer
    get:
      operationId: GetIntegration
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationResult'
              examples:
                Example 1:
                  value:
                    integration:
                      id: 1
                      name: My Integration
                      integration_type_id: 1
                      created: '2023-06-29T12:20:05.533Z'
                      updated: '2023-06-29T12:20:05.533Z'
      description: 'This endpoint returns full details of a specific integration.


        The integration ID is required to return integration name and integration type.'
      summary: Get integration information
      tags:
      - Integrations
      security:
      - bearer_security: []
      parameters:
      - description: '- ID of the integration'
        in: path
        name: integration_id
        required: true
        schema:
          format: int32
          type: integer
    put:
      operationId: UpdateIntegration
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationResult'
              examples:
                Example 1:
                  value:
                    integration:
                      id: 1
                      name: My Integration
                      integration_type_id: 1
                      created: '2023-06-29T12:20:05.533Z'
                      updated: '2023-06-29T12:20:05.533Z'
        '422':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
      description: This endpoint can be used to update an existing integration's name.
      summary: Update integration name
      tags:
      - Integrations
      security:
      - bearer_security: []
      parameters:
      - description: '- The ID of the integration to update'
        in: path
        name: integration_id
        required: true
        schema:
          format: int32
          type: integer
      requestBody:
        description: '- The integration to create'
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateIntegrationInput'
              description: '- The integration to create'
components:
  schemas:
    ValidationError:
      properties:
        name:
          type: string
        message:
          type: string
        details:
          items:
            $ref: '#/components/schemas/ValidationErrorDetails'
          type: array
      required:
      - name
      - message
      - details
      type: object
      additionalProperties: false
    Integration:
      properties:
        id:
          type: number
          format: double
        name:
          type: string
          description: The name of the integration
          example: My Integration
          minLength: 1
          maxLength: 40
        integration_type_id:
          type: number
          format: double
          description: 'The type of integration (default: custom)'
          example: custom
        created:
          type: string
          format: date-time
          description: The date this integration was created
          example: '2023-06-29T12:20:05.533Z'
        updated:
          type: string
          format: date-time
          description: The date this integration was last updated
          example: '2023-06-29T12:20:05.533Z'
      required:
      - id
      - name
      - integration_type_id
      - created
      - updated
      type: object
      additionalProperties: false
    ValidationErrorDetails:
      properties:
        field:
          type: string
        message:
          type: string
        value: {}
      required:
      - field
      - message
      type: object
      additionalProperties: false
    IntegrationResult:
      properties:
        integration:
          $ref: '#/components/schemas/Integration'
      required:
      - integration
      type: object
      additionalProperties: false
    UpdateIntegrationInput:
      properties:
        name:
          type: string
          description: The updated name of the integration
          example: My Integration
          minLength: 1
          maxLength: 40
      required:
      - name
      type: object
      additionalProperties: false
    IntegrationTypeName:
      enum:
      - custom
      - pos
      type: string
    CreateIntegrationInput:
      properties:
        name:
          type: string
          description: The name of the integration
          example: My Integration
          minLength: 1
          maxLength: 40
        integration_type:
          $ref: '#/components/schemas/IntegrationTypeName'
          description: 'The type of integration (default: custom)'
          example: custom
      required:
      - name
      type: object
      additionalProperties: false
    IntegrationListResult:
      properties:
        integrations:
          items:
            $ref: '#/components/schemas/Integration'
          type: array
      required:
      - integrations
      type: object
      additionalProperties: false
  securitySchemes:
    bearer_security:
      type: http
      scheme: bearer