Keboola configuration API
The configuration API from Keboola — 26 operation(s) for configuration.
The configuration API from Keboola — 26 operation(s) for configuration.
openapi: 3.0.0
info:
title: AI Service Actions configuration API
version: 1.0.0
contact:
email: devel@keboola.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
tags:
- name: configuration
paths:
/v1/branches/{branchId}/sources:
get:
summary: List all sources
operationId: ListSources
tags:
- configuration
description: List all sources in the branch.
parameters:
- name: afterId
in: query
required: false
description: Request records after the ID.
schema:
type: string
- name: limit
in: query
required: false
description: Maximum number of returned records.
schema:
type: integer
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/SourcesList'
required:
- projectId
- branchId
- page
- sources
security:
- storage-api-token: []
post:
summary: Create source
operationId: CreateSource
tags:
- configuration
description: Create a new source in the branch.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/definitions/StreamCreateSourceRequestBody'
required:
- type
- name
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'409':
description: Conflict response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
'422':
description: Unprocessable Entity response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}:
get:
summary: Get source
operationId: GetSource
tags:
- configuration
description: Get the source definition.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/Source'
required:
- projectId
- branchId
- sourceId
- type
- name
- description
- version
- created
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
delete:
summary: Delete source
operationId: DeleteSource
tags:
- configuration
description: 'Delete the source.
With `cascade=true` the source and its sinks are hard-deleted (so the same name can be reused immediately) and the destination Keboola tables and their bucket are deleted as well.'
parameters:
- name: cascade
in: query
required: false
description: Also delete the destination Keboola tables and bucket, and hard-delete the source so it can be recreated with the same name.
schema:
type: boolean
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
patch:
summary: Update source
operationId: UpdateSource
tags:
- configuration
description: Update the source.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/definitions/StreamUpdateSourceRequestBody'
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/disable:
put:
summary: Disable source
operationId: DisableSource
tags:
- configuration
description: Disables the source.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/enable:
put:
summary: Enable source
operationId: EnableSource
tags:
- configuration
description: Enables the source.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/rotate-secret:
post:
summary: Rotate source secret
operationId: RotateSourceSecret
tags:
- configuration
description: 'Regenerate the source''s 48-character secret without recreating the source.
The sourceId is preserved; only the secret (and the URL that embeds it) changes. The previous secret stops working immediately, so all producers must be updated with the new URL.'
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/Source'
required:
- projectId
- branchId
- sourceId
- type
- name
- description
- version
- created
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/settings:
get:
summary: Get source settings
operationId: GetSourceSettings
tags:
- configuration
description: Get source settings.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/SettingsResult'
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
patch:
summary: Update source settings
operationId: UpdateSourceSettings
tags:
- configuration
description: Update source settings.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/definitions/StreamUpdateSourceSettingsRequestBody'
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks:
get:
summary: List sinks
operationId: ListSinks
tags:
- configuration
description: List all sinks in the source.
parameters:
- name: afterId
in: query
required: false
description: Request records after the ID.
schema:
type: string
- name: limit
in: query
required: false
description: Maximum number of returned records.
schema:
type: integer
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/SinksList'
required:
- projectId
- branchId
- sourceId
- page
- sinks
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
post:
summary: Create sink
operationId: CreateSink
tags:
- configuration
description: Create a new sink in the source.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/definitions/StreamCreateSinkRequestBody'
required:
- type
- name
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
'409':
description: Conflict response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
'422':
description: Unprocessable Entity response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}:
get:
summary: Get sink
operationId: GetSink
tags:
- configuration
description: Get the sink definition.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/Sink'
required:
- projectId
- branchId
- sourceId
- sinkId
- type
- name
- description
- version
- created
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
delete:
summary: Delete sink
operationId: DeleteSink
tags:
- configuration
description: Delete the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
patch:
summary: Update sink
operationId: UpdateSink
tags:
- configuration
description: Update the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/definitions/StreamUpdateSinkRequestBody'
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/disable:
put:
summary: Disable sink
operationId: DisableSink
tags:
- configuration
description: Disables the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/enable:
put:
summary: Enable sink
operationId: EnableSink
tags:
- configuration
description: Enables the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/settings:
get:
summary: Get sink settings
operationId: GetSinkSettings
tags:
- configuration
description: Get the sink settings.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/SettingsResult'
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
patch:
summary: Update sink settings
operationId: UpdateSinkSettings
tags:
- configuration
description: Update sink settings.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/definitions/StreamUpdateSinkSettingsRequestBody'
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/statistics/clear:
delete:
summary: Clear sink statistics
operationId: SinkStatisticsClear
tags:
- configuration
description: Clears all statistics of the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'200':
description: OK response.
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/statistics/files:
get:
summary: Sink files statistics
operationId: SinkStatisticsFiles
tags:
- configuration
description: Get files statistics of the sink.
parameters:
- name: failedFiles
in: query
required: false
description: Filter for not imported files. If set to true, only not imported files will be included.
schema:
type: boolean
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/SinkStatisticsFilesResult'
required:
- files
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/statistics/total:
get:
summary: Sink statistics total
operationId: SinkStatisticsTotal
tags:
- configuration
description: Get total statistics of the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'200':
description: OK response.
content:
application/json:
schema:
$ref: '#/definitions/SinkStatisticsTotalResult'
required:
- levels
- total
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/undelete:
put:
summary: Undelete sink
operationId: UndeleteSink
tags:
- configuration
description: Undelete the sink.
parameters:
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
in: path
required: true
description: Unique ID of the sink.
schema:
type: string
responses:
'202':
description: Accepted response.
content:
application/json:
schema:
$ref: '#/definitions/Task'
required:
- taskId
- type
- url
- status
- isFinished
- createdAt
'404':
description: Not Found response.
content:
application/json:
schema:
$ref: '#/definitions/GenericError'
required:
- statusCode
- error
- message
security:
- storage-api-token: []
/v1/branches/{branchId}/sources/{sourceId}/sinks/{sinkId}/versions:
get:
summary: List sink versions
operationId: ListSinkVersions
tags:
- configuration
description: List all sink versions.
parameters:
- name: afterId
in: query
required: false
description: Request records after the ID.
schema:
type: string
- name: limit
in: query
required: false
description: Maximum number of returned records.
schema:
type: integer
- name: branchId
in: path
required: true
description: ID of the branch or "default".
schema:
type: string
- name: sourceId
in: path
required: true
description: Unique ID of the source.
schema:
type: string
- name: sinkId
# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/keboola/refs/heads/main/openapi/keboola-configuration-api-openapi.yml