Sign Up

Sandbox

List sandboxes

GET
/sandbox

Advanced filtering and ordering. Eventually consistent.

Authorization

headerAuthorizationBearer <token>

API Key access

Query Parameters

cursor?string

Pagination cursor from a previous response

limit?integer

Number of results per page

Range1 <= value <= 200
Default100
id?string

Filter by ID prefix (case-insensitive)

name?string

Filter by name prefix (case-insensitive)

labels?string

JSON encoded labels to filter by

includeErroredDeleted?boolean

Include results with errored state and deleted desired state

Defaultfalse
includeWarm?boolean

Include unclaimed warm pool sandboxes (excluded by default)

Defaultfalse
states?array<>

List of states to filter by.

snapshots?array<string>

List of snapshot names to filter by

regionIds?array<string>

List of regions IDs to filter by

sandboxClasses?array<>

List of sandbox classes to filter by

minCpu?number

Minimum CPU

Range1 <= value
maxCpu?number

Maximum CPU

Range1 <= value
minMemoryGiB?number

Minimum memory in GiB

Range1 <= value
maxMemoryGiB?number

Maximum memory in GiB

Range1 <= value
minDiskGiB?number

Minimum disk space in GiB

Range1 <= value
maxDiskGiB?number

Maximum disk space in GiB

Range1 <= value
minGpu?number

Minimum GPU

Range0 <= value
maxGpu?number

Maximum GPU

Range0 <= value
isPublic?boolean

Filter by public status

isRecoverable?boolean

Filter by recoverable status

createdAtAfter?string

Include items created after this timestamp

Formatdate-time
createdAtBefore?string

Include items created before this timestamp

Formatdate-time
lastEventAfter?string

Include items with last event after this timestamp

Formatdate-time
lastEventBefore?string

Include items with last event before this timestamp

Formatdate-time
autoDestroyAtAfter?string

Include items scheduled for auto destroy after this timestamp

Formatdate-time
autoDestroyAtBefore?string

Include items scheduled for auto destroy before this timestamp

Formatdate-time
sort?string

Field to sort by

Value in"name""cpu""memoryGib""diskGib""lastActivityAt""createdAt"
order?string

Direction to sort by

Value in"asc""desc"

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

application/json
  1. response
items*array<>

List of results for the current page

nextCursor*|

Cursor for the next page of results

curl -X GET 'http://localhost:3000/sandbox'
{  "nextCursor": "nextCursor",  "items": [    {      "memory": 4,      "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",      "lastActivityAt": "2024-10-01T12:00:00Z",      "autoStopInterval": 30,      "warmPoolId": "warmPoolId",      "organizationId": "organization123",      "autoPauseInterval": 60,      "createdAt": "2024-10-01T12:00:00Z",      "networkBlockAll": false,      "autoDeleteInterval": 30,      "domainAllowList": "example.com,*.daytona.io",      "public": false,      "errorReason": "The sandbox is not running",      "runnerId": "runner123",      "id": "sandbox123",      "state": "creating",      "sandboxClass": "linux-vm",      "gpuType": "H100",      "updatedAt": "2024-10-01T12:00:00Z",      "desiredState": "destroyed",      "networkAllowList": "192.168.1.0/16,10.0.0.0/24",      "spotEvictedAt": "2026-08-13T12:00:00.000Z",      "recoverable": true,      "cpu": 2,      "gpu": 0,      "daemonVersion": "1.0.0",      "target": "local",      "labels": {        "daytona.io/public": "true"      },      "disk": 10,      "autoDestroyAt": "2026-07-15T12:00:00.000Z",      "queueTimedOutAt": "2026-08-13T12:00:00.000Z",      "spot": false,      "name": "MySandbox",      "backupState": "None",      "user": "daytona",      "autoArchiveInterval": 10080,      "snapshot": "daytonaio/sandbox:latest",      "queueTimeout": 5    },    {      "memory": 4,      "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",      "lastActivityAt": "2024-10-01T12:00:00Z",      "autoStopInterval": 30,      "warmPoolId": "warmPoolId",      "organizationId": "organization123",      "autoPauseInterval": 60,      "createdAt": "2024-10-01T12:00:00Z",      "networkBlockAll": false,      "autoDeleteInterval": 30,      "domainAllowList": "example.com,*.daytona.io",      "public": false,      "errorReason": "The sandbox is not running",      "runnerId": "runner123",      "id": "sandbox123",      "state": "creating",      "sandboxClass": "linux-vm",      "gpuType": "H100",      "updatedAt": "2024-10-01T12:00:00Z",      "desiredState": "destroyed",      "networkAllowList": "192.168.1.0/16,10.0.0.0/24",      "spotEvictedAt": "2026-08-13T12:00:00.000Z",      "recoverable": true,      "cpu": 2,      "gpu": 0,      "daemonVersion": "1.0.0",      "target": "local",      "labels": {        "daytona.io/public": "true"      },      "disk": 10,      "autoDestroyAt": "2026-07-15T12:00:00.000Z",      "queueTimedOutAt": "2026-08-13T12:00:00.000Z",      "spot": false,      "name": "MySandbox",      "backupState": "None",      "user": "daytona",      "autoArchiveInterval": 10080,      "snapshot": "daytonaio/sandbox:latest",      "queueTimeout": 5    }  ]}

Create a new sandbox

POST
/sandbox

Authorization

headerAuthorizationBearer <token>

API Key access

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
name?string

The name of the sandbox. If not provided, the sandbox ID will be used as the name

snapshot?string

The ID or name of the snapshot used for the sandbox

user?string

The user associated with the project

env?

Environment variables for the sandbox

labels?

Labels for the sandbox

public?boolean

Whether the sandbox http preview is publicly accessible

networkBlockAll?boolean

Whether to block all network access for the sandbox

kvm?boolean

