Daytona · Arazzo Workflow

Daytona Provision a Volume and Attach It to a New Sandbox

Version 1.0.0

Create a persistent volume, wait until it is ready, then launch a sandbox with the volume mounted.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Artificial IntelligenceAgentsCloudCode ExecutionComputer UseDeveloper ToolsInfrastructureOpen-SourceSandboxSecure ExecutionArazzoWorkflows

Provider

daytona-io

Workflows

provision-volume-and-sandbox
Create a volume, wait until ready, then launch a sandbox with it mounted.
Creates a persistent volume, polls until it is ready, then creates a sandbox that mounts the volume at the supplied path.
3 steps inputs: apiToken, mountPath, snapshot, volumeName outputs: sandboxId, sandboxState, volumeId
1
createVolume
Create a new persistent volume.
2
pollVolume
Poll the volume until it reports ready, looping while it is still creating and ending if it errors.
3
createSandbox
Create a sandbox from the snapshot with the ready volume mounted.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Daytona Provision a Volume and Attach It to a New Sandbox
  summary: Create a persistent volume, wait until it is ready, then launch a sandbox with the volume mounted.
  description: >-
    Persistent volumes let developer environments share data across sandbox
    restarts and forks. This workflow creates a named volume, polls it until it
    reaches the ready state (looping while it is still creating and ending if it
    errors), and then provisions a new sandbox from a snapshot with the ready
    volume mounted at the requested path. It spans the Volumes and Sandbox APIs,
    and every step spells out its request inline so the flow can be read and
    executed without opening the underlying OpenAPI descriptions.
  version: 1.0.0
sourceDescriptions:
- name: sandboxApi
  url: ../openapi/daytona-io-sandbox-api-openapi.yml
  type: openapi
- name: volumesApi
  url: ../openapi/daytona-io-volumes-api-openapi.yml
  type: openapi
workflows:
- workflowId: provision-volume-and-sandbox
  summary: Create a volume, wait until ready, then launch a sandbox with it mounted.
  description: >-
    Creates a persistent volume, polls until it is ready, then creates a sandbox
    that mounts the volume at the supplied path.
  inputs:
    type: object
    required:
    - apiToken
    - volumeName
    - snapshot
    - mountPath
    properties:
      apiToken:
        type: string
        description: Daytona API key used as a bearer token.
      volumeName:
        type: string
        description: The name of the persistent volume to create.
      snapshot:
        type: string
        description: The ID or name of the snapshot used to back the new sandbox.
      mountPath:
        type: string
        description: The path at which the volume is mounted inside the sandbox (e.g. /data).
  steps:
  - stepId: createVolume
    description: Create a new persistent volume.
    operationId: createVolume
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.volumeName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      volumeId: $response.body#/id
      state: $response.body#/state
  - stepId: pollVolume
    description: >-
      Poll the volume until it reports ready, looping while it is still creating
      and ending if it errors.
    operationId: getVolume
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    - name: volumeId
      in: path
      value: $steps.createVolume.outputs.volumeId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      state: $response.body#/state
    onSuccess:
    - name: ready
      type: goto
      stepId: createSandbox
      criteria:
      - context: $response.body
        condition: $.state == "ready"
        type: jsonpath
    - name: failed
      type: end
      criteria:
      - context: $response.body
        condition: $.state == "error"
        type: jsonpath
    - name: stillCreating
      type: goto
      stepId: pollVolume
      criteria:
      - context: $response.body
        condition: $.state != "ready" && $.state != "error"
        type: jsonpath
  - stepId: createSandbox
    description: Create a sandbox from the snapshot with the ready volume mounted.
    operationId: createSandbox
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.apiToken"
    requestBody:
      contentType: application/json
      payload:
        snapshot: $inputs.snapshot
        volumes:
        - volumeId: $steps.createVolume.outputs.volumeId
          mountPath: $inputs.mountPath
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sandboxId: $response.body#/id
      state: $response.body#/state
  outputs:
    volumeId: $steps.createVolume.outputs.volumeId
    sandboxId: $steps.createSandbox.outputs.sandboxId
    sandboxState: $steps.createSandbox.outputs.state

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/daytona-io-provision-volume-and-sandbox-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.