Boltic Pipes API

The Boltic Pipes API provides programmatic access to data synchronization pipelines that connect data sources to destinations. Pipes enable real-time data syncing across systems via automated pipelines with zero maintenance. Sources include databases such as MongoDB, MySQL, and PostgreSQL, SaaS applications via API endpoints, and file storage. The API supports configurable sync frequencies including minutely, hourly, and daily schedules.

OpenAPI Specification

boltic-pipes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Boltic Gateway Certificates Pipes 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: Pipes
  description: Manage data synchronization pipelines
paths:
  /pipes:
    get:
      operationId: listPipes
      summary: Boltic List all pipes
      description: Retrieve a list of all data synchronization pipelines.
      tags:
      - Pipes
      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
          - paused
          - error
      responses:
        '200':
          description: A list of pipes
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Pipe'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
    post:
      operationId: createPipe
      summary: Boltic Create a new pipe
      description: Create a new data synchronization pipeline between a source and destination.
      tags:
      - Pipes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PipeInput'
      responses:
        '201':
          description: Pipe created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipe'
  /pipes/{pipeId}:
    get:
      operationId: getPipe
      summary: Boltic Get a pipe by ID
      tags:
      - Pipes
      parameters:
      - name: pipeId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Pipe details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipe'
    put:
      operationId: updatePipe
      summary: Boltic Update a pipe
      tags:
      - Pipes
      parameters:
      - name: pipeId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PipeInput'
      responses:
        '200':
          description: Pipe updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipe'
    delete:
      operationId: deletePipe
      summary: Boltic Delete a pipe
      tags:
      - Pipes
      parameters:
      - name: pipeId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Pipe deleted
  /pipes/{pipeId}/trigger:
    post:
      operationId: triggerSync
      summary: Boltic Trigger a manual sync
      description: Initiate an immediate data synchronization run for a pipe.
      tags:
      - Pipes
      parameters:
      - name: pipeId
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Sync triggered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncRun'
  /pipes/{pipeId}/pause:
    post:
      operationId: pausePipe
      summary: Boltic Pause a pipe
      tags:
      - Pipes
      parameters:
      - name: pipeId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Pipe paused
  /pipes/{pipeId}/resume:
    post:
      operationId: resumePipe
      summary: Boltic Resume a paused pipe
      tags:
      - Pipes
      parameters:
      - name: pipeId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Pipe resumed
components:
  schemas:
    PipeInput:
      type: object
      required:
      - name
      - source
      - destination
      properties:
        name:
          type: string
        description:
          type: string
        source:
          $ref: '#/components/schemas/SourceConfig'
        destination:
          $ref: '#/components/schemas/DestinationConfig'
        schedule:
          $ref: '#/components/schemas/Schedule'
    Pagination:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        total:
          type: integer
        totalPages:
          type: integer
    DestinationConfig:
      type: object
      properties:
        type:
          type: string
          description: Destination type identifier
        connectionConfig:
          type: object
          additionalProperties: true
        mappings:
          type: array
          items:
            type: object
            properties:
              sourceField:
                type: string
              destinationField:
                type: string
              transformation:
                type: string
    Schedule:
      type: object
      properties:
        frequency:
          type: string
          enum:
          - minutely
          - hourly
          - daily
          - weekly
          - monthly
          - custom
        interval:
          type: integer
          description: Interval value for the frequency
        cronExpression:
          type: string
          description: Cron expression for custom schedules
        timezone:
          type: string
    SyncRun:
      type: object
      properties:
        id:
          type: string
        pipeId:
          type: string
        status:
          type: string
          enum:
          - running
          - completed
          - failed
          - cancelled
        rowsSynced:
          type: integer
        rowsFailed:
          type: integer
        startedAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
        duration:
          type: integer
          description: Duration in milliseconds
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
    Pipe:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
          - active
          - paused
          - error
        source:
          $ref: '#/components/schemas/SourceConfig'
        destination:
          $ref: '#/components/schemas/DestinationConfig'
        schedule:
          $ref: '#/components/schemas/Schedule'
        lastSyncAt:
          type: string
          format: date-time
        rowsSynced:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    SourceConfig:
      type: object
      properties:
        type:
          type: string
          description: Source type identifier (e.g., mongodb, mysql, postgresql, rest-api)
        connectionConfig:
          type: object
          additionalProperties: true
          description: Connection parameters specific to the source type
        rootPath:
          type: string
          description: Root path for REST API data extraction
        authType:
          type: string
          enum:
          - none
          - basic
          - bearer
          - oauth2
          - api-key
        authConfig:
          type: object
          additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT