openapi: 3.0.3 info: title: Boltic Pipes API description: >- 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 (MongoDB, MySQL, PostgreSQL), SaaS applications via API endpoints, and file storage. The API supports configurable sync frequencies including minutely, hourly, and daily schedules. version: 1.0.0 contact: name: Boltic url: https://www.boltic.io license: name: Proprietary url: https://www.boltic.io/terms servers: - url: https://api.boltic.io/v1 description: Boltic Pipes API security: - bearerAuth: [] tags: - name: Destinations description: Manage data destinations - name: Pipes description: Manage data synchronization pipelines - name: Sources description: Manage data sources - name: Sync Runs description: Monitor and manage sync executions 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 /pipes/{pipeId}/runs: get: operationId: listSyncRuns summary: Boltic List sync runs for a pipe description: Retrieve the sync execution history for a pipe. tags: - Sync Runs parameters: - name: pipeId in: path required: true schema: type: string - name: page in: query schema: type: integer default: 1 - name: limit in: query schema: type: integer default: 20 responses: '200': description: A list of sync runs content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SyncRun' pagination: $ref: '#/components/schemas/Pagination' /sources: get: operationId: listSources summary: Boltic List available source types tags: - Sources responses: '200': description: A list of source types content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SourceType' /destinations: get: operationId: listDestinations summary: Boltic List available destination types tags: - Destinations responses: '200': description: A list of destination types content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/DestinationType' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT schemas: 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 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' 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 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 SourceType: type: object properties: id: type: string name: type: string category: type: string enum: [database, saas, file-storage, api] icon: type: string format: uri DestinationType: type: object properties: id: type: string name: type: string category: type: string icon: type: string format: uri Pagination: type: object properties: page: type: integer limit: type: integer total: type: integer totalPages: type: integer Error: type: object properties: code: type: integer message: type: string details: type: string responses: BadRequest: description: Bad request content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error'