Appmixer API

The Appmixer REST API provides programmatic access to manage workflows, users, accounts, apps/connectors, files, data stores, insights, and people tasks within the Appmixer embedded iPaaS platform.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

appmixer-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Appmixer API
  description: >-
    The Appmixer REST API provides programmatic access to manage workflows,
    users, accounts, apps/connectors, files, data stores, insights, and
    people tasks within the Appmixer embedded iPaaS platform. The API allows
    you to access all the features that the Appmixer UI works with.
  version: 6.1.0
  contact:
    name: Appmixer
    url: https://www.appmixer.com/
  license:
    name: Proprietary
    url: https://www.appmixer.com/terms-and-conditions
servers:
  - url: https://api.{tenant}.appmixer.cloud
    description: Appmixer Cloud Tenant API
    variables:
      tenant:
        default: YOUR_TENANT
        description: Your Appmixer tenant identifier
security:
  - bearerAuth: []
paths:
  /:
    get:
      operationId: getApiInfo
      summary: Appmixer Get API information
      description: >-
        Basic liveness check that returns basic API information about the
        Appmixer instance.
      security: []
      responses:
        '200':
          description: API information returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    type: string
                  status:
                    type: string
      tags:
        - System
  /user/auth:
    post:
      operationId: authenticateUser
      summary: Appmixer Authenticate user
      description: >-
        Sign in a user with credentials and obtain an access token for
        authenticating subsequent API requests.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - username
                - password
              properties:
                username:
                  type: string
                  description: The user's email address or username
                password:
                  type: string
                  description: The user's password
      responses:
        '200':
          description: Authentication successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: Access token for API authentication
                  user:
                    $ref: '#/components/schemas/User'
        '401':
          description: Invalid credentials
      tags:
        - Authentication
  /user:
    get:
      operationId: getCurrentUser
      summary: Appmixer Get current user
      description: Get information about the currently authenticated user.
      responses:
        '200':
          description: User information returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '401':
          description: Unauthorized
      tags:
        - Users
    post:
      operationId: createUser
      summary: Appmixer Create a new user
      description: >-
        Create a new Appmixer user account. By default, this endpoint is open
        and does not require authentication.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - username
                - password
              properties:
                username:
                  type: string
                  description: The user's email address
                password:
                  type: string
                  description: The user's password
      responses:
        '200':
          description: User created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Invalid request
      tags:
        - Users
  /users/{userId}:
    put:
      operationId: updateUser
      summary: Appmixer Update a user
      description: Update user information for the specified user.
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                password:
                  type: string
      responses:
        '200':
          description: User updated successfully
        '401':
          description: Unauthorized
        '404':
          description: User not found
      tags:
        - Users
    delete:
      operationId: deleteUser
      summary: Appmixer Delete a user
      description: Delete the specified user account.
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: User deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: User not found
      tags:
        - Users
  /flows:
    get:
      operationId: listFlows
      summary: Appmixer List flows
      description: >-
        Get all flows of the authenticated user. Supports filtering, sorting,
        and pagination.
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
          description: Maximum number of flows to return
        - name: offset
          in: query
          schema:
            type: integer
          description: Number of flows to skip
        - name: pattern
          in: query
          schema:
            type: string
          description: Filter flows by name pattern
        - name: sort
          in: query
          schema:
            type: string
          description: Sort field and direction
        - name: projection
          in: query
          schema:
            type: string
          description: Comma-separated list of properties to exclude
        - name: filter
          in: query
          schema:
            type: string
          description: Filter expression
      responses:
        '200':
          description: List of flows returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Flow'
        '401':
          description: Unauthorized
      tags:
        - Flows
    post:
      operationId: createFlow
      summary: Appmixer Create a flow
      description: Create a new flow in Appmixer.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the flow
                flow:
                  type: object
                  description: Flow definition object
                customFields:
                  type: object
                  description: Custom metadata for the flow
      responses:
        '200':
          description: Flow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Flow'
        '401':
          description: Unauthorized
      tags:
        - Flows
  /flows/{flowId}:
    get:
      operationId: getFlow
      summary: Appmixer Get a flow
      description: Get details of a specific flow by its ID.
      parameters:
        - name: flowId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Flow returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Flow'
        '401':
          description: Unauthorized
        '404':
          description: Flow not found
      tags:
        - Flows
    put:
      operationId: updateFlow
      summary: Appmixer Update a flow
      description: >-
        Update an existing flow. A running flow cannot be updated without
        the forceUpdate query parameter.
      parameters:
        - name: flowId
          in: path
          required: true
          schema:
            type: string
        - name: forceUpdate
          in: query
          schema:
            type: boolean
          description: Force update a running flow
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                flow:
                  type: object
                customFields:
                  type: object
      responses:
        '200':
          description: Flow updated successfully
        '401':
          description: Unauthorized
        '404':
          description: Flow not found
      tags:
        - Flows
    delete:
      operationId: deleteFlow
      summary: Appmixer Delete a flow
      description: Delete an existing flow by its ID.
      parameters:
        - name: flowId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Flow deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Flow not found
      tags:
        - Flows
  /flows/{flowId}/start:
    put:
      operationId: startFlow
      summary: Appmixer Start a flow
      description: Start a stopped flow.
      parameters:
        - name: flowId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Flow started successfully
        '401':
          description: Unauthorized
        '404':
          description: Flow not found
      tags:
        - Flows
  /flows/{flowId}/stop:
    put:
      operationId: stopFlow
      summary: Appmixer Stop a flow
      description: Stop a running flow.
      parameters:
        - name: flowId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Flow stopped successfully
        '401':
          description: Unauthorized
        '404':
          description: Flow not found
      tags:
        - Flows
  /apps:
    get:
      operationId: listApps
      summary: Appmixer List apps
      description: >-
        Get all applications (services or modules) available in the
        Appmixer tenant.
      responses:
        '200':
          description: List of apps returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/App'
        '401':
          description: Unauthorized
      tags:
        - Apps
  /components:
    get:
      operationId: listComponents
      summary: Appmixer List components
      description: Get all available components (connectors) in the tenant.
      responses:
        '200':
          description: List of components returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    label:
                      type: string
                    type:
                      type: string
        '401':
          description: Unauthorized
      tags:
        - Apps
    post:
      operationId: publishComponent
      summary: Appmixer Publish a component
      description: >-
        Publish a new component, module, or service to the Appmixer tenant.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Component published successfully
        '401':
          description: Unauthorized
      tags:
        - Apps
  /components/{componentId}:
    delete:
      operationId: deleteComponent
      summary: Appmixer Delete a component
      description: Delete (uninstall) a component, module, or service.
      parameters:
        - name: componentId
          in: path
          required: true
          schema:
            type: string
          description: Component identifier (e.g. appmixer.myservice)
      responses:
        '200':
          description: Component deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Component not found
      tags:
        - Apps
  /accounts:
    get:
      operationId: listAccounts
      summary: Appmixer List accounts
      description: >-
        Get list of all accounts the user has authenticated with to any
        component (e.g. OAuth connections to third-party services).
      responses:
        '200':
          description: List of accounts returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Account'
        '401':
          description: Unauthorized
      tags:
        - Accounts
  /accounts/{accountId}:
    get:
      operationId: getAccount
      summary: Appmixer Get an account
      description: >-
        Get details for a specific account and check if its credentials
        (tokens) are still valid.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Account information returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '401':
          description: Unauthorized
        '404':
          description: Account not found
      tags:
        - Accounts
    delete:
      operationId: deleteAccount
      summary: Appmixer Delete an account
      description: Delete (disconnect) an authenticated account.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Account deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Account not found
      tags:
        - Accounts
  /files:
    get:
      operationId: listFiles
      summary: Appmixer List files
      description: Get all files belonging to the authenticated user.
      responses:
        '200':
          description: List of files returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/File'
        '401':
          description: Unauthorized
      tags:
        - Files
    post:
      operationId: uploadFile
      summary: Appmixer Upload a file
      description: Upload a new file to the Appmixer file management system.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: File uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
        '401':
          description: Unauthorized
      tags:
        - Files
  /files/{fileId}:
    get:
      operationId: getFile
      summary: Appmixer Get a file
      description: Download or get details of a specific file.
      parameters:
        - name: fileId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: File returned successfully
        '401':
          description: Unauthorized
        '404':
          description: File not found
      tags:
        - Files
    delete:
      operationId: deleteFile
      summary: Appmixer Delete a file
      description: Delete a specific file.
      parameters:
        - name: fileId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: File deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: File not found
      tags:
        - Files
  /data-stores:
    get:
      operationId: listDataStores
      summary: Appmixer List data stores
      description: Get all data stores belonging to the authenticated user.
      responses:
        '200':
          description: List of data stores returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DataStore'
        '401':
          description: Unauthorized
      tags:
        - Data Stores
  /data-stores/{storeId}:
    get:
      operationId: getDataStore
      summary: Appmixer Get a data store
      description: Get details of a specific data store.
      parameters:
        - name: storeId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Data store returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataStore'
        '401':
          description: Unauthorized
        '404':
          description: Data store not found
      tags:
        - Data Stores
    delete:
      operationId: deleteDataStore
      summary: Appmixer Delete a data store
      description: Delete a specific data store.
      parameters:
        - name: storeId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Data store deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Data store not found
      tags:
        - Data Stores
  /insights:
    get:
      operationId: listInsights
      summary: Appmixer List insights
      description: Get all Insights charts of the authenticated user.
      responses:
        '200':
          description: List of insights returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    type:
                      type: string
        '401':
          description: Unauthorized
      tags:
        - Insights
  /people-task/tasks:
    get:
      operationId: listPeopleTasks
      summary: Appmixer List people tasks
      description: >-
        Get all tasks of the authenticated user. Can filter by role
        (approver or requester).
      parameters:
        - name: role
          in: query
          schema:
            type: string
            enum:
              - approver
              - requester
          description: Filter tasks by role
      responses:
        '200':
          description: List of tasks returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PeopleTask'
        '401':
          description: Unauthorized
      tags:
        - People Tasks
  /logs:
    get:
      operationId: getLogs
      summary: Appmixer Get logs
      description: Retrieve logs for the authenticated user's flows.
      parameters:
        - name: flowId
          in: query
          schema:
            type: string
          description: Filter logs by flow ID
        - name: limit
          in: query
          schema:
            type: integer
          description: Maximum number of log entries to return
        - name: offset
          in: query
          schema:
            type: integer
          description: Number of entries to skip
      responses:
        '200':
          description: Logs returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    timestamp:
                      type: string
                      format: date-time
                    flowId:
                      type: string
                    message:
                      type: string
                    level:
                      type: string
        '401':
          description: Unauthorized
      tags:
        - Logs
  /unprocessed-messages:
    get:
      operationId: listUnprocessedMessages
      summary: Appmixer List unprocessed messages
      description: Get the list of unprocessed messages.
      responses:
        '200':
          description: Unprocessed messages returned successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UnprocessedMessage'
        '401':
          description: Unauthorized
      tags:
        - Messages
  /unprocessed-messages/{messageId}:
    post:
      operationId: reprocessMessage
      summary: Appmixer Reprocess a message
      description: Put an unprocessed message back into the Appmixer engine.
      parameters:
        - name: messageId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Message reprocessed successfully
        '401':
          description: Unauthorized
        '404':
          description: Message not found
      tags:
        - Messages
    delete:
      operationId: deleteUnprocessedMessage
      summary: Appmixer Delete an unprocessed message
      description: Delete a specific unprocessed message.
      parameters:
        - name: messageId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Message deleted successfully
        '401':
          description: Unauthorized
        '404':
          description: Message not found
      tags:
        - Messages
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Access token obtained from the /user/auth endpoint. Pass as
        Authorization: Bearer {token} header.
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        username:
          type: string
        email:
          type: string
        token:
          type: string
        plan:
          type: string
    Flow:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        flow:
          type: object
          description: Flow definition object
        stage:
          type: string
          enum:
            - running
            - stopped
        btime:
          type: string
          format: date-time
          description: Creation time
        mtime:
          type: string
          format: date-time
          description: Modification time
        thumbnail:
          type: string
        customFields:
          type: object
          description: Custom metadata for the flow
    App:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
        icon:
          type: string
        description:
          type: string
    Account:
      type: object
      properties:
        accountId:
          type: string
        name:
          type: string
        service:
          type: string
        profileInfo:
          type: object
        valid:
          type: boolean
          description: Whether the account credentials are still valid
    File:
      type: object
      properties:
        fileId:
          type: string
        filename:
          type: string
        length:
          type: integer
        contentType:
          type: string
        createdAt:
          type: string
          format: date-time
    DataStore:
      type: object
      properties:
        storeId:
          type: string
        name:
          type: string
    PeopleTask:
      type: object
      properties:
        id:
          type: string
        flowId:
          type: string
        role:
          type: string
          enum:
            - approver
            - requester
        status:
          type: string
        createdAt:
          type: string
          format: date-time
    UnprocessedMessage:
      type: object
      properties:
        messageId:
          type: string
        flowId:
          type: string
        componentId:
          type: string
        data:
          type: object
        createdAt:
          type: string
          format: date-time
tags:
  - name: Accounts
    description: Connected third-party account management
  - name: Apps
    description: Applications and connectors management
  - name: Authentication
    description: User authentication and token management
  - name: Data Stores
    description: Data store management
  - name: Files
    description: File management
  - name: Flows
    description: Workflow flow management
  - name: Insights
    description: Analytics and insights
  - name: Logs
    description: Flow execution logs
  - name: Messages
    description: Unprocessed message management
  - name: People Tasks
    description: Human-in-the-loop task management
  - name: System
    description: System health and information
  - name: Users
    description: User account management