Boltic Workflows API

Create and manage automation workflows

OpenAPI Specification

boltic-workflows-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Boltic Gateway Certificates Workflows API
  description: The Boltic Gateway API provides a developer-friendly API gateway designed to simplify and secure how services interact across your platform. It enables seamless request routing, payload transformation, and enforcement of security policies across diverse integration types including serverless functions, workflows, tables, and proxy endpoints. The Gateway supports dynamic URL rewriting, path parameter injection, fine-grained authentication, and real-time observability.
  version: 1.0.0
  contact:
    name: Boltic
    url: https://www.boltic.io
  license:
    name: Proprietary
    url: https://www.boltic.io/terms
servers:
- url: https://gateway.boltic.io/v1
  description: Boltic Gateway API
security:
- bearerAuth: []
tags:
- name: Workflows
  description: Create and manage automation workflows
paths:
  /workflows:
    get:
      operationId: listWorkflows
      summary: Boltic List all workflows
      description: Retrieve a paginated list of all workflows in the workspace.
      tags:
      - Workflows
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 20
      - name: status
        in: query
        schema:
          type: string
          enum:
          - active
          - inactive
          - draft
      responses:
        '200':
          description: A list of workflows
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Workflow'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createWorkflow
      summary: Boltic Create a new workflow
      description: Create a new automation workflow with triggers, actions, and configuration.
      tags:
      - Workflows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowInput'
      responses:
        '201':
          description: Workflow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          $ref: '#/components/responses/BadRequest'
  /workflows/{workflowId}:
    get:
      operationId: getWorkflow
      summary: Boltic Get a workflow by ID
      description: Retrieve the full configuration and status of a specific workflow.
      tags:
      - Workflows
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateWorkflow
      summary: Boltic Update a workflow
      description: Update the configuration of an existing workflow.
      tags:
      - Workflows
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowInput'
      responses:
        '200':
          description: Workflow updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
    delete:
      operationId: deleteWorkflow
      summary: Boltic Delete a workflow
      tags:
      - Workflows
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Workflow deleted
  /workflows/{workflowId}/execute:
    post:
      operationId: executeWorkflow
      summary: Boltic Execute a workflow
      description: Trigger immediate execution of a workflow. Supports synchronous execution that waits for the workflow to complete before returning a response.
      tags:
      - Workflows
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: object
                  additionalProperties: true
                  description: Input data to pass to the workflow
                async:
                  type: boolean
                  default: false
                  description: Whether to execute asynchronously
      responses:
        '200':
          description: Workflow execution result (synchronous)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
        '202':
          description: Workflow execution started (asynchronous)
          content:
            application/json:
              schema:
                type: object
                properties:
                  executionId:
                    type: string
                  status:
                    type: string
                    enum:
                    - queued
  /workflows/{workflowId}/activate:
    post:
      operationId: activateWorkflow
      summary: Boltic Activate a workflow
      description: Enable a workflow so it responds to triggers.
      tags:
      - Workflows
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Workflow activated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
  /workflows/{workflowId}/deactivate:
    post:
      operationId: deactivateWorkflow
      summary: Boltic Deactivate a workflow
      description: Disable a workflow so it stops responding to triggers.
      tags:
      - Workflows
      parameters:
      - name: workflowId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Workflow deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
components:
  schemas:
    NodeInput:
      type: object
      required:
      - type
      - name
      properties:
        type:
          type: string
        name:
          type: string
        integrationId:
          type: string
        config:
          type: object
          additionalProperties: true
        position:
          type: object
          properties:
            x:
              type: number
            y:
              type: number
        connections:
          type: array
          items:
            type: object
            properties:
              targetNodeId:
                type: string
              condition:
                type: string
    Trigger:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - http
          - schedule
          - webhook
          - copilot
          - table-change
          - manual
        config:
          type: object
          additionalProperties: true
          description: Trigger-specific configuration
        methods:
          type: array
          items:
            type: string
            enum:
            - GET
            - POST
            - PUT
            - DELETE
          description: HTTP methods for HTTP triggers
    Pagination:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        total:
          type: integer
        totalPages:
          type: integer
    Node:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - integration
          - transformation
          - destination
          - condition
          - loop
          - ai
        name:
          type: string
        integrationId:
          type: string
        config:
          type: object
          additionalProperties: true
        position:
          type: object
          properties:
            x:
              type: number
            y:
              type: number
        connections:
          type: array
          items:
            type: object
            properties:
              targetNodeId:
                type: string
              condition:
                type: string
    Execution:
      type: object
      properties:
        id:
          type: string
        workflowId:
          type: string
        status:
          type: string
          enum:
          - queued
          - running
          - completed
          - failed
          - cancelled
        input:
          type: object
          additionalProperties: true
        output:
          type: object
          additionalProperties: true
        error:
          type: object
          properties:
            message:
              type: string
            nodeId:
              type: string
            code:
              type: string
        startedAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
        duration:
          type: integer
          description: Execution duration in milliseconds
        nodeResults:
          type: array
          items:
            type: object
            properties:
              nodeId:
                type: string
              status:
                type: string
              output:
                type: object
                additionalProperties: true
              duration:
                type: integer
    TriggerInput:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - http
          - schedule
          - webhook
          - copilot
          - table-change
          - manual
        config:
          type: object
          additionalProperties: true
        methods:
          type: array
          items:
            type: string
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: string
    WorkflowInput:
      type: object
      required:
      - name
      - trigger
      properties:
        name:
          type: string
        description:
          type: string
        trigger:
          $ref: '#/components/schemas/TriggerInput'
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/NodeInput'
        tags:
          type: array
          items:
            type: string
    Workflow:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
          - active
          - inactive
          - draft
        trigger:
          $ref: '#/components/schemas/Trigger'
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/Node'
        tags:
          type: array
          items:
            type: string
        executionCount:
          type: integer
          description: Total number of times this workflow has been executed
        lastExecutedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT