TextQL Textql.rpc.platform.Sandbox Service API

Platform Sandbox Service - External API for creating and managing Python sandbox environments

Operations 6

POST /v1/sandbox/start StartSandbox #
POST /v1/sandbox/execute ExecuteCode #
POST /v1/sandbox/status GetSandboxStatus #
POST /v1/sandbox/stop StopSandbox #
POST /v1/sandbox/query LoadConnectorData #
POST /v1/sandbox/upload UploadFile #

Documentation

Specifications

Other Resources

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/textql-textql-rpc-platform-sandboxservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

textql-textql-rpc-platform-sandboxservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Textql.rpc.platform.Sandbox Service API
  version: '1.0'
  description: Platform Sandbox Service - External API for creating and managing Python sandbox environments
security: []
tags:
- name: textql.rpc.platform.SandboxService
  description: Platform Sandbox Service - External API for creating and managing Python sandbox environments
paths:
  /v1/sandbox/start:
    post:
      tags:
      - textql.rpc.platform.SandboxService
      summary: StartSandbox
      description: Start a new Python sandbox environment
      operationId: textql.rpc.platform.SandboxService.StartSandbox
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.platform.StartSandboxRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.platform.StartSandboxResponse'
  /v1/sandbox/execute:
    post:
      tags:
      - textql.rpc.platform.SandboxService
      summary: ExecuteCode
      description: Execute Python code in a running sandbox
      operationId: textql.rpc.platform.SandboxService.ExecuteCode
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.platform.ExecuteCodeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.platform.ExecuteCodeResponse'
  /v1/sandbox/status:
    post:
      tags:
      - textql.rpc.platform.SandboxService
      summary: GetSandboxStatus
      description: Get the current status of a sandbox, including loaded dataframes and memory usage
      operationId: textql.rpc.platform.SandboxService.GetSandboxStatus
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.platform.GetSandboxStatusRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.platform.GetSandboxStatusResponse'
  /v1/sandbox/stop:
    post:
      tags:
      - textql.rpc.platform.SandboxService
      summary: StopSandbox
      description: Stop and destroy a running sandbox
      operationId: textql.rpc.platform.SandboxService.StopSandbox
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.platform.StopSandboxRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.platform.StopSandboxResponse'
  /v1/sandbox/query:
    post:
      tags:
      - textql.rpc.platform.SandboxService
      summary: LoadConnectorData
      description: Execute a SQL query against a connector and load the results into the sandbox as a pandas DataFrame
      operationId: textql.rpc.platform.SandboxService.LoadConnectorData
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.platform.LoadConnectorDataRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.platform.LoadConnectorDataResponse'
  /v1/sandbox/upload:
    post:
      tags:
      - textql.rpc.platform.SandboxService
      summary: UploadFile
      description: Upload a file into the sandbox filesystem
      operationId: textql.rpc.platform.SandboxService.UploadFile
      parameters:
      - name: Connect-Protocol-Version
        in: header
        required: true
        schema:
          $ref: '#/components/schemas/connect-protocol-version'
      - name: Connect-Timeout-Ms
        in: header
        schema:
          $ref: '#/components/schemas/connect-timeout-header'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/textql.rpc.platform.UploadFileRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/textql.rpc.platform.UploadFileResponse'