Expose KVM (/dev/kvm) inside the sandbox via nested virtualization. linux-vm snapshots only. Requires the sandbox_kvm feature for the organization.

Defaultfalse
networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL to route the sandbox HTTP(S) traffic through (http or https; credentials may be included in the URL). On its own this is convenience routing, not a security boundary: it is applied by injecting the standard HTTP(S)_PROXY environment variables at creation, so a process that clears those variables egresses directly. Combine with domainAllowList to have web-port (80/443) egress transparently redirected through the proxy chain at the network layer, which cannot be bypassed from inside the sandbox.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector (the Daytona-hosted collector or the region-configured endpoint) and will not be available in the Daytona analytics API or dashboard.

target?string

The target (region) where the sandbox will be created

cpu?integer

CPU cores allocated to the sandbox

gpu?integer

GPU units allocated to the sandbox

gpuType?array<>

Preferred GPU type for the sandbox. Accepts a single value or an ordered preference list — the scheduler tries each in order and pins the sandbox to the first that has capacity.

spot?boolean

GPU-only. When true, the sandbox may be instantly terminated without notice to free GPU capacity for an on-demand (non-spot) GPU sandbox. Ignored / rejected when the sandbox requests no GPUs.

Defaultfalse
memory?integer

Memory allocated to the sandbox in GB

disk?integer

Disk space allocated to the sandbox in GB

autoStopInterval?integer

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?integer

Auto-pause interval in minutes (0 means disabled). Only supported for sandbox classes that support pausing. Not allowed for ephemeral sandboxes. At most one of autoStopInterval and autoPauseInterval may be non-zero. For non-ephemeral sandbox classes that support pausing, defaults to 60 minutes (with auto-stop disabled) when neither interval is provided.

autoArchiveInterval?integer

Auto-archive interval in minutes (0 means the maximum interval will be used)

autoDeleteInterval?integer

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

ttlMinutes?integer

Maximum time to live in minutes, counted as wall-clock time since creation regardless of sandbox state (0 means disabled). When it elapses the sandbox is destroyed, even if it is stopped, paused, or archived. Subject to the maximum sandbox lifespan configured for the organization region and sandbox class, in which case it also defaults to that maximum and cannot be disabled.

queueTimeout?integer

Minutes to wait for runner assignment before cancelling sandbox creation. Applies only while the sandbox is unassigned in pending_build or pulling_snapshot. Only honored when default queue timeout is enabled for the organization. Omit to use the organization default; null/omit with no organization default leaves the wait unlimited. Must be a positive integer.

volumes?array<>

Array of volumes to attach to the sandbox

buildInfo?

Build information for the sandbox

linkedSandbox?string

ID or name of an existing sandbox to link the new sandbox to. The new sandbox will be scheduled on the same runner as the linked sandbox so a local network can be established between them. Linked sandboxes must be ephemeral (autoDeleteInterval=0) and cannot themselves be linked to another sandbox. GPU sandboxes cannot participate in links in either direction: a GPU sandbox cannot specify linkedSandbox, and cannot be the link target of another sandbox.

secrets?array<>

Secrets to mount in this sandbox. Each entry maps an env var name to a vault secret name.

Response Body

The sandbox has been successfully created.

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox' \  -H 'Content-Type: application/json' \  -d '{  "memory": 1,  "buildInfo": "",  "autoStopInterval": 30,  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "linkedSandbox": "sandbox123",  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "gpuType": [    "H100"  ],  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "ttlMinutes": 1440,  "env": {    "NODE_ENV": "production"  },  "gpu": 1,  "secrets": [    {      "ANTHROPIC_API_KEY": "anthropic-prod"    },    {      "DB_PASSWORD": "DB_PASSWORD"    }  ],  "labels": {    "daytona.io/public": "true"  },  "target": "us",  "disk": 3,  "spot": false,  "name": "MySandbox",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "ubuntu-4vcpu-8ram-100gb",  "queueTimeout": 5}'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
GET
/sandbox/for-runner

Authorization

headerAuthorizationBearer <token>

API Key access

Query Parameters

states?string

Comma-separated list of sandbox states to filter by

skipReconcilingSandboxes?boolean

Skip sandboxes where state differs from desired state

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

List of sandboxes for the authenticated runner

application/json
  1. response
[index: integer]?
curl -X GET 'http://localhost:3000/sandbox/for-runner'
[  {    "memory": 4,    "linkedSandboxId": "sandbox123",    "buildInfo": "",    "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",    "lastActivityAt": "2024-10-01T12:00:00Z",    "warmPoolId": "warmPoolId",    "autoStopInterval": 30,    "organizationId": "organization123",    "otelEndpointOverride": "https://otel-collector.example.com:4318",    "autoPauseInterval": 60,    "createdAt": "2024-10-01T12:00:00Z",    "networkBlockAll": false,    "autoDeleteInterval": 30,    "domainAllowList": "example.com,*.daytona.io",    "public": false,    "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",    "errorReason": "The sandbox is not running",    "runnerId": "runner123",    "id": "sandbox123",    "state": "creating",    "gpuType": "H100",    "updatedAt": "2024-10-01T12:00:00Z",    "sandboxClass": "linux-vm",    "desiredState": "destroyed",    "kvm": false,    "networkAllowList": "192.168.1.0/16,10.0.0.0/24",    "spotEvictedAt": "2026-08-13T12:00:00.000Z",    "volumes": [      {        "mountPath": "/data",        "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",        "subpath": "users/alice"      },      {        "mountPath": "/data",        "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",        "subpath": "users/alice"      }    ],    "cpu": 2,    "recoverable": true,    "env": {      "NODE_ENV": "production"    },    "gpu": 0,    "daemonVersion": "1.0.0",    "backupCreatedAt": "2024-10-01T12:00:00Z",    "labels": {      "daytona.io/public": "true"    },    "target": "local",    "disk": 10,    "autoDestroyAt": "2026-07-15T12:00:00.000Z",    "queueTimedOutAt": "2026-08-13T12:00:00.000Z",    "networkPolicyError": "persist updated proxy policy binding: operation not permitted",    "spot": false,    "name": "MySandbox",    "backupState": "None",    "user": "daytona",    "autoArchiveInterval": 10080,    "snapshot": "daytonaio/sandbox:latest",    "queueTimeout": 5  }]

