Gatana Sandboxes API
The sandboxes API from Gatana — 8 operation(s) for sandboxes.
The sandboxes API from Gatana — 8 operation(s) for sandboxes.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gatana-ai:gatana-ai-sandboxes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Gatana Sandboxes API
version: v1.48.6
description: ''
servers:
- url: https://{YOUR_ORG_ID}.gatana.ai/api/v1
description: Gatana Public API
variables:
YOUR_ORG_ID:
default: YOUR_ORG_ID
description: Gatana organization identifier
security:
- Static Bearer Token: []
- OAuth2: []
tags:
- name: Sandboxes
paths:
/sandboxes:
post:
responseType:
def:
type: object
shape:
sandbox:
def:
type: object
shape:
id:
def:
type: string
type: string
tenantId:
def:
type: string
type: string
lastActivityAt:
def:
type: date
type: date
isArchived:
def:
type: boolean
type: boolean
createdAt:
def:
type: date
type: date
updatedAt:
def:
type: date
type: date
user:
def:
type: object
shape:
id:
def:
type: string
type: string
email:
def:
type: string
type: string
name:
def:
type: string
type: string
type: object
type: object
type: object
description: Create a sandbox for the authenticated user with a paid subscription and Kubernetes, up to 10 concurrent sandboxes per organization
operationId: createSandbox
tags:
- Sandboxes
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSandboxResponse'
summary: Create sandbox
x-summary-source: derived
get:
responseType:
def:
type: object
shape:
sandboxes:
def:
type: array
element:
def:
type: object
shape:
id:
def:
type: string
type: string
tenantId:
def:
type: string
type: string
lastActivityAt:
def:
type: date
type: date
isArchived:
def:
type: boolean
type: boolean
createdAt:
def:
type: date
type: date
updatedAt:
def:
type: date
type: date
user:
def:
type: object
shape:
id:
def:
type: string
type: string
email:
def:
type: string
type: string
name:
def:
type: string
type: string
type: object
type: object
type: array
element:
def:
type: object
shape:
id:
def:
type: string
type: string
tenantId:
def:
type: string
type: string
lastActivityAt:
def:
type: date
type: date
isArchived:
def:
type: boolean
type: boolean
createdAt:
def:
type: date
type: date
updatedAt:
def:
type: date
type: date
user:
def:
type: object
shape:
id:
def:
type: string
type: string
email:
def:
type: string
type: string
name:
def:
type: string
type: string
type: object
type: object
type: object
description: List the sandboxes the caller can read. Set all=true to also include archived sandboxes
operationId: listSandboxes
tags:
- Sandboxes
parameters:
- in: query
name: all
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ListSandboxesResponse'
summary: List sandboxes
x-summary-source: derived
/sandboxes/{sandboxId}:
get:
responseType:
def:
type: object
shape:
id:
def:
type: string
type: string
tenantId:
def:
type: string
type: string
lastActivityAt:
def:
type: date
type: date
isArchived:
def:
type: boolean
type: boolean
createdAt:
def:
type: date
type: date
updatedAt:
def:
type: date
type: date
user:
def:
type: object
shape:
id:
def:
type: string
type: string
email:
def:
type: string
type: string
name:
def:
type: string
type: string
type: object
type: object
description: Get a single sandbox by ID
operationId: getSandbox
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxDto'
summary: Get sandbox
x-summary-source: derived
delete:
responseType:
def:
type: object
shape: {}
type: object
description: Destroy the sandbox, delete its Kubernetes resources, and archive it
operationId: deleteSandbox
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties: {}
additionalProperties: false
summary: Delete sandbox
x-summary-source: derived
/sandboxes/{sandboxId}/ssh-session:
post:
responseType:
def:
type: object
shape:
token:
def:
type: string
type: string
expiresIn:
def:
type: number
checks: []
type: number
isFinite: true
host:
def:
type: string
type: string
port:
def:
type: number
checks: []
type: number
isFinite: true
type: object
description: Issue a short-lived token that opens an SSH session to the sandbox through the SSH proxy. The token expires after 5 minutes
operationId: createSandboxSshSession
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/SshSessionResponse'
summary: Create sandbox ssh session
x-summary-source: derived
/sandboxes/{sandboxId}/exec:
post:
requestType:
def:
type: object
shape:
command:
def:
type: string
type: string
workdir:
def:
type: nullable
innerType:
def:
type: optional
innerType:
def:
type: string
type: string
type: optional
type: nullable
timeout:
def:
type: nullable
innerType:
def:
type: optional
innerType:
def:
type: number
checks: []
type: number
isFinite: true
type: optional
type: nullable
type: object
description: Run a command in the sandbox and stream the output back as NDJSON. The command and its result are written to the sandbox audit log
operationId: execSandbox
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExecCommandBody'
responses:
'200':
description: NDJSON stream of exec output. Each line is a JSON object (ExecNdjsonLine) followed by a newline.
content:
application/octet-stream:
example: '{"stream":"stdout","data":"command output line\n"}
{"done":true,"exitCode":0}
{"error":true,"message":"timeout"}
{"keepAlive":true}
'
schema:
type: string
encoding:
application/x-ndjson:
schema:
type: string
format: binary
summary: Exec sandbox
x-summary-source: derived
/sandboxes/{sandboxId}/write-file:
post:
responseType:
def:
type: object
shape:
success:
def:
type: boolean
type: boolean
type: object
description: Write the raw request body to the given file path in the sandbox
operationId: createSandboxWriteFile
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
- in: query
name: path
schema:
$ref: '#/components/schemas/__schema334'
required: true
requestBody:
description: Raw file content to write
content:
application/octet-stream:
schema:
format: binary
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
required:
- success
additionalProperties: false
summary: Create sandbox write file
x-summary-source: derived
/sandboxes/{sandboxId}/read-file:
post:
description: Read the file at the given path in the sandbox and stream its content back
operationId: createSandboxReadFile
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
- in: query
name: path
schema:
$ref: '#/components/schemas/__schema334'
required: true
responses:
'200':
description: File content stream from sandbox
content:
application/octet-stream:
schema:
format: binary
summary: Create sandbox read file
x-summary-source: derived
/sandboxes/{sandboxId}/audit-logs:
get:
responseType:
def:
type: object
shape:
pagination:
def:
type: object
shape:
page:
def:
type: number
checks: []
type: number
isFinite: true
limit:
def:
type: number
checks: []
type: number
isFinite: true
total:
def:
type: number
checks: []
type: number
isFinite: true
totalPages:
def:
type: number
checks: []
type: number
isFinite: true
hasNext:
def:
type: boolean
type: boolean
hasPrev:
def:
type: boolean
type: boolean
type: object
data:
def:
type: array
element:
def:
type: object
shape:
id:
def:
type: number
checks: []
type: number
isFinite: true
tenantId:
def:
type: string
type: string
sandboxId:
def:
type: string
type: string
eventName:
def:
type: string
type: string
details:
def:
type: record
keyType:
def:
type: string
type: string
valueType:
def:
type: unknown
type: unknown
type: record
keyType:
def:
type: string
type: string
valueType:
def:
type: unknown
type: unknown
createdAt:
def:
type: date
type: date
type: object
type: array
element:
def:
type: object
shape:
id:
def:
type: number
checks: []
type: number
isFinite: true
tenantId:
def:
type: string
type: string
sandboxId:
def:
type: string
type: string
eventName:
def:
type: string
type: string
details:
def:
type: record
keyType:
def:
type: string
type: string
valueType:
def:
type: unknown
type: unknown
type: record
keyType:
def:
type: string
type: string
valueType:
def:
type: unknown
type: unknown
createdAt:
def:
type: date
type: date
type: object
type: object
description: List the audit log entries of the sandbox, paginated and optionally filtered by date range
operationId: listSandboxAuditLogs
tags:
- Sandboxes
parameters:
- in: query
name: page
schema:
type: string
- in: query
name: limit
schema:
type: string
- in: query
name: eventName
schema:
type: string
- in: query
name: startDate
schema:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- in: query
name: endDate
schema:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- in: path
name: sandboxId
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedSandboxAuditLog'
summary: List sandbox audit logs
x-summary-source: derived
/sandboxes/{sandboxId}/audit-logs/{id}:
get:
responseType:
def:
type: object
shape:
id:
def:
type: number
checks: []
type: number
isFinite: true
tenantId:
def:
type: string
type: string
sandboxId:
def:
type: string
type: string
eventName:
def:
type: string
type: string
details:
def:
type: record
keyType:
def:
type: string
type: string
valueType:
def:
type: unknown
type: unknown
type: record
keyType:
def:
type: string
type: string
valueType:
def:
type: unknown
type: unknown
createdAt:
def:
type: date
type: date
type: object
description: Get a single audit log entry of the sandbox by ID
operationId: getSandboxAuditLog
tags:
- Sandboxes
parameters:
- in: path
name: sandboxId
schema:
type: string
required: true
- in: path
name: id
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/SandboxAuditLog'
summary: Get sandbox audit log
x-summary-source: derived
components:
schemas:
PaginatedSandboxAuditLog:
type: object
properties:
pagination:
$ref: '#/components/schemas/__schema513'
data:
$ref: '#/components/schemas/__schema1220'
required:
- pagination
- data
additionalProperties: false
__schema513:
type: object
properties:
page:
$ref: '#/components/schemas/__schema514'
limit:
$ref: '#/components/schemas/__schema515'
total:
$ref: '#/components/schemas/__schema516'
totalPages:
$ref: '#/components/schemas/__schema517'
hasNext:
$ref: '#/components/schemas/__schema518'
hasPrev:
$ref: '#/components/schemas/__schema519'
required:
- page
- limit
- total
- totalPages
- hasNext
- hasPrev
additionalProperties: false
description: Pagination metadata
ListSandboxesResponse:
type: object
properties:
sandboxes:
$ref: '#/components/schemas/__schema1215'
required:
- sandboxes
additionalProperties: false
SshSessionResponse:
type: object
properties:
token:
$ref: '#/components/schemas/__schema1216'
expiresIn:
$ref: '#/components/schemas/__schema1217'
host:
$ref: '#/components/schemas/__schema1218'
port:
$ref: '#/components/schemas/__schema1219'
required:
- token
- expiresIn
- host
- port
additionalProperties: false
description: Short-lived JWT credential for SSH access to a sandbox
UserSmallDto:
type: object
properties:
id:
$ref: '#/components/schemas/__schema1194'
email:
$ref: '#/components/schemas/__schema1195'
name:
$ref: '#/components/schemas/__schema1196'
required:
- id
- email
- name
additionalProperties: false
SandboxAuditLog:
type: object
properties:
id:
$ref: '#/components/schemas/__schema1221'
tenantId:
$ref: '#/components/schemas/__schema1222'
sandboxId:
$ref: '#/components/schemas/__schema1223'
eventName:
$ref: '#/components/schemas/__schema1224'
details:
$ref: '#/components/schemas/__schema1225'
createdAt:
$ref: '#/components/schemas/__schema1226'
required:
- id
- tenantId
- sandboxId
- eventName
- details
- createdAt
additionalProperties: false
__schema517:
type: number
description: Total number of pages
__schema1212:
type: boolean
ExecCommandBody:
type: object
properties:
command:
$ref: '#/components/schemas/__schema331'
workdir:
$ref: '#/components/schemas/__schema332'
timeout:
$ref: '#/components/schemas/__schema333'
required:
- command
__schema1218:
type: string
SandboxDto:
type: object
properties:
id:
$ref: '#/components/schemas/__schema1209'
tenantId:
$ref: '#/components/schemas/__schema1210'
lastActivityAt:
$ref: '#/components/schemas/__schema1211'
isArchived:
$ref: '#/components/schemas/__schema1212'
createdAt:
$ref: '#/components/schemas/__schema1213'
updatedAt:
$ref: '#/components/schemas/__schema1214'
user:
$ref: '#/components/schemas/UserSmallDto'
required:
- id
- tenantId
- lastActivityAt
- isArchived
- createdAt
- updatedAt
- user
additionalProperties: false
__schema332:
type:
- string
- 'null'
__schema519:
type: boolean
description: Whether a previous page exists
__schema1223:
type: string
__schema1209:
type: string
__schema1213:
type: string
__schema1226:
type: string
__schema516:
type: number
description: Total number of items across all pages
__schema1222:
type: string
__schema1216:
type: string
__schema1220:
type: array
items:
$ref: '#/components/schemas/SandboxAuditLog'
description: Items on the current page
CreateSandboxResponse:
type: object
properties:
sandbox:
$ref: '#/components/schemas/SandboxDto'
required:
- sandbox
additionalProperties: false
__schema1215:
type: array
items:
$ref: '#/components/schemas/SandboxDto'
__schema1214:
type: string
__schema1224:
type: string
__schema1221:
type: number
__schema1210:
type: string
__schema518:
type: boolean
description: Whether a next page exists
__schema334:
type: string
__schema1211:
type: string
__schema333:
type:
- number
- 'null'
__schema1196:
type: string
description: Display name of the user
__schema1217:
type: number
__schema1194:
type: string
description: Unique ID of the user
__schema1219:
type: number
__schema1195:
type: string
description: Email address of the user
__schema1225:
type: object
propertyNames:
type: string
additionalProperties: {}
__schema331:
type: string
__schema514:
type: number
description: Current page number
__schema515:
type: number
description: Maximum number of items per page
securitySchemes:
Static_Bearer_Token:
type: http
scheme: bearer
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: /oauth/authorize
tokenUrl: /oauth/token
scopes:
openid: Authentication claims