components:
  schemas:
    textql.rpc.platform.ExecuteCodeResponse:
      type: object
      properties:
        output:
          type: array
          items:
            type: string
          title: output
          description: Lines of stdout output
        error:
          type: string
          title: error
          description: Error message if execution failed
          nullable: true
        files:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.platform.FileOutput'
          title: files
          description: Files generated during execution
        dataframes:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.platform.DataFrameOutput'
          title: dataframes
          description: DataFrames created or modified during execution
        executionTimeMs:
          type: integer
          title: execution_time_ms
          format: int64
      title: ExecuteCodeResponse
      additionalProperties: false
    textql.rpc.platform.UploadFileResponse:
      type: object
      properties:
        filename:
          type: string
          title: filename
        sizeBytes:
          type: integer
          title: size_bytes
          format: int64
      title: UploadFileResponse
      additionalProperties: false
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: 'A URL that acts as a globally unique identifier for the type of the serialized message. For example: `type.googleapis.com/google.rpc.ErrorInfo`. This is used to determine the schema of the data in the `value` field and is the discriminator for the `debug` field.'
        value:
          type: string
          format: binary
          description: The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the `type` field.
        debug:
          oneOf:
          - type: object
            title: Any
            additionalProperties: true
            description: Detailed error information.
          discriminator:
            propertyName: type
          title: Debug
          description: Deserialized error detail payload. The 'type' field indicates the schema. This field is for easier debugging and should not be relied upon for application logic.
      additionalProperties: true
      description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details.
    textql.rpc.platform.StopSandboxRequest:
      type: object
      properties:
        sandboxId:
          type: string
          title: sandbox_id
      required:
      - sandboxId
      title: StopSandboxRequest
      additionalProperties: false
    textql.rpc.platform.ExecuteCodeRequest:
      type: object
      properties:
        sandboxId:
          type: string
          title: sandbox_id
        code:
          type: string
          title: code
          description: Python code to execute
      required:
      - sandboxId
      - code
      title: ExecuteCodeRequest
      additionalProperties: false
    textql.rpc.platform.GetSandboxStatusRequest:
      type: object
      properties:
        sandboxId:
          type: string
          title: sandbox_id
      required:
      - sandboxId
      title: GetSandboxStatusRequest
      additionalProperties: false
    textql.rpc.platform.StopSandboxResponse:
      type: object
      properties:
        success:
          type: boolean
          title: success
      title: StopSandboxResponse
      additionalProperties: false
    textql.rpc.platform.StartSandboxRequest:
      type: object
      properties:
        name:
          type: string
          title: name
          description: Optional human-readable name for the sandbox
          nullable: true
      title: StartSandboxRequest
      additionalProperties: false
    textql.rpc.platform.UploadFileRequest:
      type: object
      properties:
        sandboxId:
          type: string
          title: sandbox_id
        filename:
          type: string
          title: filename
        content:
          type: string
          title: content
          format: byte
          description: File content, base64-encoded
      required:
      - sandboxId
      - filename
      - content
      title: UploadFileRequest
      additionalProperties: false
    connect-timeout-header:
      type: number
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
          - not_found
          enum:
          - canceled
          - unknown
          - invalid_argument
          - deadline_exceeded
          - not_found
          - already_exists
          - permission_denied
          - resource_exhausted
          - failed_precondition
          - aborted
          - out_of_range
          - unimplemented
          - internal
          - unavailable
          - data_loss
          - unauthenticated
          description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: A list of messages that carry the error details. There is no limit on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation'
    textql.rpc.platform.StartSandboxResponse:
      type: object
      properties:
        sandboxId:
          type: string
          title: sandbox_id
        createdAt:
          title: created_at
          $ref: '#/components/schemas/google.protobuf.Timestamp'
      title: StartSandboxResponse
      additionalProperties: false
    textql.rpc.platform.GetSandboxStatusResponse:
      type: object
      properties:
        status:
          type: string
          title: status
        memoryUsage:
          type: string
          title: memory_usage
        dataframes:
          type: array
          items:
            $ref: '#/components/schemas/textql.rpc.platform.DataFrameInfo'
          title: dataframes
      title: GetSandboxStatusResponse
      additionalProperties: false
    textql.rpc.platform.LoadConnectorDataResponse:
      type: object
      properties:
        dataframeName:
          type: string
          title: dataframe_name
        numRows:
          type: integer
          title: num_rows
          format: int64
        numCols:
          type: integer
          title: num_cols
          format: int64
        preview:
          type: string
          title: preview
          description: Text preview of the loaded data
      title: LoadConnectorDataResponse
      additionalProperties: false
    textql.rpc.platform.FileOutput:
      type: object
      properties:
        name:
          type: string
          title: name
        url:
          type: string
          title: url
        mimeType:
          type: string
          title: mime_type
      title: FileOutput
      additionalProperties: false
    google.protobuf.Timestamp:
      type: string
      examples:
      - '2023-01-15T01:30:15.01Z'
      - '2024-12-25T12:00:00Z'
      format: date-time
      description: A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format.
    textql.rpc.platform.DataFrameOutput:
      type: object
      properties:
        name:
          type: string
          title: name
        numRows:
          type: integer
          title: num_rows
          format: int32
        numCols:
          type: integer
          title: num_cols
          format: int32
      title: DataFrameOutput
      additionalProperties: false
    textql.rpc.platform.LoadConnectorDataRequest:
      type: object
      properties:
        sandboxId:
          type: string
          title: sandbox_id
        connectorId:
          type: integer
          title: connector_id
          format: int32
        query:
          type: string
          title: query
          description: SQL query to execute against the connector
        dataframeName:
          type: string
          title: dataframe_name
          description: Optional name for the resulting DataFrame. Auto-generated if not provided.
          nullable: true
      required:
      - sandboxId
      - connectorId
      - query
      title: LoadConnectorDataRequest
      additionalProperties: false
    connect-protocol-version:
      type: number
      title: Connect-Protocol-Version
      enum:
      - 1
      description: Define the version of the Connect protocol
      const: 1
    textql.rpc.platform.DataFrameInfo:
      type: object
      properties:
        name:
          type: string
          title: name
        numRows:
          type: integer
          title: num_rows
          format: int32
        numCols:
          type: integer
          title: num_cols
          format: int32
        memoryUsageBytes:
          type: integer
          title: memory_usage_bytes
          format: int64
      title: DataFrameInfo
      additionalProperties: false