Duvo Ai Sandboxes API
Create sandboxes and upload files for agent runs
Create sandboxes and upload files for agent runs
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/duvo-ai-sandboxes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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.