Gatana Sandboxes API

The sandboxes API from Gatana — 8 operation(s) for sandboxes.

GitHub OpenAPI

Operations 10

POST /sandboxes Create sandbox #
GET /sandboxes List sandboxes #
GET /sandboxes/{sandboxId} Get sandbox #
DELETE /sandboxes/{sandboxId} Delete sandbox #
POST /sandboxes/{sandboxId}/ssh-session Create sandbox ssh session #
POST /sandboxes/{sandboxId}/exec Exec sandbox #
POST /sandboxes/{sandboxId}/write-file Create sandbox write file #
POST /sandboxes/{sandboxId}/read-file Create sandbox read file #
GET /sandboxes/{sandboxId}/audit-logs List sandbox audit logs #
GET /sandboxes/{sandboxId}/audit-logs/{id} Get sandbox audit log #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gatana-ai:gatana-ai-sandboxes-api"
All apis
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.

Get an API 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 Specification

gatana-ai-sandboxes-api-openapi.yml Raw ↑
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