Get sandbox details

GET
/sandbox/{sandboxIdOrName}

Sandboxes destroyed by spot preemption remain retrievable for 24 hours so spotEvictedAt can be read. Sandboxes destroyed by queue timeout remain retrievable for 24 hours so queueTimedOutAt can be read.

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Query Parameters

verbose?boolean

Include verbose output

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox details

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X GET 'http://localhost:3000/sandbox/string'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Delete sandbox

DELETE
/sandbox/{sandboxIdOrName}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox has been deleted

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X DELETE 'http://localhost:3000/sandbox/string'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
POST
/sandbox/{sandboxIdOrName}/recover

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Query Parameters

skipStart?boolean

If true, the sandbox is left in STOPPED after recovery instead of being started.

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Recovery initiated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/recover'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Start or resume sandbox

POST
/sandbox/{sandboxIdOrName}/start

Starts a stopped or archived sandbox, or resumes a paused sandbox. The transition taken depends on the current sandbox state.

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox has been started, is being restored from archived state, or is being resumed from paused

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/start'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Stop sandbox

POST
/sandbox/{sandboxIdOrName}/stop

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Query Parameters

force?boolean

Force stop the sandbox using SIGKILL instead of SIGTERM

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox has been stopped

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/stop'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Pause sandbox

POST
/sandbox/{sandboxIdOrName}/pause

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox pause has been initiated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/pause'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Resize sandbox resources

POST
/sandbox/{sandboxIdOrName}/resize

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
cpu?integer

CPU cores to allocate to the sandbox (minimum: 1)

Range1 <= value
memory?integer

Memory in GB to allocate to the sandbox (minimum: 1)

Range1 <= value
disk?integer

Disk space in GB to allocate to the sandbox (can only be increased)

Range1 <= value

Response Body

Sandbox has been resized

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/resize' \  -H 'Content-Type: application/json' \  -d '{  "disk": 20,  "memory": 4,  "cpu": 2}'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Replace sandbox labels

PUT
/sandbox/{sandboxIdOrName}/labels

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
labels*

Key-value pairs of labels

Response Body

Labels have been successfully replaced

application/json
  1. response
labels*

Key-value pairs of labels

curl -X PUT 'http://localhost:3000/sandbox/string/labels' \  -H 'Content-Type: application/json' \  -d '{  "labels": {    "environment": "dev",    "team": "backend"  }}'
{  "labels": {    "environment": "dev",    "team": "backend"  }}

Update sandbox state

PUT
/sandbox/{sandboxId}/state

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
state*string

The new state for the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
errorReason?string

Optional error message when reporting an error state

recoverable?boolean

Whether the sandbox is recoverable

Response Body

Sandbox state has been successfully updated

curl -X PUT 'http://localhost:3000/sandbox/string/state' \  -H 'Content-Type: application/json' \  -d '{  "errorReason": "Failed to pull snapshot image",  "recoverable": true,  "state": "started"}'
Empty

Create sandbox backup

Deprecated
POST
/sandbox/{sandboxIdOrName}/backup

Deprecated: backups are managed automatically. This endpoint is a no-op kept for compatibility.

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox backup request acknowledged (no-op)

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/backup'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
POST
/sandbox/{sandboxIdOrName}/snapshot

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
name*string

Name for the new snapshot

includeMemory?boolean

Include the VM's memory in the snapshot. VM sandboxes only. When true the sandbox must be STARTED; when false (default) VM sandboxes must be STOPPED. Container sandboxes do not support memory snapshots.

Defaultfalse

Response Body

Snapshot creation has been initiated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/snapshot' \  -H 'Content-Type: application/json' \  -d '{  "includeMemory": false,  "name": "my-dev-env-v1"}'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Fork a sandbox

POST
/sandbox/{sandboxIdOrName}/fork

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
name?string

The name for the forked sandbox. If not provided, a unique name will be generated.

Response Body

Fork operation has been initiated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/fork' \  -H 'Content-Type: application/json' \  -d '{  "name": "my-forked-sandbox"}'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
GET
/sandbox/{sandboxIdOrName}/forks

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

Query Parameters

includeDestroyed?boolean

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

application/json
  1. response
[index: integer]?
curl -X GET 'http://localhost:3000/sandbox/string/forks'
[  {    "memory": 4,    "linkedSandboxId": "sandbox123",    "buildInfo": "",    "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",    "lastActivityAt": "2024-10-01T12:00:00Z",    "warmPoolId": "warmPoolId",    "autoStopInterval": 30,    "organizationId": "organization123",    "otelEndpointOverride": "https://otel-collector.example.com:4318",    "autoPauseInterval": 60,    "createdAt": "2024-10-01T12:00:00Z",    "networkBlockAll": false,    "autoDeleteInterval": 30,    "domainAllowList": "example.com,*.daytona.io",    "public": false,    "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",    "errorReason": "The sandbox is not running",    "runnerId": "runner123",    "id": "sandbox123",    "state": "creating",    "gpuType": "H100",    "updatedAt": "2024-10-01T12:00:00Z",    "sandboxClass": "linux-vm",    "desiredState": "destroyed",    "kvm": false,    "networkAllowList": "192.168.1.0/16,10.0.0.0/24",    "spotEvictedAt": "2026-08-13T12:00:00.000Z",    "volumes": [      {        "mountPath": "/data",        "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",        "subpath": "users/alice"      },      {        "mountPath": "/data",        "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",        "subpath": "users/alice"      }    ],    "cpu": 2,    "recoverable": true,    "env": {      "NODE_ENV": "production"    },    "gpu": 0,    "daemonVersion": "1.0.0",    "backupCreatedAt": "2024-10-01T12:00:00Z",    "labels": {      "daytona.io/public": "true"    },    "target": "local",    "disk": 10,    "autoDestroyAt": "2026-07-15T12:00:00.000Z",    "queueTimedOutAt": "2026-08-13T12:00:00.000Z",    "networkPolicyError": "persist updated proxy policy binding: operation not permitted",    "spot": false,    "name": "MySandbox",    "backupState": "None",    "user": "daytona",    "autoArchiveInterval": 10080,    "snapshot": "daytonaio/sandbox:latest",    "queueTimeout": 5  }]

