Regions
Every Daytona sandbox runs in a region: a geographic or logical grouping of compute infrastructure. When creating a sandbox, you can target a specific region, and Daytona schedules the workload on available capacity within that region.
Shared regions
Section titled “Shared regions”Regions managed by Daytona and available to all organizations:
| Region | Target |
|---|---|
| United States | us |
| Europe | eu |
from daytona import Daytona, DaytonaConfig
# Configure Daytona to use the US regionconfig = DaytonaConfig( target="us")
# Initialize the Daytona client with the specified configurationdaytona = Daytona(config)
# Create a sandbox in the US regionsandbox = daytona.create()import { Daytona } from '@daytona/sdk'
// Configure Daytona to use the US regionconst daytona = new Daytona({ target: 'us',})
// Create a sandbox in the US regionconst sandbox = await daytona.create()require 'daytona'
# Configure Daytona to use the US regionconfig = Daytona::Config.new( target: 'us')
# Initialize the Daytona client with the specified configurationdaytona = Daytona::Daytona.new(config)
# Create a sandbox in the US regionsandbox = daytona.createpackage main
import ( "context"
"github.com/daytona/clients/sdk-go/pkg/daytona" "github.com/daytona/clients/sdk-go/pkg/types")
func main() { // Configure Daytona to use the US region client, _ := daytona.NewClientWithConfig(&types.DaytonaConfig{ Target: "us", })
// Create a sandbox in the US region ctx := context.Background() _, _ = client.Create(ctx, nil)}import io.daytona.sdk.Daytona;import io.daytona.sdk.DaytonaConfig;import io.daytona.sdk.Sandbox;
public class App { public static void main(String[] args) { // Configure Daytona to use the US region DaytonaConfig config = new DaytonaConfig.Builder() .apiKey(System.getenv("DAYTONA_API_KEY")) .target("us") .build();
try (Daytona daytona = new Daytona(config)) { // Create a sandbox in the US region Sandbox sandbox = daytona.create(); } }}# Create a sandbox in the US regioncurl 'https://app.daytona.io/api/sandbox' \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer YOUR_API_KEY' \ --data '{ "target": "us"}'List regions managed by Daytona and available to all organizations:
curl 'https://app.daytona.io/api/shared-regions' \ --header 'Authorization: Bearer YOUR_API_KEY'Earth region
Section titled “Earth region”GPU sandboxes and GPU snapshots on shared regions belong to the Earth region: a global region that spans the shared GPU fleet. Daytona selects the shared region a GPU workload runs in and ignores the region preference.
Earth is not a physical region. It is not returned by the regions or shared regions endpoints, and it is a reserved region ID that cannot be assigned to a custom region. GPU sandboxes and snapshots on dedicated and custom regions keep their real region ID and remain targetable.
The Earth region ID appears in:
targetof a GPU sandbox on a shared regionregionIdsof a GPU snapshot on a shared regionregionUsageentries of the usage overview: oneearthentry per sandbox class aggregates the shared GPU quota and usage; shared region entries report no GPU quota- Available sandbox classes: one
earthentry per sandbox class withgpuAvailableandallowedGpuTypes; shared region entries reportgpuAvailable: false - Region quota of a GPU sandbox: GPU quota fields aggregated under
earth region.idattribute of the GPU organization metrics- Error messages that reference the region of a GPU workload
Dedicated regions
Section titled “Dedicated regions”Dedicated regions are managed by Daytona and provisioned exclusively for an organization. The infrastructure is not shared with other organizations, and Daytona operates it as a managed service.
Custom regions
Section titled “Custom regions”Custom regions run on compute that your organization provides and manages. Attach your own machines through bring your own compute (BYOC) to control data locality, compliance, and infrastructure configuration, and scale capacity independently within each region.
Custom regions have no limits on concurrent resource usage: capacity is bounded only by the compute you attach.