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