Get sandbox fork parent

GET
/sandbox/{sandboxIdOrName}/parent

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X GET 'http://localhost:3000/sandbox/string/parent'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
GET
/sandbox/{sandboxIdOrName}/ancestors

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

application/json
  1. response
[index: integer]?
curl -X GET 'http://localhost:3000/sandbox/string/ancestors'
[  {    "memory": 4,    "linkedSandboxId": "sandbox123",    "buildInfo": "",    "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",    "lastActivityAt": "2024-10-01T12:00:00Z",    "warmPoolId": "warmPoolId",    "autoStopInterval": 30,    "organizationId": "organization123",    "otelEndpointOverride": "https://otel-collector.example.com:4318",    "autoPauseInterval": 60,    "createdAt": "2024-10-01T12:00:00Z",    "networkBlockAll": false,    "autoDeleteInterval": 30,    "domainAllowList": "example.com,*.daytona.io",    "public": false,    "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",    "errorReason": "The sandbox is not running",    "runnerId": "runner123",    "id": "sandbox123",    "state": "creating",    "gpuType": "H100",    "updatedAt": "2024-10-01T12:00:00Z",    "sandboxClass": "linux-vm",    "desiredState": "destroyed",    "kvm": false,    "networkAllowList": "192.168.1.0/16,10.0.0.0/24",    "spotEvictedAt": "2026-08-13T12:00:00.000Z",    "volumes": [      {        "mountPath": "/data",        "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",        "subpath": "users/alice"      },      {        "mountPath": "/data",        "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",        "subpath": "users/alice"      }    ],    "cpu": 2,    "recoverable": true,    "env": {      "NODE_ENV": "production"    },    "gpu": 0,    "daemonVersion": "1.0.0",    "backupCreatedAt": "2024-10-01T12:00:00Z",    "labels": {      "daytona.io/public": "true"    },    "target": "local",    "disk": 10,    "autoDestroyAt": "2026-07-15T12:00:00.000Z",    "queueTimedOutAt": "2026-08-13T12:00:00.000Z",    "networkPolicyError": "persist updated proxy policy binding: operation not permitted",    "spot": false,    "name": "MySandbox",    "backupState": "None",    "user": "daytona",    "autoArchiveInterval": 10080,    "snapshot": "daytonaio/sandbox:latest",    "queueTimeout": 5  }]

Update public status

POST
/sandbox/{sandboxIdOrName}/public/{isPublic}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

isPublic*boolean

Public status to set

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Public status has been successfully updated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/public/true'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
GET
/sandbox/{sandboxId}/signing-key

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Signing key of the sandbox

response?stringapplication/json
curl -X GET 'http://localhost:3000/sandbox/string/signing-key'
"string"
POST
/sandbox/{sandboxId}/signing-key/rotate

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

New signing key

response?stringapplication/json
curl -X POST 'http://localhost:3000/sandbox/string/signing-key/rotate'
"string"
POST
/sandbox/{sandboxId}/last-activity

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
activityType?string

Optional type of interaction that reset the activity timer.

Response Body

Last activity has been updated

curl -X POST 'http://localhost:3000/sandbox/string/last-activity' \  -H 'Content-Type: application/json' \  -d '{  "activityType": "toolbox"}'
Empty
POST
/sandbox/{sandboxIdOrName}/autostop/{interval}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

interval*number

Auto-stop interval in minutes (0 to disable)

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Auto-stop interval has been set

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/autostop/0'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
POST
/sandbox/{sandboxIdOrName}/autopause/{interval}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

interval*number

Auto-pause interval in minutes (0 to disable)

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Auto-pause interval has been set

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/autopause/0'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Set sandbox TTL

POST
/sandbox/{sandboxIdOrName}/ttl/{ttlMinutes}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

ttlMinutes*number

Maximum time to live in minutes, re-anchored from the current time (0 to disable). When it elapses the sandbox is destroyed, even if it is stopped, paused, or archived

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

TTL has been set

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/ttl/0'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
POST
/sandbox/{sandboxIdOrName}/autoarchive/{interval}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

interval*number

Auto-archive interval in minutes (0 means the maximum interval will be used)

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Auto-archive interval has been set

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/autoarchive/0'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
POST
/sandbox/{sandboxIdOrName}/autodelete/{interval}

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

interval*number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Auto-delete interval has been set

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/autodelete/0'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
POST
/sandbox/{sandboxIdOrName}/network-settings

Changes outbound network policy on the runner for a running sandbox (for example block all traffic, restore access, or set a CIDR allow list).

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
networkBlockAll?boolean

Whether to block all network access for the sandbox

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

Response Body

Network settings have been updated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/network-settings' \  -H 'Content-Type: application/json' \  -d '{  "networkBlockAll": false,  "domainAllowList": "example.com,*.daytona.io",  "networkAllowList": "192.168.1.0/16,10.0.0.0/24"}'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Update sandbox secrets

PUT
/sandbox/{sandboxIdOrName}/secrets

Replaces the set of vault secrets mounted in the sandbox. Attached, detached and rotated secrets take effect for outbound requests within seconds. New env vars become visible to processes spawned after the update; a sandbox created without any secrets must be restarted for newly attached secrets to work.

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Request Body

