Keboola Sandboxes API
The Sandboxes API from Keboola — 2 operation(s) for sandboxes.
The Sandboxes API from Keboola — 2 operation(s) for sandboxes.
openapi: 3.0.0
info:
title: AI Service Actions Sandboxes API
version: 1.0.0
contact:
email: devel@keboola.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
tags:
- name: Sandboxes
paths:
/sandboxes:
post:
summary: Create sandbox
operationId: createSandbox
tags:
- Sandboxes
description: 'This endpoint is intended to create Python/R Sandboxes.
'
security:
- storageApiToken: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- componentId
- configurationId
- type
- host
additionalProperties: true
properties:
componentId:
type: string
description: Keboola component ID (e.g. keboola.sandboxes)
configurationId:
type: string
description: Keboola configuration ID
configurationVersion:
type: string
description: 'Configuration version to use. If omitted, the latest version is resolved automatically.
'
type:
type: string
enum:
- python
- r
- snowflake
- bigquery
- streamlit
- python-js
description: Sandbox type
physicalId:
type: string
description: Physical identifier of the underlying resource (e.g. Snowflake schema name)
host:
type: string
description: Hostname of the underlying resource
size:
type: string
enum:
- micro
- tiny
- small
- medium
- large
nullable: true
branchId:
type: string
nullable: true
user:
type: string
nullable: true
password:
type: string
nullable: true
url:
type: string
nullable: true
active:
type: boolean
shared:
type: boolean
imageVersion:
type: string
nullable: true
packages:
type: array
deprecated: true
items:
type: string
autoSuspendAfterSeconds:
type: integer
nullable: true
responses:
'201':
description: Sandbox created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
'422':
description: Unprocessable Entity
/sandboxes/{appId}:
get:
summary: Get sandbox
operationId: getSandbox
tags:
- Sandboxes
description: 'This endpoint is intended to get details for Python/R Sandboxes.
'
security:
- storageApiToken: []
parameters:
- in: path
name: appId
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Sandbox not found
patch:
summary: Update sandbox
operationId: patchSandbox
tags:
- Sandboxes
description: 'This endpoint is intended to update Python/R Sandboxes.
'
security:
- storageApiToken: []
parameters:
- in: path
name: appId
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- configurationVersion
additionalProperties: true
properties:
configurationVersion:
type: string
active:
type: boolean
nullable: true
url:
type: string
nullable: true
expirationAfterHours:
type: integer
nullable: true
minimum: 0
autoSuspendAfterSeconds:
type: integer
nullable: true
minimum: 0
password:
type: string
nullable: true
persistentStorage:
type: object
nullable: true
description: Persistent volume claim data; populated by the sandboxes component after PVC provisioning.
properties:
pvcName:
type: string
nullable: true
description: Name of the PVC in Kubernetes (e.g. "sandbox-123").
k8sManifest:
type: string
nullable: true
description: Serialized YAML of the PVC Kubernetes manifest.
isEnabled:
type: boolean
description: Whether persistent storage is enabled for this sandbox.
ready:
type: boolean
nullable: true
description: Whether the project-level persistent storage is ready.
k8sStorageClassName:
type: string
nullable: true
description: Kubernetes StorageClass name for the project's persistent storage.
sizeParameters:
type: object
nullable: true
description: Size parameters for the sandbox; used to store the PVC storage size.
properties:
storageSize_GB:
type: integer
nullable: true
description: PVC storage size in GB.
responses:
'200':
description: Sandbox updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Sandbox not found
'422':
description: Unprocessable Entity
delete:
summary: Delete sandbox
operationId: deleteSandbox
tags:
- Sandboxes
description: 'This endpoint is intended to delete Python/R Sandboxes.
'
security:
- storageApiToken: []
parameters:
- in: path
name: appId
required: true
schema:
type: string
responses:
'204':
description: Sandbox deleted successfully
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Sandbox not found
components:
schemas:
SandboxResponse:
type: object
description: 'Response schema for sandbox endpoints (GET, POST, PATCH).
'
properties:
id:
type: string
projectId:
type: string
tokenId:
type: string
deprecated: true
description: Always empty string
branchId:
type: string
nullable: true
configurationId:
type: string
physicalId:
type: string
deprecated: true
description: Always empty string
type:
type: string
active:
type: boolean
description: Whether the sandbox is currently running.
createdTimestamp:
type: string
format: date-time
startTimestamp:
type: string
format: date-time
updatedTimestamp:
type: string
format: date-time
persistentStorage:
type: object
properties:
pvcName:
type: string
nullable: true
k8sManifest:
type: string
nullable: true
isEnabled:
type: boolean
description: Whether persistent storage is enabled for this sandbox.
ready:
type: boolean
nullable: true
description: Whether the project-level persistent storage is ready.
k8sStorageClassName:
type: string
nullable: true
description: Kubernetes StorageClass name for the project's persistent storage.
shared:
type: boolean
componentId:
type: string
configurationVersion:
type: string
size:
type: string
nullable: true
lastAutosaveTimestamp:
type: string
nullable: true
format: date-time
deprecated: true
description: Always null
expirationTimestamp:
type: string
nullable: true
format: date-time
deprecated: true
description: Deprecated, always null
autoSuspendAfterSeconds:
type: integer
description: Auto-suspend timeout in seconds (defaults to 3600)
expirationAfterHours:
type: integer
deprecated: true
description: Deprecated, use autoSuspendAfterSeconds
user:
type: string
nullable: true
deprecated: true
description: Always null
url:
type: string
nullable: true
password:
type: string
nullable: true
autosaveTokenId:
type: string
nullable: true
deprecated: true
description: Always null
host:
type: string
nullable: true
deprecated: true
description: Deprecated, always null
imageVersion:
type: string
nullable: true
packages:
type: array
nullable: true
items:
type: string
sizeParameters:
nullable: true
deprecated: true
description: Deprecated, always null
stagingWorkspaceId:
nullable: true
deprecated: true
description: Deprecated, always null
stagingWorkspaceType:
nullable: true
deprecated: true
description: Deprecated, always null
workspaceDetails:
nullable: true
deprecated: true
description: Deprecated, always null
databricks:
nullable: true
deprecated: true
description: Deprecated, always null
credentials:
nullable: true
deprecated: true
description: Deprecated, always null
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-StorageApi-Token