Auto-delete automatically removes sandboxes after they’ve been stopped for a specified period.
Python
TypeScript
Go
from daytona import CreateSandboxFromSnapshotParams, Daytonadef main(): daytona = Daytona() # Auto-delete is disabled by default sandbox1 = daytona.create() print(sandbox1.auto_delete_interval) # Auto-delete after the Sandbox has been stopped for 1 hour sandbox1.set_auto_delete_interval(60) print(sandbox1.auto_delete_interval) # Delete immediately upon stopping sandbox1.set_auto_delete_interval(0) print(sandbox1.auto_delete_interval) # Disable auto-delete sandbox1.set_auto_delete_interval(-1) print(sandbox1.auto_delete_interval) # Auto-delete after the Sandbox has been stopped for 1 day sandbox2 = daytona.create(params=CreateSandboxFromSnapshotParams(auto_delete_interval=1440)) print(sandbox2.auto_delete_interval)if __name__ == "__main__": main()
import { Daytona } from '@daytonaio/sdk'async function main() { const daytona = new Daytona() // Auto-delete is disabled by default const sandbox1 = await daytona.create() console.log(sandbox1.autoDeleteInterval) // Auto-delete after the Sandbox has been stopped for 1 hour await sandbox1.setAutoDeleteInterval(60) console.log(sandbox1.autoDeleteInterval) // Delete immediately upon stopping await sandbox1.setAutoDeleteInterval(0) console.log(sandbox1.autoDeleteInterval) // Disable auto-delete await sandbox1.setAutoDeleteInterval(-1) console.log(sandbox1.autoDeleteInterval) // Auto-delete after the Sandbox has been stopped for 1 day const sandbox2 = await daytona.create({ autoDeleteInterval: 1440, }) console.log(sandbox2.autoDeleteInterval)}main().catch(console.error)
package mainimport ( "context" "log" "time" "github.com/daytonaio/daytona/libs/sdk-go/pkg/daytona" "github.com/daytonaio/daytona/libs/sdk-go/pkg/options" "github.com/daytonaio/daytona/libs/sdk-go/pkg/types")func main() { client, err := daytona.NewClient() if err != nil { log.Fatalf("Failed to create client: %v", err) } ctx := context.Background() // Example 1: Auto-delete is disabled by default log.Println("=== Example 1: Default auto-delete interval (disabled) ===") params1 := types.SnapshotParams{ SandboxBaseParams: types.SandboxBaseParams{ Language: types.CodeLanguagePython, }, } sandbox1, err := client.Create(ctx, params1, options.WithTimeout(90*time.Second)) if err != nil { log.Fatalf("Failed to create sandbox: %v", err) } log.Printf("Default auto-delete interval: %d (disabled)\n", sandbox1.AutoDeleteInterval) // Example 2: Auto-delete after the Sandbox has been stopped for 1 hour log.Println("\n=== Example 2: Set auto-delete to 60 minutes after stop ===") interval := 60 if err := sandbox1.SetAutoDeleteInterval(ctx, &interval); err != nil { log.Fatalf("Failed to set auto-delete interval: %v", err) } // Refresh sandbox info sandbox1, err = client.Get(ctx, sandbox1.ID) if err != nil { log.Fatalf("Failed to get sandbox: %v", err) } log.Printf("Updated auto-delete interval: %d minutes\n", sandbox1.AutoDeleteInterval) // Example 3: Delete immediately upon stopping log.Println("\n=== Example 3: Delete immediately upon stopping (0 minutes) ===") immediateInterval := 0 if err := sandbox1.SetAutoDeleteInterval(ctx, &immediateInterval); err != nil { log.Fatalf("Failed to set auto-delete interval: %v", err) } // Refresh sandbox info sandbox1, err = client.Get(ctx, sandbox1.ID) if err != nil { log.Fatalf("Failed to get sandbox: %v", err) } log.Printf("Updated auto-delete interval: %d (immediate)\n", sandbox1.AutoDeleteInterval) // Example 4: Disable auto-delete log.Println("\n=== Example 4: Disable auto-delete (-1) ===") disableInterval := -1 if err := sandbox1.SetAutoDeleteInterval(ctx, &disableInterval); err != nil { log.Fatalf("Failed to set auto-delete interval: %v", err) } // Refresh sandbox info sandbox1, err = client.Get(ctx, sandbox1.ID) if err != nil { log.Fatalf("Failed to get sandbox: %v", err) } log.Printf("Updated auto-delete interval: %d (disabled)\n", sandbox1.AutoDeleteInterval) // Clean up first sandbox if err := sandbox1.Delete(ctx); err != nil { log.Printf("Failed to delete sandbox: %v", err) } // Example 5: Auto-delete after the Sandbox has been stopped for 1 day log.Println("\n=== Example 5: Sandbox with 1 day auto-delete interval ===") oneDayInterval := 1440 // 24 hours * 60 minutes params2 := types.SnapshotParams{ SandboxBaseParams: types.SandboxBaseParams{ Language: types.CodeLanguagePython, AutoDeleteInterval: &oneDayInterval, }, } sandbox2, err := client.Create(ctx, params2, options.WithTimeout(90*time.Second)) if err != nil { log.Fatalf("Failed to create sandbox: %v", err) } log.Printf("Auto-delete interval: %d minutes (1 day)\n", sandbox2.AutoDeleteInterval) // Clean up second sandbox if err := sandbox2.Delete(ctx); err != nil { log.Printf("Failed to delete sandbox: %v", err) } log.Println("\n✓ All auto-delete examples completed successfully!")}
Auto-delete permanently removes sandboxes after being stopped:
Default: -1 (disabled)
-1: Disabled (sandbox never auto-deletes)
0: Delete immediately when stopped
Positive number: Minutes after stop before deletion
Effect: Sandbox and all data are permanently removed
Permanent deletion: Auto-delete permanently removes the sandbox and all its data. Use with caution!
# Disable auto-delete (default)sandbox.set_auto_delete_interval(-1)# Delete immediately on stopsandbox.set_auto_delete_interval(0)# Delete after 24 hours of being stoppedsandbox.set_auto_delete_interval(1440)