application/json
  1. body
secrets*array<>

Secrets to mount in this sandbox, replacing the previously mounted set. Each entry maps an env var name to a vault secret name. Pass an empty array to detach all secrets.

Response Body

Sandbox secrets have been updated

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X PUT 'http://localhost:3000/sandbox/string/secrets' \  -H 'Content-Type: application/json' \  -d '{  "secrets": [    {      "ANTHROPIC_API_KEY": "anthropic-prod"    },    {      "DB_PASSWORD": "DB_PASSWORD"    }  ]}'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}

Archive sandbox

POST
/sandbox/{sandboxIdOrName}/archive

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Sandbox has been archived

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/archive'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
GET
/sandbox/{sandboxIdOrName}/ports/{port}/preview-url

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

port*number

Port number to get preview URL for

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Preview URL for the specified port

application/json
  1. response
sandboxId*string

ID of the sandbox

url*string

Preview url

token*string

Access token

curl -X GET 'http://localhost:3000/sandbox/string/ports/0/preview-url'
{  "sandboxId": "123456",  "url": "https://{port}-{sandboxId}.{proxyDomain}",  "token": "ul67qtv-jl6wb9z5o3eii-ljqt9qed6l"}
GET
/sandbox/{sandboxIdOrName}/ports/{port}/signed-preview-url

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

port*integer

Port number to get signed preview URL for

Query Parameters

expiresInSeconds?integer

Expiration time in seconds (default: 60 seconds)

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Signed preview URL for the specified port

application/json
  1. response
sandboxId*string

ID of the sandbox

port*integer

Port number of the signed preview URL

token*string

Token of the signed preview URL

url*string

Signed preview url

curl -X GET 'http://localhost:3000/sandbox/string/ports/0/signed-preview-url'
{  "port": 3000,  "sandboxId": "123456",  "url": "https://{port}-{token}.{proxyDomain}",  "token": "jl6wb9z5o3eii"}
POST
/sandbox/{sandboxIdOrName}/ports/{port}/signed-preview-url/{token}/expire

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

port*integer

Port number to expire signed preview URL for

token*string

Token to expire signed preview URL for

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Signed preview URL has been expired

curl -X POST 'http://localhost:3000/sandbox/string/ports/0/signed-preview-url/string/expire'
Empty

Get build logs

Deprecated
GET
/sandbox/{sandboxIdOrName}/build-logs

This endpoint is deprecated. Use getBuildLogsUrl instead.

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Query Parameters

follow?boolean

Whether to follow the logs stream

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Build logs stream

curl -X GET 'http://localhost:3000/sandbox/string/build-logs'
Empty

Get build logs URL

GET
/sandbox/{sandboxIdOrName}/build-logs-url

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Build logs URL

application/json
  1. response
url*string

URL response

curl -X GET 'http://localhost:3000/sandbox/string/build-logs-url'
{  "url": "url"}
POST
/sandbox/{sandboxIdOrName}/ssh-access

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Query Parameters

expiresInMinutes?number

Expiration time in minutes (default: 60, maximum: 1440)

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

SSH access has been created

application/json
  1. response
id*string

Unique identifier for the SSH access

sandboxId*string

ID of the sandbox this SSH access is for

token*string

SSH access token

expiresAt*string

When the SSH access expires

Formatdate-time
createdAt*string

When the SSH access was created

Formatdate-time
updatedAt*string

When the SSH access was last updated

Formatdate-time
sshCommand*string

SSH command to connect to the sandbox

curl -X POST 'http://localhost:3000/sandbox/string/ssh-access'
{  "createdAt": "2025-01-01T11:00:00Z",  "sshCommand": "ssh -p 2222 token@localhost",  "sandboxId": "123e4567-e89b-12d3-a456-426614174000",  "id": "123e4567-e89b-12d3-a456-426614174000",  "expiresAt": "2025-01-01T12:00:00Z",  "token": "abc123def456ghi789jkl012mno345pqr678stu901vwx234yz",  "updatedAt": "2025-01-01T11:00:00Z"}
DELETE
/sandbox/{sandboxIdOrName}/ssh-access

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxIdOrName*string

ID or name of the sandbox

Query Parameters

token?string

SSH access token to revoke. If not provided, all SSH access for the sandbox will be revoked.

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

SSH access has been revoked

application/json
  1. response
id*string

The ID of the sandbox

organizationId*string

The organization ID of the sandbox

name*string

The name of the sandbox

snapshot?string

The snapshot used for the sandbox

user*string

The user associated with the project

env*

Environment variables for the sandbox

labels*

Labels for the sandbox

public*boolean

Whether the sandbox http preview is public

networkBlockAll*boolean

Whether to block all network access for the sandbox

kvm*boolean

Whether the sandbox exposes KVM (/dev/kvm) to its guest

networkAllowList?string

Comma-separated list of allowed CIDR network addresses for the sandbox

domainAllowList?string

Comma-separated list of allowed domains for the sandbox

outboundProxyUrl?string

Outbound proxy URL the sandbox HTTP(S) traffic is routed through. Applied via the HTTP(S)_PROXY environment variables (convenience routing); network-layer enforcement applies only when the sandbox also has a domainAllowList. Only returned on single-sandbox reads — never on list responses.

otelEndpointOverride?string

OTel collector endpoint override for this sandbox. When set, sandbox OTel data is sent to this endpoint instead of the default collector and is not available in the Daytona analytics API or dashboard. Only returned on single-sandbox reads — never on list responses.

target*string

The target environment for the sandbox

cpu*integer

The CPU quota for the sandbox

gpu*integer

The GPU quota for the sandbox

spot?boolean

Whether this is a spot GPU sandbox. Spot sandboxes may be instantly terminated to free capacity for on-demand GPU sandboxes. Absent on APIs that predate this field; treat as false.

Defaultfalse
spotEvictedAt?string

