duvo.ai Sandboxes API

Create sandboxes and upload files for agent runs

OpenAPI Specification

duvoai-sandboxes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Duvo Public Agent Folders Sandboxes API
  description: Public API for programmatic access to Duvo. Authenticate with API keys created in the Duvo dashboard.
  version: 1.0.0
servers:
- url: https://api.duvo.ai
  description: Production server
tags:
- name: Sandboxes
  description: Create sandboxes and upload files for agent runs
paths:
  /v2/sandboxes:
    post:
      operationId: createSandbox
      tags:
      - Sandboxes
      description: Create a new sandbox for file uploads. The returned sandbox_id can be passed to POST /v2/teams/:team_id/runs to stage data for a run.
      security:
      - bearerAuth: []
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  sandbox_id:
                    type: string
                    description: The newly created sandbox's identifier
                  expires_at:
                    type: string
                    description: ISO 8601 timestamp when the sandbox will expire
                required:
                - sandbox_id
                - expires_at
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Create Sandbox
  /v2/sandboxes/{sandbox_id}/upload-urls:
    post:
      operationId: createSandboxUploadUrl
      tags:
      - Sandboxes
      description: Get a presigned URL for uploading a file into a sandbox. Use for files larger than 10MB; smaller files can be uploaded directly via POST /v2/sandboxes/:sandbox_id/files.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                path:
                  type: string
                  minLength: 1
                  description: Path where the file will be uploaded (e.g. /workspace/data.csv)
              required:
              - path
      parameters:
      - schema:
          type: string
          minLength: 1
        in: path
        name: sandbox_id
        required: true
        description: The sandbox's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  upload_url:
                    type: string
                    format: uri
                    description: Presigned upload URL
                  path:
                    type: string
                    description: Path the file will be uploaded to
                  expires_in_seconds:
                    type: number
                    description: Seconds until the presigned URL expires
                required:
                - upload_url
                - path
                - expires_in_seconds
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Create Sandbox Upload URL
  /v2/sandboxes/{sandbox_id}/files:
    get:
      operationId: listSandboxFiles
      tags:
      - Sandboxes
      description: List files in a sandbox directory.
      parameters:
      - schema:
          default: /workspace
          type: string
        in: query
        name: path
        required: false
        description: Directory to list files from (defaults to /workspace)
      - schema:
          type: string
          minLength: 1
        in: path
        name: sandbox_id
        required: true
        description: The sandbox's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  files:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: File or directory name (basename)
                        path:
                          type: string
                          description: Absolute path inside the sandbox
                        type:
                          type: string
                          enum:
                          - file
                          - dir
                          description: Whether this entry is a regular file or a directory
                        size_bytes:
                          type: number
                          description: Size of the file in bytes (0 for directories)
                      required:
                      - name
                      - path
                      - type
                      - size_bytes
                      additionalProperties: false
                    description: Entries in the requested directory
                required:
                - files
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: List Sandbox Files
    post:
      operationId: uploadSandboxFile
      tags:
      - Sandboxes
      description: Upload a file directly to the sandbox. Maximum file size is 10MB. For larger files, use POST /v2/sandboxes/:sandbox_id/upload-urls.
      parameters:
      - schema:
          type: string
          minLength: 1
        in: path
        name: sandbox_id
        required: true
        description: The sandbox's unique identifier
      security:
      - bearerAuth: []
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  path:
                    type: string
                    description: Path the file was uploaded to
                  size_bytes:
                    type: number
                    description: Size of the uploaded file in bytes
                required:
                - path
                - size_bytes
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '413':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Upload Sandbox File
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your API key from the Duvo dashboard.