When this sandbox was destroyed by spot preemption. Set only for spot-evicted sandboxes, which stay retrievable by ID for 24 hours after eviction.

queueTimedOutAt?string

When this sandbox was destroyed because it waited too long for a runner. Set only for queue-timeout sandboxes, which stay retrievable by ID for 24 hours after the timeout.

gpuType?string

The GPU type assigned to the sandbox

Value in"H100""H200""B200""B300""RTX-PRO-6000""RTX-4090""RTX-5090""MI355X"
memory*integer

The memory quota for the sandbox

disk*integer

The disk quota for the sandbox

state?string

The state of the sandbox

Value in"creating""restoring""destroyed""destroying""started""stopped""starting""stopping""error""build_failed""pending_build""building_snapshot""unknown""pulling_snapshot""archived""archiving""resizing""snapshotting""forking""pausing""paused""resuming"
desiredState?string

The desired state of the sandbox

Value in"destroyed""started""stopped""resized""archived""paused"
errorReason?string

The error reason of the sandbox

networkPolicyError?string

Outcome of the runner's most recent network policy change: why the network settings fields (what was requested) are not what the runner enforces. Absent when the latest change was applied; a new request leaves it as it is until its own outcome is known.

recoverable?boolean

Whether the sandbox error is recoverable.

warmPoolId?string

Id of the warm pool this sandbox waits in; set only while it is an unclaimed member.

backupState?stringDeprecated

The state of the backup

Value in"None""Pending""InProgress""Completed""Error"
backupCreatedAt?stringDeprecated

The creation timestamp of the last backup

autoStopInterval?number

Auto-stop interval in minutes (0 means disabled)

autoPauseInterval?number

Auto-pause interval in minutes (0 means disabled)

autoArchiveInterval?number

Auto-archive interval in minutes

autoDeleteInterval?number

Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping)

autoDestroyAt?string

When the sandbox will be automatically destroyed, regardless of its state (only set when a TTL is configured)

queueTimeout?|

Minutes to wait for runner assignment before cancelling sandbox creation. Null means the wait is unlimited.

volumes?array<>

Array of volumes attached to the sandbox

buildInfo?

Build information for the sandbox

createdAt?string

The creation timestamp of the sandbox

updatedAt?string

The last update timestamp of the sandbox

lastActivityAt?string

The last activity timestamp of the sandbox

sandboxClass?string

The class of the sandbox

Value in"linux-vm""container""windows"
daemonVersion?string

The version of the daemon running in the sandbox

runnerId?string

The runner ID of the sandbox

linkedSandboxId?string

ID of the sandbox this sandbox is linked to. When set, the sandbox is co-located on the same runner as the linked sandbox.

toolboxProxyUrl*string

The toolbox proxy URL for the sandbox

curl -X DELETE 'http://localhost:3000/sandbox/string/ssh-access'
{  "memory": 4,  "linkedSandboxId": "sandbox123",  "buildInfo": "",  "toolboxProxyUrl": "https://proxy.app.daytona.io/toolbox",  "lastActivityAt": "2024-10-01T12:00:00Z",  "warmPoolId": "warmPoolId",  "autoStopInterval": 30,  "organizationId": "organization123",  "otelEndpointOverride": "https://otel-collector.example.com:4318",  "autoPauseInterval": 60,  "createdAt": "2024-10-01T12:00:00Z",  "networkBlockAll": false,  "autoDeleteInterval": 30,  "domainAllowList": "example.com,*.daytona.io",  "public": false,  "outboundProxyUrl": "http://user:pass@proxy.example.com:3128",  "errorReason": "The sandbox is not running",  "runnerId": "runner123",  "id": "sandbox123",  "state": "creating",  "gpuType": "H100",  "updatedAt": "2024-10-01T12:00:00Z",  "sandboxClass": "linux-vm",  "desiredState": "destroyed",  "kvm": false,  "networkAllowList": "192.168.1.0/16,10.0.0.0/24",  "spotEvictedAt": "2026-08-13T12:00:00.000Z",  "volumes": [    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    },    {      "mountPath": "/data",      "volumeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",      "subpath": "users/alice"    }  ],  "cpu": 2,  "recoverable": true,  "env": {    "NODE_ENV": "production"  },  "gpu": 0,  "daemonVersion": "1.0.0",  "backupCreatedAt": "2024-10-01T12:00:00Z",  "labels": {    "daytona.io/public": "true"  },  "target": "local",  "disk": 10,  "autoDestroyAt": "2026-07-15T12:00:00.000Z",  "queueTimedOutAt": "2026-08-13T12:00:00.000Z",  "networkPolicyError": "persist updated proxy policy binding: operation not permitted",  "spot": false,  "name": "MySandbox",  "backupState": "None",  "user": "daytona",  "autoArchiveInterval": 10080,  "snapshot": "daytonaio/sandbox:latest",  "queueTimeout": 5}
GET
/sandbox/ssh-access/validate

Authorization

headerAuthorizationBearer <token>

API Key access

Query Parameters

token*string

SSH access token to validate

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

SSH access validation result

application/json
  1. response
valid*boolean

Whether the SSH access token is valid

sandboxId*string

ID of the sandbox this SSH access is for

curl -X GET 'http://localhost:3000/sandbox/ssh-access/validate?token=string'
{  "valid": true,  "sandboxId": "123e4567-e89b-12d3-a456-426614174000"}
GET
/sandbox/{sandboxId}/toolbox-proxy-url

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Toolbox proxy URL for the specified sandbox

application/json
  1. response
url*string

The toolbox proxy URL for the sandbox

curl -X GET 'http://localhost:3000/sandbox/string/toolbox-proxy-url'
{  "url": "https://proxy.app.daytona.io/toolbox"}
GET
/sandbox/{sandboxId}/organization

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Organization

application/json
  1. response
id*string

Organization ID

name*string

Organization name

createdBy*string

User ID of the organization creator

personal*boolean

Personal organization flag

createdAt*string

Creation timestamp

Formatdate-time
updatedAt*string

Last update timestamp

Formatdate-time
suspended*boolean

Suspended flag

suspendedAt*string

Suspended at

Formatdate-time
suspensionReason*string

Suspended reason

suspendedUntil*string

Suspended until

Formatdate-time
suspensionCleanupGracePeriodHours*number

Suspension cleanup grace period hours

maxCpuPerSandbox*number

Max CPU per sandbox

maxMemoryPerSandbox*number

Max memory per sandbox

maxDiskPerSandbox*number

Max disk per sandbox

secretQuota*number

Maximum number of secrets

maxSecretsPerSandbox*number

Maximum number of secrets that can be mounted to a single sandbox

snapshotDeactivationTimeoutMinutes*number

Time in minutes before an unused snapshot is deactivated

Default20160
defaultQueueTimeout*|

Default minutes to wait for runner assignment before cancelling sandbox creation. Applied when sandbox create omits queueTimeout. Null means no default.

sandboxLimitedNetworkEgress*boolean

Sandbox default network block all

previewWarningEnabled*boolean

Whether the proxy shows the preview URL warning page for this organization

ssoEnabled*boolean

Whether this organization may configure SSO identity providers

scimEnabled*boolean

Whether this organization may use SCIM directory sync

defaultRegionId?string

Default region ID

workosOrgId?string

ID of the WorkOS organization mirrored from this organization (absent for personal organizations, which are never mirrored)

directorySyncStatus?string

Connection state of the WorkOS SCIM directory, as last reported by WorkOS (absent when no directory has ever reported in)

Value in"active""inactive""deleted"
directorySyncStatusChangedAt?string

When the directory sync status last changed

Formatdate-time
directorySyncTokenRevokedAt?string

When the directory bearer token was revoked; absent while a valid token exists. A revoked token stops provisioning even if the directory is still active.

Formatdate-time
authenticatedRateLimit*|

Authenticated rate limit per minute

sandboxCreateRateLimit*|

Sandbox create rate limit per minute

sandboxLifecycleRateLimit*|

Sandbox lifecycle rate limit per minute

experimentalConfig*

Experimental configuration

otelConfig*|

OpenTelemetry collection configuration

authenticatedRateLimitTtlSeconds*|

Authenticated rate limit TTL in seconds

sandboxCreateRateLimitTtlSeconds*|

Sandbox create rate limit TTL in seconds

sandboxLifecycleRateLimitTtlSeconds*|

Sandbox lifecycle rate limit TTL in seconds

curl -X GET 'http://localhost:3000/sandbox/string/organization'
{  "secretQuota": 5.637376656633329,  "sandboxCreateRateLimit": 2.027123023002322,  "sandboxLifecycleRateLimitTtlSeconds": 1.0246457001441578,  "createdAt": "2000-01-23T04:56:07.000+00:00",  "sandboxLimitedNetworkEgress": true,  "suspendedUntil": "2000-01-23T04:56:07.000+00:00",  "ssoEnabled": true,  "directorySyncStatusChangedAt": "2000-01-23T04:56:07.000+00:00",  "previewWarningEnabled": true,  "snapshotDeactivationTimeoutMinutes": 7.061401241503109,  "otelConfig": "",  "authenticatedRateLimitTtlSeconds": 7.386281948385884,  "id": "id",  "experimentalConfig": "{}",  "updatedAt": "2000-01-23T04:56:07.000+00:00",  "defaultRegionId": "defaultRegionId",  "sandboxCreateRateLimitTtlSeconds": 1.2315135367772556,  "suspensionReason": "suspensionReason",  "sandboxLifecycleRateLimit": 4.145608029883936,  "suspendedAt": "2000-01-23T04:56:07.000+00:00",  "personal": true,  "suspensionCleanupGracePeriodHours": 0.8008281904610115,  "maxSecretsPerSandbox": 2.3021358869347655,  "directorySyncStatus": "",  "authenticatedRateLimit": 3.616076749251911,  "suspended": true,  "defaultQueueTimeout": 9,  "maxCpuPerSandbox": 6.027456183070403,  "scimEnabled": true,  "maxDiskPerSandbox": 5.962133916683182,  "createdBy": "createdBy",  "workosOrgId": "workosOrgId",  "name": "name",  "maxMemoryPerSandbox": 1.4658129805029452,  "directorySyncTokenRevokedAt": "2000-01-23T04:56:07.000+00:00"}
GET
/sandbox/{sandboxId}/region-quota

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Region quota

application/json
  1. response
organizationId*string
regionId*string
sandboxClass*string
Value in"linux-vm""container""windows"
totalCpuQuota*number
totalMemoryQuota*number
totalDiskQuota*number
totalGpuQuota*number
allowedGpuTypes?array<>
maxCpuPerSandbox*number|null
maxMemoryPerSandbox*number|null
maxDiskPerSandbox*number|null
maxDiskPerNonEphemeralSandbox*number|null
maxCpuPerGpu*|

CPU maximum per requested GPU unit for GPU sandboxes.

maxMemoryPerGpu*|

Memory maximum per requested GPU unit for GPU sandboxes.

maxDiskPerGpu*|

Disk maximum per requested GPU unit for GPU sandboxes.

maxSandboxLifespan*|

Maximum sandbox lifespan in minutes, measured from sandbox creation to its auto-destroy deadline. If null or 0, lifespan is unrestricted. When set, sandboxes created without a TTL default to this lifespan and TTL cannot be disabled.

curl -X GET 'http://localhost:3000/sandbox/string/region-quota'
{  "totalCpuQuota": 0.8008281904610115,  "maxSandboxLifespan": 7.386281948385884,  "allowedGpuTypes": [    "H100",    "H100"  ],  "totalGpuQuota": 5.962133916683182,  "maxMemoryPerGpu": 2.027123023002322,  "organizationId": "organizationId",  "maxCpuPerSandbox": 5.637376656633329,  "maxDiskPerSandbox": 7.061401241503109,  "maxDiskPerNonEphemeralSandbox": 9.301444243932576,  "regionId": "regionId",  "maxCpuPerGpu": 3.616076749251911,  "maxMemoryPerSandbox": 2.3021358869347655,  "maxDiskPerGpu": 4.145608029883936,  "totalMemoryQuota": 6.027456183070403,  "totalDiskQuota": 1.4658129805029452,  "sandboxClass": ""}

Resolve sandbox secrets

GET
/sandbox/{sandboxId}/secrets

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

Sandbox ID

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Decrypted secret key-value pairs for this sandbox

application/json
  1. response
[index: integer]?
curl -X GET 'http://localhost:3000/sandbox/string/secrets'
[  {    "hosts": [      "api.anthropic.com"    ],    "placeholder": "dtn_secret_a7f3b2c1e9d4",    "env": "ANTHROPIC_API_KEY",    "value": "sk-ant-..."  }]

Get sandbox logs

GET
/sandbox/{sandboxId}/telemetry/logs

Retrieve OTEL logs for a sandbox within a time range

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Query Parameters

from*string

Start of time range (ISO 8601)

Formatdate-time
to*string

End of time range (ISO 8601)

Formatdate-time
page?integer

Page number (1-indexed)

Default1
limit?integer

Number of items per page

Default100
severities?array<string>

Filter by severity levels (DEBUG, INFO, WARN, ERROR)

search?string

Search in log body

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Paginated list of log entries

application/json
  1. response
items*array<>

List of log entries

total*integer

Total number of log entries matching the query

page*integer

Current page number

totalPages*integer

Total number of pages

curl -X GET 'http://localhost:3000/sandbox/string/telemetry/logs?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z'
{  "total": 6,  "totalPages": 5,  "page": 1,  "items": [    {      "traceId": "traceId",      "spanId": "spanId",      "severityText": "severityText",      "severityNumber": 0.8008281904610115,      "logAttributes": {        "key": "logAttributes"      },      "body": "body",      "serviceName": "serviceName",      "resourceAttributes": {        "key": "resourceAttributes"      },      "timestamp": "timestamp"    },    {      "traceId": "traceId",      "spanId": "spanId",      "severityText": "severityText",      "severityNumber": 0.8008281904610115,      "logAttributes": {        "key": "logAttributes"      },      "body": "body",      "serviceName": "serviceName",      "resourceAttributes": {        "key": "resourceAttributes"      },      "timestamp": "timestamp"    }  ]}

Get sandbox traces

GET
/sandbox/{sandboxId}/telemetry/traces

Retrieve OTEL traces for a sandbox within a time range

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Query Parameters

from*string

Start of time range (ISO 8601)

Formatdate-time
to*string

End of time range (ISO 8601)

Formatdate-time
page?integer

Page number (1-indexed)

Default1
limit?integer

Number of items per page

Default100

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Paginated list of trace summaries

application/json
  1. response
items*array<>

List of trace summaries

total*integer

Total number of traces matching the query

page*integer

Current page number

totalPages*integer

Total number of pages

curl -X GET 'http://localhost:3000/sandbox/string/telemetry/traces?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z'
{  "total": 1,  "totalPages": 5,  "page": 5,  "items": [    {      "traceId": "traceId",      "spanCount": 6.027456183070403,      "rootSpanName": "rootSpanName",      "startTime": "startTime",      "endTime": "endTime",      "durationMs": 0.8008281904610115,      "statusCode": "statusCode"    },    {      "traceId": "traceId",      "spanCount": 6.027456183070403,      "rootSpanName": "rootSpanName",      "startTime": "startTime",      "endTime": "endTime",      "durationMs": 0.8008281904610115,      "statusCode": "statusCode"    }  ]}

Get trace spans

GET
/sandbox/{sandboxId}/telemetry/traces/{traceId}

Retrieve all spans for a specific trace

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

traceId*string

ID of the trace

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

List of spans in the trace

application/json
  1. response
[index: integer]?
curl -X GET 'http://localhost:3000/sandbox/string/telemetry/traces/string'
[  {    "traceId": "traceId",    "spanId": "spanId",    "spanAttributes": {      "key": "spanAttributes"    },    "parentSpanId": "parentSpanId",    "durationNs": 0.8008281904610115,    "statusMessage": "statusMessage",    "spanName": "spanName",    "timestamp": "timestamp",    "statusCode": "statusCode"  }]

Get sandbox metrics

GET
/sandbox/{sandboxId}/telemetry/metrics

Retrieve OTEL metrics for a sandbox within a time range

Authorization

headerAuthorizationBearer <token>

API Key access

Path Parameters

sandboxId*string

ID of the sandbox

Query Parameters

from*string

Start of time range (ISO 8601)

Formatdate-time
to*string

End of time range (ISO 8601)

Formatdate-time
metricNames?array<string>

Filter by metric names

Header Parameters

X-Daytona-Organization-ID?string

Use with JWT to specify the organization ID

Response Body

Metrics time series data

application/json
  1. response
series*array<>

List of metric series

curl -X GET 'http://localhost:3000/sandbox/string/telemetry/metrics?from=2019-08-24T14%3A15%3A22Z&to=2019-08-24T14%3A15%3A22Z'
{  "series": [    {      "metricName": "metricName",      "dataPoints": [        {          "value": 0.8008281904610115,          "timestamp": "timestamp"        },        {          "value": 0.8008281904610115,          "timestamp": "timestamp"        }      ]    },    {      "metricName": "metricName",      "dataPoints": [        {          "value": 0.8008281904610115,          "timestamp": "timestamp"        },        {          "value": 0.8008281904610115,          "timestamp": "timestamp"        }      ]    }  ]}