openapi: 3.1.0 paths: /preview/{sandboxId}/public: get: operationId: isSandboxPublic parameters: - name: sandboxId required: true in: path description: ID of the sandbox schema: type: string responses: '200': description: Public status of the sandbox content: application/json: schema: type: boolean security: - bearer: [] - oauth2: - openid - profile - email summary: Check if sandbox is public tags: - preview /preview/{sandboxId}/validate/{authToken}: get: operationId: isValidAuthToken parameters: - name: sandboxId required: true in: path description: ID of the sandbox schema: type: string - name: authToken required: true in: path description: Auth token of the sandbox schema: type: string responses: '200': description: Sandbox auth token validation status content: application/json: schema: type: boolean security: - bearer: [] - oauth2: - openid - profile - email summary: Check if sandbox auth token is valid tags: - preview /preview/{sandboxId}/access: get: operationId: hasSandboxAccess parameters: - name: sandboxId required: true in: path schema: type: string responses: '200': description: User access status to the sandbox content: application/json: schema: type: boolean security: - bearer: [] - oauth2: - openid - profile - email summary: Check if user has access to the sandbox tags: - preview /preview/{signedPreviewToken}/{port}/sandbox-id: get: operationId: getSandboxIdFromSignedPreviewUrlToken parameters: - name: signedPreviewToken required: true in: path description: Signed preview URL token schema: type: string - name: port required: true in: path description: Port number to get sandbox ID from signed preview URL token schema: type: number responses: '200': description: Sandbox ID from signed preview URL token content: application/json: schema: type: string security: - bearer: [] - oauth2: - openid - profile - email summary: Get sandbox ID from signed preview URL token tags: - preview info: title: Daytona Preview API description: "Daytona Preview API \u2014 preview operations on the Daytona AI platform." version: '1.0' contact: name: Daytona Platforms Inc. url: https://www.daytona.io email: support@daytona.com license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 tags: [] servers: - url: https://app.daytona.io/api description: Daytona Cloud production API components: securitySchemes: bearer: scheme: bearer bearerFormat: JWT type: http description: API Key access oauth2: type: openIdConnect openIdConnectUrl: http://localhost:3000/.well-known/openid-configuration schemas: Announcement: type: object properties: text: type: string description: The announcement text example: New feature available! learnMoreUrl: type: string description: URL to learn more about the announcement example: https://example.com/learn-more required: - text PosthogConfig: type: object properties: apiKey: type: string description: PostHog API key example: phc_abc123 host: type: string description: PostHog host URL example: https://app.posthog.com required: - apiKey - host OidcConfig: type: object properties: issuer: type: string description: OIDC issuer example: https://auth.example.com clientId: type: string description: OIDC client ID example: daytona-client audience: type: string description: OIDC audience example: daytona-api required: - issuer - clientId - audience RateLimitEntry: type: object properties: ttl: type: number description: Rate limit TTL in seconds example: 60 limit: type: number description: Rate limit max requests example: 100 RateLimitConfig: type: object properties: failedAuth: description: Failed authentication rate limit allOf: - $ref: '#/components/schemas/RateLimitEntry' authenticated: description: Authenticated rate limit allOf: - $ref: '#/components/schemas/RateLimitEntry' sandboxCreate: description: Sandbox create rate limit allOf: - $ref: '#/components/schemas/RateLimitEntry' sandboxLifecycle: description: Sandbox lifecycle rate limit allOf: - $ref: '#/components/schemas/RateLimitEntry' DaytonaConfiguration: type: object properties: version: type: string description: Daytona version example: 0.0.1 posthog: description: PostHog configuration allOf: - $ref: '#/components/schemas/PosthogConfig' oidc: description: OIDC configuration allOf: - $ref: '#/components/schemas/OidcConfig' linkedAccountsEnabled: type: boolean description: Whether linked accounts are enabled example: true announcements: type: object description: System announcements additionalProperties: $ref: '#/components/schemas/Announcement' example: feature-update: text: New feature available! learnMoreUrl: https://example.com pylonAppId: type: string description: Pylon application ID example: pylon-app-123 proxyTemplateUrl: type: string description: Proxy template URL example: https://{{PORT}}-{{sandboxId}}.proxy.example.com proxyToolboxUrl: type: string description: Toolbox template URL example: https://proxy.example.com/toolbox defaultSnapshot: type: string description: Default snapshot for sandboxes example: ubuntu:22.04 dashboardUrl: type: string description: Dashboard URL example: https://dashboard.example.com maxAutoArchiveInterval: type: number description: Maximum auto-archive interval in minutes example: 43200 maintananceMode: type: boolean description: Whether maintenance mode is enabled example: false environment: type: string description: Current environment example: production billingApiUrl: type: string description: Billing API URL example: https://billing.example.com analyticsApiUrl: type: string description: Analytics API URL example: https://analytics.example.com sshGatewayCommand: type: string description: SSH Gateway command example: ssh -p 2222 {{TOKEN}}@localhost sshGatewayPublicKey: type: string description: Base64 encoded SSH Gateway public key example: ssh-gateway-public-key rateLimit: description: Rate limit configuration allOf: - $ref: '#/components/schemas/RateLimitConfig' required: - version - oidc - linkedAccountsEnabled - announcements - proxyTemplateUrl - proxyToolboxUrl - defaultSnapshot - dashboardUrl - maxAutoArchiveInterval - maintananceMode - environment CreateApiKey: type: object properties: name: type: string description: The name of the API key example: My API Key permissions: type: array description: The list of organization resource permissions explicitly assigned to the API key items: type: string enum: - write:registries - delete:registries - write:snapshots - delete:snapshots - write:sandboxes - delete:sandboxes - read:volumes - write:volumes - delete:volumes - write:regions - delete:regions - read:runners - write:runners - delete:runners - read:audit_logs expiresAt: format: date-time type: string description: When the API key expires example: '2025-06-09T12:00:00.000Z' nullable: true required: - name - permissions ApiKeyResponse: type: object properties: name: type: string description: The name of the API key example: My API Key value: type: string description: The API key value example: bb_sk_1234567890abcdef createdAt: format: date-time type: string description: When the API key was created example: '2024-03-14T12:00:00.000Z' permissions: type: array description: The list of organization resource permissions assigned to the API key items: type: string enum: - write:registries - delete:registries - write:snapshots - delete:snapshots - write:sandboxes - delete:sandboxes - read:volumes - write:volumes - delete:volumes - write:regions - delete:regions - read:runners - write:runners - delete:runners - read:audit_logs expiresAt: format: date-time type: string description: When the API key expires example: '2025-06-09T12:00:00.000Z' nullable: true required: - name - value - createdAt - permissions - expiresAt ApiKeyList: type: object properties: name: type: string description: The name of the API key example: My API Key value: type: string description: The masked API key value example: bb_********************def createdAt: format: date-time type: string description: When the API key was created example: '2024-03-14T12:00:00.000Z' permissions: type: array description: The list of organization resource permissions assigned to the API key items: type: string enum: - write:registries - delete:registries - write:snapshots - delete:snapshots - write:sandboxes - delete:sandboxes - read:volumes - write:volumes - delete:volumes - write:regions - delete:regions - read:runners - write:runners - delete:runners - read:audit_logs lastUsedAt: format: date-time type: string description: When the API key was last used example: '2024-03-14T12:00:00.000Z' nullable: true expiresAt: format: date-time type: string description: When the API key expires example: '2024-03-14T12:00:00.000Z' nullable: true userId: type: string description: The user ID of the user who created the API key example: '123' required: - name - value - createdAt - permissions - lastUsedAt - expiresAt - userId OrganizationRole: type: object properties: id: type: string description: Role ID name: type: string description: Role name description: type: string description: Role description permissions: type: array description: Roles assigned to the user items: type: string enum: - write:registries - delete:registries - write:snapshots - delete:snapshots - write:sandboxes - delete:sandboxes - read:volumes - write:volumes - delete:volumes - write:regions - delete:regions - read:runners - write:runners - delete:runners - read:audit_logs isGlobal: type: boolean description: Global role flag createdAt: format: date-time type: string description: Creation timestamp updatedAt: format: date-time type: string description: Last update timestamp required: - id - name - description - permissions - isGlobal - createdAt - updatedAt OrganizationInvitation: type: object properties: id: type: string description: Invitation ID email: type: string description: Email address of the invitee invitedBy: type: string description: Email address of the inviter organizationId: type: string description: Organization ID organizationName: type: string description: Organization name expiresAt: format: date-time type: string description: Expiration date of the invitation status: type: string description: Invitation status enum: - pending - accepted - declined - cancelled role: type: string description: Member role enum: - owner - member assignedRoles: description: Assigned roles type: array items: $ref: '#/components/schemas/OrganizationRole' createdAt: format: date-time type: string description: Creation timestamp updatedAt: format: date-time type: string description: Last update timestamp required: - id - email - invitedBy - organizationId - organizationName - expiresAt - status - role - assignedRoles - createdAt - updatedAt CreateOrganization: type: object properties: name: type: string description: The name of organization example: My Organization defaultRegionId: type: string description: The ID of the default region for the organization example: us required: - name - defaultRegionId OtelConfig: type: object properties: endpoint: type: string description: Endpoint headers: type: object description: Headers example: x-api-key: my-api-key nullable: true additionalProperties: type: string required: - endpoint Organization: type: object properties: id: type: string description: Organization ID name: type: string description: Organization name createdBy: type: string description: User ID of the organization creator personal: type: boolean description: Personal organization flag createdAt: format: date-time type: string description: Creation timestamp updatedAt: format: date-time type: string description: Last update timestamp suspended: type: boolean description: Suspended flag suspendedAt: format: date-time type: string description: Suspended at suspensionReason: type: string description: Suspended reason suspendedUntil: format: date-time type: string description: Suspended until suspensionCleanupGracePeriodHours: type: number description: Suspension cleanup grace period hours maxCpuPerSandbox: type: number description: Max CPU per sandbox maxMemoryPerSandbox: type: number description: Max memory per sandbox maxDiskPerSandbox: type: number description: Max disk per sandbox snapshotDeactivationTimeoutMinutes: type: number description: Time in minutes before an unused snapshot is deactivated default: 20160 sandboxLimitedNetworkEgress: type: boolean description: Sandbox default network block all defaultRegionId: type: string description: Default region ID authenticatedRateLimit: type: number description: Authenticated rate limit per minute nullable: true sandboxCreateRateLimit: type: number description: Sandbox create rate limit per minute nullable: true sandboxLifecycleRateLimit: type: number description: Sandbox lifecycle rate limit per minute nullable: true experimentalConfig: type: object description: Experimental configuration otelConfig: description: OpenTelemetry collection configuration nullable: true allOf: - $ref: '#/components/schemas/OtelConfig' authenticatedRateLimitTtlSeconds: type: number description: Authenticated rate limit TTL in seconds nullable: true sandboxCreateRateLimitTtlSeconds: type: number description: Sandbox create rate limit TTL in seconds nullable: true sandboxLifecycleRateLimitTtlSeconds: type: number description: Sandbox lifecycle rate limit TTL in seconds nullable: true required: - id - name - createdBy - personal - createdAt - updatedAt - suspended - suspendedAt - suspensionReason - suspendedUntil - suspensionCleanupGracePeriodHours - maxCpuPerSandbox - maxMemoryPerSandbox - maxDiskPerSandbox - snapshotDeactivationTimeoutMinutes - sandboxLimitedNetworkEgress - authenticatedRateLimit - sandboxCreateRateLimit - sandboxLifecycleRateLimit - experimentalConfig - otelConfig - authenticatedRateLimitTtlSeconds - sandboxCreateRateLimitTtlSeconds - sandboxLifecycleRateLimitTtlSeconds UpdateOrganizationDefaultRegion: type: object properties: defaultRegionId: type: string description: The ID of the default region for the organization example: us required: - defaultRegionId RegionUsageOverview: type: object properties: regionId: type: string totalCpuQuota: type: number currentCpuUsage: type: number totalMemoryQuota: type: number currentMemoryUsage: type: number totalDiskQuota: type: number currentDiskUsage: type: number maxCpuPerSandbox: type: number nullable: true maxMemoryPerSandbox: type: number nullable: true maxDiskPerSandbox: type: number nullable: true maxDiskPerNonEphemeralSandbox: type: number nullable: true required: - regionId - totalCpuQuota - currentCpuUsage - totalMemoryQuota - currentMemoryUsage - totalDiskQuota - currentDiskUsage - maxCpuPerSandbox - maxMemoryPerSandbox - maxDiskPerSandbox - maxDiskPerNonEphemeralSandbox OrganizationUsageOverview: type: object properties: regionUsage: type: array items: $ref: '#/components/schemas/RegionUsageOverview' totalSnapshotQuota: type: number currentSnapshotUsage: type: number totalVolumeQuota: type: number currentVolumeUsage: type: number required: - regionUsage - totalSnapshotQuota - currentSnapshotUsage - totalVolumeQuota - currentVolumeUsage UpdateOrganizationQuota: type: object properties: maxCpuPerSandbox: type: number nullable: true maxMemoryPerSandbox: type: number nullable: true maxDiskPerSandbox: type: number nullable: true snapshotQuota: type: number nullable: true maxSnapshotSize: type: number nullable: true volumeQuota: type: number nullable: true authenticatedRateLimit: type: number nullable: true sandboxCreateRateLimit: type: number nullable: true sandboxLifecycleRateLimit: type: number nullable: true authenticatedRateLimitTtlSeconds: type: number nullable: true sandboxCreateRateLimitTtlSeconds: type: number nullable: true sandboxLifecycleRateLimitTtlSeconds: type: number nullable: true snapshotDeactivationTimeoutMinutes: type: number nullable: true description: Time in minutes before an unused snapshot is deactivated required: - maxCpuPerSandbox - maxMemoryPerSandbox - maxDiskPerSandbox - snapshotQuota - maxSnapshotSize - volumeQuota - authenticatedRateLimit - sandboxCreateRateLimit - sandboxLifecycleRateLimit - authenticatedRateLimitTtlSeconds - sandboxCreateRateLimitTtlSeconds - sandboxLifecycleRateLimitTtlSeconds - snapshotDeactivationTimeoutMinutes UpdateOrganizationRegionQuota: type: object properties: totalCpuQuota: type: number nullable: true totalMemoryQuota: type: number nullable: true totalDiskQuota: type: number nullable: true maxCpuPerSandbox: type: number nullable: true maxMemoryPerSandbox: type: number nullable: true maxDiskPerSandbox: type: number nullable: true maxDiskPerNonEphemeralSandbox: type: number nullable: true required: - totalCpuQuota - totalMemoryQuota - totalDiskQuota OrganizationSuspension: type: object properties: reason: type: string description: Suspension reason until: format: date-time type: string description: Suspension until suspensionCleanupGracePeriodHours: type: number description: Suspension cleanup grace period hours minimum: 0 required: - reason - until OrganizationSandboxDefaultLimitedNetworkEgress: type: object properties: sandboxDefaultLimitedNetworkEgress: type: boolean description: Sandbox default limited network egress required: - sandboxDefaultLimitedNetworkEgress CreateOrganizationRole: type: object properties: name: type: string description: The name of the role example: Maintainer description: type: string description: The description of the role example: Can manage all resources permissions: type: array description: The list of permissions assigned to the role items: type: string enum: - write:registries - delete:registries - write:snapshots - delete:snapshots - write:sandboxes - delete:sandboxes - read:volumes - write:volumes - delete:volumes - write:regions - delete:regions - read:runners - write:runners - delete:runners - read:audit_logs required: - name - description - permissions UpdateOrganizationRole: type: object properties: name: type: string description: The name of the role example: Maintainer description: type: string description: The description of the role example: Can manage all resources permissions: type: array description: The list of permissions assigned to the role items: type: string enum: - write:registries - delete:registries - write:snapshots - delete:snapshots - write:sandboxes - delete:sandboxes - read:volumes - write:volumes - delete:volumes - write:regions - delete:regions - read:runners - write:runners - delete:runners - read:audit_logs required: - name - description - permissions OrganizationUser: type: object properties: userId: type: string description: User ID organizationId: type: string description: Organization ID name: type: string description: User name email: type: string description: User email role: type: string description: Member role enum: - owner - member assignedRoles: description: Roles assigned to the user type: array items: $ref: '#/components/schemas/OrganizationRole' createdAt: format: date-time type: string description: Creation timestamp updatedAt: format: date-time type: string description: Last update timestamp required: - userId - organizationId - name - email - role - assignedRoles - createdAt - updatedAt UpdateOrganizationMemberAccess: type: object properties: role: type: string description: Organization member role enum: - owner - member default: member assignedRoleIds: description: Array of assigned role IDs default: - 00000000-0000-0000-0000-000000000001 type: array items: type: string required: - role - assignedRoleIds CreateOrganizationInvitation: type: object properties: email: type: string description: Email address of the invitee example: mail@example.com role: type: string description: Organization member role for the invitee enum: - owner - member default: member assignedRoleIds: description: Array of assigned role IDs for the invitee default: - 00000000-0000-0000-0000-000000000001 type: array items: type: string expiresAt: format: date-time type: string description: Expiration date of the invitation example: '2021-12-31T23:59:59Z' required: - email - role - assignedRoleIds UpdateOrganizationInvitation: type: object properties: role: type: string description: Organization member role enum: - owner - member assignedRoleIds: description: Array of role IDs type: array items: type: string expiresAt: format: date-time type: string description: Expiration date of the invitation example: '2021-12-31T23:59:59Z' required: - role - assignedRoleIds RegionType: type: string enum: - shared - dedicated - custom description: The type of the region Region: type: object properties: id: type: string description: Region ID example: '123456789012' name: type: string description: Region name example: us-east-1 organizationId: type: string description: Organization ID example: 123e4567-e89b-12d3-a456-426614174000 nullable: true regionType: description: The type of the region example: shared allOf: - $ref: '#/components/schemas/RegionType' createdAt: type: string description: Creation timestamp example: '2023-01-01T00:00:00.000Z' updatedAt: type: string description: Last update timestamp example: '2023-01-01T00:00:00.000Z' proxyUrl: type: string description: Proxy URL for the region example: https://proxy.example.com nullable: true sshGatewayUrl: type: string description: SSH Gateway URL for the region example: http://ssh-gateway.example.com nullable: true snapshotManagerUrl: type: string description: Snapshot Manager URL for the region example: http://snapshot-manager.example.com nullable: true required: - id - name - regionType - createdAt - updatedAt CreateRegion: type: object properties: name: type: string description: Region name example: us-east-1 proxyUrl: type: string description: Proxy URL for the region example: https://proxy.example.com nullable: true sshGatewayUrl: type: string description: SSH Gateway URL for the region example: ssh://ssh-gateway.example.com nullable: true snapshotManagerUrl: type: string description: Snapshot Manager URL for the region example: https://snapshot-manager.example.com nullable: true required: - name CreateRegionResponse: type: object properties: id: type: string description: ID of the created region example: region_12345 proxyApiKey: type: string description: Proxy API key for the region example: proxy-api-key-xyz nullable: true sshGatewayApiKey: type: string description: SSH Gateway API key for the region example: ssh-gateway-api-key-abc nullable: true snapshotManagerUsername: type: string description: Snapshot Manager username for the region example: daytona nullable: true snapshotManagerPassword: type: string description: Snapshot Manager password for the region nullable: true required: - id RegenerateApiKeyResponse: type: object properties: apiKey: type: string description: The newly generated API key example: api-key-xyz123 required: - apiKey UpdateRegion: type: object properties: proxyUrl: type: string description: Proxy URL for the region example: https://proxy.example.com nullable: true sshGatewayUrl: type: string description: SSH Gateway URL for the region example: ssh://ssh-gateway.example.com nullable: true snapshotManagerUrl: type: string description: Snapshot Manager URL for the region example: https://snapshot-manager.example.com nullable: true SnapshotManagerCredentials: type: object properties: username: type: string description: Snapshot Manager username for the region example: daytona password: type: string description: Snapshot Manager password for the region required: - username - password UserPublicKey: type: object properties: key: type: string description: Public key name: type: string description: Key name required: - key - name User: type: object properties: id: type: string description: User ID name: type: string description: User name email: type: string description: User email publicKeys: description: User public keys type: array items: $ref: '#/components/schemas/UserPublicKey' createdAt: format: date-time type: string description: Creation timestamp required: - id - name - email - publicKeys - createdAt AccountProvider: type: object properties: name: type: string displayName: type: string required: - name - displayName CreateLinkedAccount: type: object properties: provider: type: string description: The authentication provider of the secondary account userId: type: string description: The user ID of the secondary account required: - provider - userId SandboxState: type: string enum: - creating - restoring - destroyed - destroying - started - stopped - starting - stopping - error - build_failed - pending_build - building_snapshot - unknown - pulling_snapshot - archived - archiving - resizing - snapshotting - forking description: The state of the sandbox SandboxDesiredState: type: string enum: - destroyed - started - stopped - resized - archived description: The desired state of the sandbox SandboxVolume: type: object properties: volumeId: type: string description: The ID of the volume example: volume123 mountPath: type: string description: The mount path for the volume example: /data subpath: type: string description: Optional subpath within the volume to mount. When specified, only this S3 prefix will be accessible. When omitted, the entire volume is mounted. example: users/alice required: - volumeId - mountPath BuildInfo: type: object properties: dockerfileContent: type: string description: The Dockerfile content used for the build example: 'FROM node:14 WORKDIR /app COPY . . RUN npm install CMD ["npm", "start"]' contextHashes: description: The context hashes used for the build example: - hash1 - hash2 type: array items: type: string createdAt: format: date-time type: string description: The creation timestamp updatedAt: format: date-time type: string description: The last update timestamp snapshotRef: type: string description: The snapshot reference example: daytonaio/sandbox:latest required: - createdAt - updatedAt - snapshotRef Sandbox: type: object properties: id: type: string description: The ID of the sandbox example: sandbox123 organizationId: type: string description: The organization ID of the sandbox example: organization123 name: type: string description: The name of the sandbox example: MySandbox snapshot: type: string description: The snapshot used for the sandbox example: daytonaio/sandbox:latest user: type: string description: The user associated with the project example: daytona env: type: object description: Environment variables for the sandbox additionalProperties: type: string example: NODE_ENV: production labels: type: object description: Labels for the sandbox additionalProperties: type: string example: daytona.io/public: 'true' public: type: boolean description: Whether the sandbox http preview is public example: false networkBlockAll: type: boolean description: Whether to block all network access for the sandbox example: false networkAllowList: type: string description: Comma-separated list of allowed CIDR network addresses for the sandbox example: 192.168.1.0/16,10.0.0.0/24 target: type: string description: The target environment for the sandbox example: local cpu: type: number description: The CPU quota for the sandbox example: 2 gpu: type: number description: The GPU quota for the sandbox example: 0 memory: type: number description: The memory quota for the sandbox example: 4 disk: type: number description: The disk quota for the sandbox example: 10 state: description: The state of the sandbox example: creating allOf: - $ref: '#/components/schemas/SandboxState' desiredState: description: The desired state of the sandbox example: destroyed allOf: - $ref: '#/components/schemas/SandboxDesiredState' errorReason: type: string description: The error reason of the sandbox example: The sandbox is not running recoverable: type: boolean description: Whether the sandbox error is recoverable. example: true backupState: type: string description: The state of the backup enum: - None - Pending - InProgress - Completed - Error example: None backupCreatedAt: type: string description: The creation timestamp of the last backup example: '2024-10-01T12:00:00Z' autoStopInterval: type: number description: Auto-stop interval in minutes (0 means disabled) example: 30 autoArchiveInterval: type: number description: Auto-archive interval in minutes example: 10080 autoDeleteInterval: type: number description: Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping) example: 30 volumes: description: Array of volumes attached to the sandbox type: array items: $ref: '#/components/schemas/SandboxVolume' buildInfo: description: Build information for the sandbox allOf: - $ref: '#/components/schemas/BuildInfo' createdAt: type: string description: The creation timestamp of the sandbox example: '2024-10-01T12:00:00Z' updatedAt: type: string description: The last update timestamp of the sandbox example: '2024-10-01T12:00:00Z' lastActivityAt: type: string description: The last activity timestamp of the sandbox example: '2024-10-01T12:00:00Z' class: type: string description: The class of the sandbox enum: - small - medium - large example: small deprecated: true daemonVersion: type: string description: The version of the daemon running in the sandbox example: 1.0.0 runnerId: type: string description: The runner ID of the sandbox example: runner123 toolboxProxyUrl: type: string description: The toolbox proxy URL for the sandbox example: https://proxy.app.daytona.io/toolbox required: - id - organizationId - name - user - env - labels - public - networkBlockAll - target - cpu - gpu - memory - disk - toolboxProxyUrl PaginatedSandboxes: type: object properties: items: type: array items: $ref: '#/components/schemas/Sandbox' total: type: number page: type: number totalPages: type: number required: - items - total - page - totalPages CreateBuildInfo: type: object properties: dockerfileContent: type: string description: The Dockerfile content used for the build example: 'FROM node:14 WORKDIR /app COPY . . RUN npm install CMD ["npm", "start"]' contextHashes: description: The context hashes used for the build example: - hash1 - hash2 type: array items: type: string required: - dockerfileContent CreateSandbox: type: object properties: name: type: string description: The name of the sandbox. If not provided, the sandbox ID will be used as the name example: MySandbox snapshot: type: string description: The ID or name of the snapshot used for the sandbox example: ubuntu-4vcpu-8ram-100gb user: type: string description: The user associated with the project example: daytona env: type: object description: Environment variables for the sandbox additionalProperties: type: string example: NODE_ENV: production labels: type: object description: Labels for the sandbox additionalProperties: type: string example: daytona.io/public: 'true' public: type: boolean description: Whether the sandbox http preview is publicly accessible example: false networkBlockAll: type: boolean description: Whether to block all network access for the sandbox example: false networkAllowList: type: string description: Comma-separated list of allowed CIDR network addresses for the sandbox example: 192.168.1.0/16,10.0.0.0/24 class: type: string description: The sandbox class type enum: - small - medium - large example: small target: type: string description: The target (region) where the sandbox will be created example: us cpu: type: integer description: CPU cores allocated to the sandbox example: 2 gpu: type: integer description: GPU units allocated to the sandbox example: 1 memory: type: integer description: Memory allocated to the sandbox in GB example: 1 disk: type: integer description: Disk space allocated to the sandbox in GB example: 3 autoStopInterval: type: integer description: Auto-stop interval in minutes (0 means disabled) example: 30 autoArchiveInterval: type: integer description: Auto-archive interval in minutes (0 means the maximum interval will be used) example: 10080 autoDeleteInterval: type: integer description: Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping) example: 30 volumes: description: Array of volumes to attach to the sandbox type: array items: $ref: '#/components/schemas/SandboxVolume' buildInfo: description: Build information for the sandbox allOf: - $ref: '#/components/schemas/CreateBuildInfo' ResizeSandbox: type: object properties: cpu: type: integer description: 'CPU cores to allocate to the sandbox (minimum: 1)' example: 2 minimum: 1 memory: type: integer description: 'Memory in GB to allocate to the sandbox (minimum: 1)' example: 4 minimum: 1 disk: type: integer description: Disk space in GB to allocate to the sandbox (can only be increased) example: 20 minimum: 1 SandboxLabels: type: object properties: labels: type: object description: Key-value pairs of labels example: environment: dev team: backend additionalProperties: type: string required: - labels UpdateSandboxStateDto: type: object properties: state: type: string description: The new state for the sandbox enum: - creating - restoring - destroyed - destroying - started - stopped - starting - stopping - error - build_failed - pending_build - building_snapshot - unknown - pulling_snapshot - archived - archiving - resizing - snapshotting - forking example: started errorReason: type: string description: Optional error message when reporting an error state example: Failed to pull snapshot image recoverable: type: boolean description: Whether the sandbox is recoverable example: true required: - state CreateSandboxSnapshot: type: object properties: name: type: string description: Name for the new snapshot example: my-dev-env-v1 required: - name ForkSandbox: type: object properties: name: type: string description: The name for the forked sandbox. If not provided, a unique name will be generated. example: my-forked-sandbox UpdateSandboxNetworkSettings: type: object properties: networkBlockAll: type: boolean description: Whether to block all network access for the sandbox example: false networkAllowList: type: string description: Comma-separated list of allowed CIDR network addresses for the sandbox example: 192.168.1.0/16,10.0.0.0/24 PortPreviewUrl: type: object properties: sandboxId: type: string description: ID of the sandbox example: '123456' url: type: string description: Preview url example: https://{port}-{sandboxId}.{proxyDomain} token: type: string description: Access token example: ul67qtv-jl6wb9z5o3eii-ljqt9qed6l required: - sandboxId - url - token SignedPortPreviewUrl: type: object properties: sandboxId: type: string description: ID of the sandbox example: '123456' port: type: integer description: Port number of the signed preview URL example: 3000 token: type: string description: Token of the signed preview URL example: jl6wb9z5o3eii url: type: string description: Signed preview url example: https://{port}-{token}.{proxyDomain} required: - sandboxId - port - token - url Url: type: object properties: url: type: string description: URL response required: - url SshAccessDto: type: object properties: id: type: string description: Unique identifier for the SSH access example: 123e4567-e89b-12d3-a456-426614174000 sandboxId: type: string description: ID of the sandbox this SSH access is for example: 123e4567-e89b-12d3-a456-426614174000 token: type: string description: SSH access token example: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz expiresAt: format: date-time type: string description: When the SSH access expires example: '2025-01-01T12:00:00.000Z' createdAt: format: date-time type: string description: When the SSH access was created example: '2025-01-01T11:00:00.000Z' updatedAt: format: date-time type: string description: When the SSH access was last updated example: '2025-01-01T11:00:00.000Z' sshCommand: type: string description: SSH command to connect to the sandbox example: ssh -p 2222 token@localhost required: - id - sandboxId - token - expiresAt - createdAt - updatedAt - sshCommand SshAccessValidationDto: type: object properties: valid: type: boolean description: Whether the SSH access token is valid example: true sandboxId: type: string description: ID of the sandbox this SSH access is for example: 123e4567-e89b-12d3-a456-426614174000 required: - valid - sandboxId ToolboxProxyUrl: type: object properties: url: type: string description: The toolbox proxy URL for the sandbox example: https://proxy.app.daytona.io/toolbox required: - url RegionQuota: type: object properties: organizationId: type: string regionId: type: string totalCpuQuota: type: number totalMemoryQuota: type: number totalDiskQuota: type: number maxCpuPerSandbox: type: number nullable: true maxMemoryPerSandbox: type: number nullable: true maxDiskPerSandbox: type: number nullable: true maxDiskPerNonEphemeralSandbox: type: number nullable: true required: - organizationId - regionId - totalCpuQuota - totalMemoryQuota - totalDiskQuota - maxCpuPerSandbox - maxMemoryPerSandbox - maxDiskPerSandbox - maxDiskPerNonEphemeralSandbox CreateRunner: type: object properties: regionId: type: string name: type: string tags: description: Tags to associate with the runner example: - gpu - us-east type: array items: type: string required: - regionId - name CreateRunnerResponse: type: object properties: id: type: string description: The ID of the runner example: runner123 apiKey: type: string description: The API key for the runner example: dtn_1234567890 required: - id - apiKey SandboxClass: type: string enum: - small - medium - large description: The class of the runner RunnerState: type: string enum: - initializing - ready - disabled - decommissioned - unresponsive description: The state of the runner RunnerClass: type: string enum: - container - vm description: The class of the runner RunnerFull: type: object properties: id: type: string description: The ID of the runner example: runner123 domain: type: string description: The domain of the runner example: runner1.example.com apiUrl: type: string description: The API URL of the runner example: https://api.runner1.example.com proxyUrl: type: string description: The proxy URL of the runner example: https://proxy.runner1.example.com cpu: type: number description: The CPU capacity of the runner example: 8 memory: type: number description: The memory capacity of the runner in GiB example: 16 disk: type: number description: The disk capacity of the runner in GiB example: 100 gpu: type: number description: The GPU capacity of the runner example: 1 gpuType: type: string description: The type of GPU class: description: The class of the runner example: small allOf: - $ref: '#/components/schemas/SandboxClass' currentCpuUsagePercentage: type: number description: Current CPU usage percentage example: 45.6 currentMemoryUsagePercentage: type: number description: Current RAM usage percentage example: 68.2 currentDiskUsagePercentage: type: number description: Current disk usage percentage example: 33.8 currentAllocatedCpu: type: number description: Current allocated CPU example: 4000 currentAllocatedMemoryGiB: type: number description: Current allocated memory in GiB example: 8000 currentAllocatedDiskGiB: type: number description: Current allocated disk in GiB example: 50000 currentSnapshotCount: type: number description: Current snapshot count example: 12 currentStartedSandboxes: type: number description: Current number of started sandboxes example: 5 availabilityScore: type: number description: Runner availability score example: 85 region: type: string description: The region of the runner example: us name: type: string description: The name of the runner example: runner1 state: description: The state of the runner example: initializing allOf: - $ref: '#/components/schemas/RunnerState' lastChecked: type: string description: The last time the runner was checked example: '2024-10-01T12:00:00Z' unschedulable: type: boolean description: Whether the runner is unschedulable example: false tags: description: Tags associated with the runner example: - gpu - us-east type: array items: type: string createdAt: type: string description: The creation timestamp of the runner example: '2023-10-01T12:00:00Z' updatedAt: type: string description: The last update timestamp of the runner example: '2023-10-01T12:00:00Z' version: type: string description: The version of the runner (deprecated in favor of apiVersion) example: '0' deprecated: true apiVersion: type: string description: The api version of the runner example: '0' deprecated: true runnerClass: description: The class of the runner example: container allOf: - $ref: '#/components/schemas/RunnerClass' appVersion: type: string description: The app version of the runner example: v0.0.0-dev deprecated: true apiKey: type: string description: The API key for the runner example: dtn_1234567890 regionType: description: The region type of the runner example: shared allOf: - $ref: '#/components/schemas/RegionType' required: - id - cpu - memory - disk - class - region - name - state - unschedulable - tags - createdAt - updatedAt - version - apiVersion - runnerClass - apiKey RunnerSnapshotDto: type: object properties: runnerSnapshotId: type: string description: Runner snapshot ID example: 123e4567-e89b-12d3-a456-426614174000 runnerId: type: string description: Runner ID example: 123e4567-e89b-12d3-a456-426614174000 runnerDomain: type: string description: Runner domain example: runner.example.com required: - runnerSnapshotId - runnerId Runner: type: object properties: id: type: string description: The ID of the runner example: runner123 domain: type: string description: The domain of the runner example: runner1.example.com apiUrl: type: string description: The API URL of the runner example: https://api.runner1.example.com proxyUrl: type: string description: The proxy URL of the runner example: https://proxy.runner1.example.com cpu: type: number description: The CPU capacity of the runner example: 8 memory: type: number description: The memory capacity of the runner in GiB example: 16 disk: type: number description: The disk capacity of the runner in GiB example: 100 gpu: type: number description: The GPU capacity of the runner example: 1 gpuType: type: string description: The type of GPU class: description: The class of the runner example: small allOf: - $ref: '#/components/schemas/SandboxClass' currentCpuUsagePercentage: type: number description: Current CPU usage percentage example: 45.6 currentMemoryUsagePercentage: type: number description: Current RAM usage percentage example: 68.2 currentDiskUsagePercentage: type: number description: Current disk usage percentage example: 33.8 currentAllocatedCpu: type: number description: Current allocated CPU example: 4000 currentAllocatedMemoryGiB: type: number description: Current allocated memory in GiB example: 8000 currentAllocatedDiskGiB: type: number description: Current allocated disk in GiB example: 50000 currentSnapshotCount: type: number description: Current snapshot count example: 12 currentStartedSandboxes: type: number description: Current number of started sandboxes example: 5 availabilityScore: type: number description: Runner availability score example: 85 region: type: string description: The region of the runner example: us name: type: string description: The name of the runner example: runner1 state: description: The state of the runner example: initializing allOf: - $ref: '#/components/schemas/RunnerState' lastChecked: type: string description: The last time the runner was checked example: '2024-10-01T12:00:00Z' unschedulable: type: boolean description: Whether the runner is unschedulable example: false tags: description: Tags associated with the runner example: - gpu - us-east type: array items: type: string createdAt: type: string description: The creation timestamp of the runner example: '2023-10-01T12:00:00Z' updatedAt: type: string description: The last update timestamp of the runner example: '2023-10-01T12:00:00Z' version: type: string description: The version of the runner (deprecated in favor of apiVersion) example: '0' deprecated: true apiVersion: type: string description: The api version of the runner example: '0' deprecated: true runnerClass: description: The class of the runner example: container allOf: - $ref: '#/components/schemas/RunnerClass' appVersion: type: string description: The app version of the runner example: v0.0.0-dev deprecated: true required: - id - cpu - memory - disk - class - region - name - state - unschedulable - tags - createdAt - updatedAt - version - apiVersion - runnerClass RunnerHealthMetrics: type: object properties: currentCpuLoadAverage: type: number description: Current CPU load average example: 0.98 currentCpuUsagePercentage: type: number description: Current CPU usage percentage example: 45.5 currentMemoryUsagePercentage: type: number description: Current memory usage percentage example: 60.2 currentDiskUsagePercentage: type: number description: Current disk usage percentage example: 35.8 currentAllocatedCpu: type: number description: Currently allocated CPU cores example: 8 currentAllocatedMemoryGiB: type: number description: Currently allocated memory in GiB example: 16 currentAllocatedDiskGiB: type: number description: Currently allocated disk in GiB example: 100 currentSnapshotCount: type: number description: Number of snapshots currently stored example: 5 currentStartedSandboxes: type: number description: Number of started sandboxes example: 10 cpu: type: number description: Total CPU cores on the runner example: 8 memoryGiB: type: number description: Total RAM in GiB on the runner example: 16 diskGiB: type: number description: Total disk space in GiB on the runner example: 100 required: - currentCpuLoadAverage - currentCpuUsagePercentage - currentMemoryUsagePercentage - currentDiskUsagePercentage - currentAllocatedCpu - currentAllocatedMemoryGiB - currentAllocatedDiskGiB - currentSnapshotCount - currentStartedSandboxes - cpu - memoryGiB - diskGiB RunnerServiceHealth: type: object properties: serviceName: type: string description: Name of the service being checked example: runner healthy: type: boolean description: Whether the service is healthy example: false errorReason: type: string description: Error reason if the service is unhealthy example: Cannot connect to the runner required: - serviceName - healthy RunnerHealthcheck: type: object properties: metrics: description: Runner metrics allOf: - $ref: '#/components/schemas/RunnerHealthMetrics' serviceHealth: description: Health status of individual services on the runner type: array items: $ref: '#/components/schemas/RunnerServiceHealth' domain: type: string description: Runner domain example: runner-123.daytona.example.com proxyUrl: type: string description: Runner proxy URL example: http://proxy.daytona.example.com:8080 apiUrl: type: string description: Runner API URL example: http://api.daytona.example.com:8080 appVersion: type: string description: Runner app version example: v0.0.0-dev required: - appVersion ProjectDirResponse: type: object properties: dir: type: string UserHomeDirResponse: type: object properties: dir: type: string WorkDirResponse: type: object properties: dir: type: string FileInfo: type: object properties: name: type: string isDir: type: boolean size: type: number modTime: type: string mode: type: string permissions: type: string owner: type: string group: type: string required: - name - isDir - size - modTime - mode - permissions - owner - group DownloadFiles: type: object properties: paths: description: List of remote file paths to download type: array items: type: string required: - paths Match: type: object properties: file: type: string line: type: number content: type: string required: - file - line - content ReplaceRequest: type: object properties: files: type: array items: type: string pattern: type: string newValue: type: string required: - files - pattern - newValue ReplaceResult: type: object properties: file: type: string success: type: boolean error: type: string SearchFilesResponse: type: object properties: files: type: array items: type: string required: - files UploadFile: type: object properties: file: type: string format: binary path: type: string required: - file - path GitAddRequest: type: object properties: path: type: string files: description: files to add (use . for all files) type: array items: type: string required: - path - files ListBranchResponse: type: object properties: branches: type: array items: type: string required: - branches GitBranchRequest: type: object properties: path: type: string name: type: string required: - path - name GitDeleteBranchRequest: type: object properties: path: type: string name: type: string required: - path - name GitCloneRequest: type: object properties: url: type: string path: type: string username: type: string password: type: string branch: type: string commit_id: type: string required: - url - path GitCommitRequest: type: object properties: path: type: string message: type: string author: type: string email: type: string allow_empty: type: boolean description: Allow creating an empty commit when no changes are staged default: false required: - path - message - author - email GitCommitResponse: type: object properties: hash: type: string required: - hash GitCommitInfo: type: object properties: hash: type: string message: type: string author: type: string email: type: string timestamp: type: string required: - hash - message - author - email - timestamp GitRepoRequest: type: object properties: path: type: string username: type: string password: type: string required: - path GitCheckoutRequest: type: object properties: path: type: string branch: type: string required: - path - branch FileStatus: type: object properties: name: type: string staging: type: string worktree: type: string extra: type: string required: - name - staging - worktree - extra GitStatus: type: object properties: currentBranch: type: string fileStatus: type: array items: $ref: '#/components/schemas/FileStatus' ahead: type: number behind: type: number branchPublished: type: boolean required: - currentBranch - fileStatus ExecuteRequest: type: object properties: command: type: string cwd: type: string description: Current working directory timeout: type: number description: Timeout in seconds, defaults to 10 seconds required: - command ExecuteResponse: type: object properties: exitCode: type: number description: Exit code example: 0 result: type: string description: Command output example: Command output here required: - exitCode - result Command: type: object properties: id: type: string description: The ID of the command example: cmd-123 command: type: string description: The command that was executed example: ls -la exitCode: type: number description: The exit code of the command example: 0 required: - id - command Session: type: object properties: sessionId: type: string description: The ID of the session example: session-123 commands: description: The list of commands executed in this session nullable: true type: array items: $ref: '#/components/schemas/Command' required: - sessionId - commands CreateSessionRequest: type: object properties: sessionId: type: string description: The ID of the session example: session-123 required: - sessionId SessionExecuteRequest: type: object properties: command: type: string description: The command to execute example: ls -la runAsync: type: boolean description: Whether to execute the command asynchronously example: false async: type: boolean description: 'Deprecated: Use runAsync instead. Whether to execute the command asynchronously' example: false deprecated: true required: - command SessionExecuteResponse: type: object properties: cmdId: type: string description: The ID of the executed command example: cmd-123 output: type: string description: The output of the executed command marked with stdout and stderr prefixes example: 'total 20 drwxr-xr-x 4 user group 128 Mar 15 10:30 .' exitCode: type: number description: The exit code of the executed command example: 0 PtySessionInfo: type: object properties: id: type: string description: The unique identifier for the PTY session example: pty-session-12345 cwd: type: string description: Starting directory for the PTY session, defaults to the sandbox's working directory example: /home/user envs: type: object description: Environment variables for the PTY session example: TERM: xterm-256color PS1: '\u@daytona:\w$ ' cols: type: number description: Number of terminal columns example: 80 rows: type: number description: Number of terminal rows example: 24 createdAt: type: string description: When the PTY session was created example: '2024-01-15T10:30:45Z' active: type: boolean description: Whether the PTY session is currently active example: true lazyStart: type: boolean description: Whether the PTY session uses lazy start (only start when first client connects) example: false default: false required: - id - cwd - envs - cols - rows - createdAt - active - lazyStart PtyListResponse: type: object properties: sessions: description: List of active PTY sessions type: array items: $ref: '#/components/schemas/PtySessionInfo' required: - sessions PtyCreateRequest: type: object properties: id: type: string description: The unique identifier for the PTY session example: pty-session-12345 cwd: type: string description: Starting directory for the PTY session, defaults to the sandbox's working directory example: /home/user envs: type: object description: Environment variables for the PTY session example: TERM: xterm-256color PS1: '\u@daytona:\w$ ' cols: type: number description: Number of terminal columns example: 80 rows: type: number description: Number of terminal rows example: 24 lazyStart: type: boolean description: Whether to start the PTY session lazily (only start when first client connects) example: false default: false required: - id PtyCreateResponse: type: object properties: sessionId: type: string description: The unique identifier for the created PTY session example: pty-session-12345 required: - sessionId PtyResizeRequest: type: object properties: cols: type: number description: Number of terminal columns example: 80 rows: type: number description: Number of terminal rows example: 24 required: - cols - rows Position: type: object properties: line: type: number character: type: number required: - line - character CompletionContext: type: object properties: triggerKind: type: number triggerCharacter: type: string required: - triggerKind LspCompletionParams: type: object properties: languageId: type: string description: Language identifier pathToProject: type: string description: Path to the project uri: type: string description: Document URI position: $ref: '#/components/schemas/Position' context: $ref: '#/components/schemas/CompletionContext' required: - languageId - pathToProject - uri - position CompletionItem: type: object properties: label: type: string kind: type: number detail: type: string documentation: type: object sortText: type: string filterText: type: string insertText: type: string required: - label CompletionList: type: object properties: isIncomplete: type: boolean items: type: array items: $ref: '#/components/schemas/CompletionItem' required: - isIncomplete - items LspDocumentRequest: type: object properties: languageId: type: string description: Language identifier pathToProject: type: string description: Path to the project uri: type: string description: Document URI required: - languageId - pathToProject - uri Range: type: object properties: start: $ref: '#/components/schemas/Position' end: $ref: '#/components/schemas/Position' required: - start - end LspLocation: type: object properties: range: $ref: '#/components/schemas/Range' uri: type: string required: - range - uri LspSymbol: type: object properties: kind: type: number location: $ref: '#/components/schemas/LspLocation' name: type: string required: - kind - location - name LspServerRequest: type: object properties: languageId: type: string description: Language identifier pathToProject: type: string description: Path to the project required: - languageId - pathToProject ComputerUseStartResponse: type: object properties: message: type: string description: A message indicating the result of starting computer use processes example: Computer use processes started successfully status: type: object description: Status information about all VNC desktop processes after starting example: xvfb: running: true priority: 100 autoRestart: true pid: 12345 xfce4: running: true priority: 200 autoRestart: true pid: 12346 x11vnc: running: true priority: 300 autoRestart: true pid: 12347 novnc: running: true priority: 400 autoRestart: true pid: 12348 required: - message - status ComputerUseStopResponse: type: object properties: message: type: string description: A message indicating the result of stopping computer use processes example: Computer use processes stopped successfully status: type: object description: Status information about all VNC desktop processes after stopping example: xvfb: running: false priority: 100 autoRestart: true xfce4: running: false priority: 200 autoRestart: true x11vnc: running: false priority: 300 autoRestart: true novnc: running: false priority: 400 autoRestart: true required: - message - status ComputerUseStatusResponse: type: object properties: status: type: string description: Status of computer use services (active, partial, inactive, error) example: active enum: - active - partial - inactive - error required: - status ProcessStatusResponse: type: object properties: processName: type: string description: The name of the VNC process being checked example: xfce4 running: type: boolean description: Whether the specified VNC process is currently running example: true required: - processName - running ProcessRestartResponse: type: object properties: message: type: string description: A message indicating the result of restarting the process example: Process xfce4 restarted successfully processName: type: string description: The name of the VNC process that was restarted example: xfce4 required: - message - processName ProcessLogsResponse: type: object properties: processName: type: string description: The name of the VNC process whose logs were retrieved example: novnc logs: type: string description: The log output from the specified VNC process example: 2024-01-15 10:30:45 [INFO] NoVNC server started on port 6080 required: - processName - logs ProcessErrorsResponse: type: object properties: processName: type: string description: The name of the VNC process whose error logs were retrieved example: x11vnc errors: type: string description: The error log output from the specified VNC process example: 2024-01-15 10:30:45 [ERROR] Failed to bind to port 5901 required: - processName - errors MousePosition: type: object properties: x: type: number description: The X coordinate of the mouse cursor position example: 100 y: type: number description: The Y coordinate of the mouse cursor position example: 200 required: - x - y MouseMoveRequest: type: object properties: x: type: number description: The target X coordinate to move the mouse cursor to example: 150 y: type: number description: The target Y coordinate to move the mouse cursor to example: 250 required: - x - y MouseMoveResponse: type: object properties: x: type: number description: The actual X coordinate where the mouse cursor ended up example: 150 y: type: number description: The actual Y coordinate where the mouse cursor ended up example: 250 required: - x - y MouseClickRequest: type: object properties: x: type: number description: The X coordinate where to perform the mouse click example: 100 y: type: number description: The Y coordinate where to perform the mouse click example: 200 button: type: string description: The mouse button to click (left, right, middle). Defaults to left example: left double: type: boolean description: Whether to perform a double-click instead of a single click example: false required: - x - y MouseClickResponse: type: object properties: x: type: number description: The actual X coordinate where the click occurred example: 100 y: type: number description: The actual Y coordinate where the click occurred example: 200 required: - x - y MouseDragRequest: type: object properties: startX: type: number description: The starting X coordinate for the drag operation example: 100 startY: type: number description: The starting Y coordinate for the drag operation example: 200 endX: type: number description: The ending X coordinate for the drag operation example: 300 endY: type: number description: The ending Y coordinate for the drag operation example: 400 button: type: string description: The mouse button to use for dragging (left, right, middle). Defaults to left example: left required: - startX - startY - endX - endY MouseDragResponse: type: object properties: x: type: number description: The actual X coordinate where the drag ended example: 300 y: type: number description: The actual Y coordinate where the drag ended example: 400 required: - x - y MouseScrollRequest: type: object properties: x: type: number description: The X coordinate where to perform the scroll operation example: 100 y: type: number description: The Y coordinate where to perform the scroll operation example: 200 direction: type: string description: The scroll direction (up, down) example: down amount: type: number description: The number of scroll units to scroll. Defaults to 1 example: 3 required: - x - y - direction MouseScrollResponse: type: object properties: success: type: boolean description: Whether the mouse scroll operation was successful example: true required: - success KeyboardTypeRequest: type: object properties: text: type: string description: The text to type using the keyboard example: Hello, World! delay: type: number description: Delay in milliseconds between keystrokes. Defaults to 0 example: 100 required: - text KeyboardPressRequest: type: object properties: key: type: string description: The key to press (e.g., a, b, c, enter, space, etc.) example: enter modifiers: description: Array of modifier keys to press along with the main key (ctrl, alt, shift, cmd) example: - ctrl - shift type: array items: type: string required: - key KeyboardHotkeyRequest: type: object properties: keys: type: string description: The hotkey combination to press (e.g., "ctrl+c", "cmd+v", "alt+tab") example: ctrl+c required: - keys ScreenshotResponse: type: object properties: screenshot: type: string description: Base64 encoded screenshot image data example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== cursorPosition: type: object description: The current cursor position when the screenshot was taken example: x: 500 y: 300 sizeBytes: type: number description: The size of the screenshot data in bytes example: 24576 required: - screenshot RegionScreenshotResponse: type: object properties: screenshot: type: string description: Base64 encoded screenshot image data of the specified region example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== cursorPosition: type: object description: The current cursor position when the region screenshot was taken example: x: 500 y: 300 sizeBytes: type: number description: The size of the screenshot data in bytes example: 24576 required: - screenshot CompressedScreenshotResponse: type: object properties: screenshot: type: string description: Base64 encoded compressed screenshot image data example: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg== cursorPosition: type: object description: The current cursor position when the compressed screenshot was taken example: x: 250 y: 150 sizeBytes: type: number description: The size of the compressed screenshot data in bytes example: 12288 required: - screenshot DisplayInfoResponse: type: object properties: displays: description: Array of display information for all connected displays example: - id: 0 x: 0 y: 0 width: 1920 height: 1080 is_active: true type: array items: type: object required: - displays WindowsResponse: type: object properties: windows: description: Array of window information for all visible windows example: - id: 12345 title: Terminal type: array items: type: object count: type: number description: The total number of windows found example: 5 required: - windows - count CreateSnapshot: type: object properties: name: type: string description: The name of the snapshot example: ubuntu-4vcpu-8ram-100gb imageName: type: string description: The image name of the snapshot example: ubuntu:22.04 entrypoint: description: The entrypoint command for the snapshot example: sleep infinity type: array items: type: string cpu: type: integer description: CPU cores allocated to the resulting sandbox example: 1 gpu: type: integer description: GPU units allocated to the resulting sandbox example: 0 memory: type: integer description: Memory allocated to the resulting sandbox in GB example: 1 disk: type: integer description: Disk space allocated to the sandbox in GB example: 3 buildInfo: description: Build information for the snapshot allOf: - $ref: '#/components/schemas/CreateBuildInfo' regionId: type: string description: ID of the region where the snapshot will be available. Defaults to organization default region if not specified. required: - name SnapshotState: type: string enum: - building - pending - pulling - active - inactive - error - build_failed - removing SnapshotDto: type: object properties: id: type: string organizationId: type: string general: type: boolean name: type: string imageName: type: string state: allOf: - $ref: '#/components/schemas/SnapshotState' size: type: number nullable: true entrypoint: nullable: true type: array items: type: string cpu: type: number gpu: type: number mem: type: number disk: type: number errorReason: type: string nullable: true createdAt: format: date-time type: string updatedAt: format: date-time type: string lastUsedAt: format: date-time type: string nullable: true buildInfo: description: Build information for the snapshot allOf: - $ref: '#/components/schemas/BuildInfo' regionIds: description: IDs of regions where the snapshot is available type: array items: type: string initialRunnerId: type: string description: The initial runner ID of the snapshot example: runner123 ref: type: string description: The snapshot reference example: daytonaio/sandbox:latest required: - id - general - name - state - size - entrypoint - cpu - gpu - mem - disk - errorReason - createdAt - updatedAt - lastUsedAt PaginatedSnapshots: type: object properties: items: type: array items: $ref: '#/components/schemas/SnapshotDto' total: type: number page: type: number totalPages: type: number required: - items - total - page - totalPages SandboxInfo: type: object properties: created: type: string description: The creation timestamp of the project example: '2023-10-01T12:00:00Z' name: type: string description: 'Deprecated: The name of the sandbox' example: MySandbox deprecated: true default: '' providerMetadata: type: string description: Additional metadata provided by the provider example: '{"key": "value"}' required: - created - name Workspace: type: object properties: id: type: string description: The ID of the sandbox example: sandbox123 organizationId: type: string description: The organization ID of the sandbox example: organization123 name: type: string description: The name of the sandbox example: MySandbox snapshot: type: string description: The snapshot used for the sandbox example: daytonaio/sandbox:latest user: type: string description: The user associated with the project example: daytona env: type: object description: Environment variables for the sandbox additionalProperties: type: string example: NODE_ENV: production labels: type: object description: Labels for the sandbox additionalProperties: type: string example: daytona.io/public: 'true' public: type: boolean description: Whether the sandbox http preview is public example: false networkBlockAll: type: boolean description: Whether to block all network access for the sandbox example: false networkAllowList: type: string description: Comma-separated list of allowed CIDR network addresses for the sandbox example: 192.168.1.0/16,10.0.0.0/24 target: type: string description: The target environment for the sandbox example: local cpu: type: number description: The CPU quota for the sandbox example: 2 gpu: type: number description: The GPU quota for the sandbox example: 0 memory: type: number description: The memory quota for the sandbox example: 4 disk: type: number description: The disk quota for the sandbox example: 10 state: description: The state of the sandbox example: creating allOf: - $ref: '#/components/schemas/SandboxState' desiredState: description: The desired state of the sandbox example: destroyed allOf: - $ref: '#/components/schemas/SandboxDesiredState' errorReason: type: string description: The error reason of the sandbox example: The sandbox is not running recoverable: type: boolean description: Whether the sandbox error is recoverable. example: true backupState: type: string description: The state of the backup enum: - None - Pending - InProgress - Completed - Error example: None backupCreatedAt: type: string description: The creation timestamp of the last backup example: '2024-10-01T12:00:00Z' autoStopInterval: type: number description: Auto-stop interval in minutes (0 means disabled) example: 30 autoArchiveInterval: type: number description: Auto-archive interval in minutes example: 10080 autoDeleteInterval: type: number description: Auto-delete interval in minutes (negative value means disabled, 0 means delete immediately upon stopping) example: 30 volumes: description: Array of volumes attached to the sandbox type: array items: $ref: '#/components/schemas/SandboxVolume' buildInfo: description: Build information for the sandbox allOf: - $ref: '#/components/schemas/BuildInfo' createdAt: type: string description: The creation timestamp of the sandbox example: '2024-10-01T12:00:00Z' updatedAt: type: string description: The last update timestamp of the sandbox example: '2024-10-01T12:00:00Z' lastActivityAt: type: string description: The last activity timestamp of the sandbox example: '2024-10-01T12:00:00Z' class: type: string description: The class of the sandbox enum: - small - medium - large example: small deprecated: true daemonVersion: type: string description: The version of the daemon running in the sandbox example: 1.0.0 runnerId: type: string description: The runner ID of the sandbox example: runner123 toolboxProxyUrl: type: string description: The toolbox proxy URL for the sandbox example: https://proxy.app.daytona.io/toolbox image: type: string description: The image used for the workspace example: daytonaio/workspace:latest snapshotState: type: string description: The state of the snapshot enum: - None - Pending - InProgress - Completed - Error example: None snapshotCreatedAt: type: string description: The creation timestamp of the last snapshot example: '2024-10-01T12:00:00Z' info: description: Additional information about the sandbox allOf: - $ref: '#/components/schemas/SandboxInfo' required: - id - organizationId - name - user - env - labels - public - networkBlockAll - target - cpu - gpu - memory - disk - toolboxProxyUrl CreateWorkspace: type: object properties: image: type: string description: The image used for the workspace example: daytonaio/workspace:latest user: type: string description: The user associated with the project example: daytona env: type: object description: Environment variables for the workspace additionalProperties: type: string example: NODE_ENV: production labels: type: object description: Labels for the workspace additionalProperties: type: string example: daytona.io/public: 'true' public: type: boolean description: Whether the workspace http preview is publicly accessible example: false class: type: string description: The workspace class type enum: - small - medium - large example: small target: type: string description: The target (region) where the workspace will be created enum: - eu - us - asia example: eu cpu: type: integer description: CPU cores allocated to the workspace example: 2 gpu: type: integer description: GPU units allocated to the workspace example: 1 memory: type: integer description: Memory allocated to the workspace in GB example: 1 disk: type: integer description: Disk space allocated to the workspace in GB example: 3 autoStopInterval: type: integer description: Auto-stop interval in minutes (0 means disabled) example: 30 autoArchiveInterval: type: integer description: Auto-archive interval in minutes (0 means the maximum interval will be used) example: 10080 volumes: description: Array of volumes to attach to the workspace type: array items: $ref: '#/components/schemas/SandboxVolume' buildInfo: description: Build information for the workspace allOf: - $ref: '#/components/schemas/CreateBuildInfo' WorkspacePortPreviewUrl: type: object properties: url: type: string description: Preview url example: https://123456-mysandbox.runner.com token: type: string description: Access token example: ul67qtv-jl6wb9z5o3eii-ljqt9qed6l required: - url - token VolumeState: type: string enum: - creating - ready - pending_create - pending_delete - deleting - deleted - error description: Volume state VolumeDto: type: object properties: id: type: string description: Volume ID example: vol-12345678 name: type: string description: Volume name example: my-volume organizationId: type: string description: Organization ID example: 123e4567-e89b-12d3-a456-426614174000 state: description: Volume state example: ready allOf: - $ref: '#/components/schemas/VolumeState' createdAt: type: string description: Creation timestamp example: '2023-01-01T00:00:00.000Z' updatedAt: type: string description: Last update timestamp example: '2023-01-01T00:00:00.000Z' lastUsedAt: type: string description: Last used timestamp example: '2023-01-01T00:00:00.000Z' nullable: true errorReason: type: string description: The error reason of the volume example: Error processing volume nullable: true required: - id - name - organizationId - state - createdAt - updatedAt - errorReason CreateVolume: type: object properties: name: type: string required: - name JobStatus: type: string enum: - PENDING - IN_PROGRESS - COMPLETED - FAILED JobType: type: string enum: - CREATE_SANDBOX - START_SANDBOX - STOP_SANDBOX - DESTROY_SANDBOX - RESIZE_SANDBOX - CREATE_BACKUP - BUILD_SNAPSHOT - PULL_SNAPSHOT - RECOVER_SANDBOX - INSPECT_SNAPSHOT_IN_REGISTRY - REMOVE_SNAPSHOT - UPDATE_SANDBOX_NETWORK_SETTINGS - SNAPSHOT_SANDBOX - FORK_SANDBOX description: The type of the job Job: type: object properties: id: type: string description: The ID of the job example: job123 type: description: The type of the job example: CREATE_SANDBOX allOf: - $ref: '#/components/schemas/JobType' status: description: The status of the job example: PENDING allOf: - $ref: '#/components/schemas/JobStatus' resourceType: type: string description: The type of resource this job operates on enum: - SANDBOX - SNAPSHOT - BACKUP example: SANDBOX resourceId: type: string description: The ID of the resource this job operates on (sandboxId, snapshotRef, etc.) example: sandbox123 payload: type: string description: Job-specific JSON-encoded payload data (operational metadata) traceContext: type: object description: OpenTelemetry trace context for distributed tracing (W3C Trace Context format) additionalProperties: true example: traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01 errorMessage: type: string description: Error message if the job failed example: Failed to create sandbox createdAt: type: string description: The creation timestamp of the job example: '2024-10-01T12:00:00Z' updatedAt: type: string description: The last update timestamp of the job example: '2024-10-01T12:00:00Z' required: - id - type - status - resourceType - resourceId - createdAt PaginatedJobs: type: object properties: items: type: array items: $ref: '#/components/schemas/Job' total: type: number page: type: number totalPages: type: number required: - items - total - page - totalPages PollJobsResponse: type: object properties: jobs: description: List of jobs type: array items: $ref: '#/components/schemas/Job' required: - jobs UpdateJobStatus: type: object properties: status: description: The new status of the job example: IN_PROGRESS allOf: - $ref: '#/components/schemas/JobStatus' errorMessage: type: string description: Error message if the job failed example: Failed to create sandbox resultMetadata: type: string description: Result metadata for the job required: - status CreateDockerRegistry: type: object properties: name: type: string description: Registry name url: type: string description: Registry URL username: type: string description: Registry username password: type: string description: Registry password project: type: string description: Registry project required: - name - url - username - password DockerRegistry: type: object properties: id: type: string description: Registry ID example: 123e4567-e89b-12d3-a456-426614174000 name: type: string description: Registry name example: My Docker Hub url: type: string description: Registry URL example: https://registry.hub.docker.com username: type: string description: Registry username example: username project: type: string description: Registry project example: my-project registryType: type: string description: Registry type enum: - internal - organization - transient - backup example: internal createdAt: format: date-time type: string description: Creation timestamp example: '2024-01-31T12:00:00Z' updatedAt: format: date-time type: string description: Last update timestamp example: '2024-01-31T12:00:00Z' required: - id - name - url - username - project - registryType - createdAt - updatedAt RegistryPushAccessDto: type: object properties: username: type: string description: Temporary username for registry authentication example: temp-user-123 secret: type: string description: Temporary secret for registry authentication example: eyJhbGciOiJIUzI1NiIs... registryUrl: type: string description: Registry URL example: registry.example.com registryId: type: string description: Registry ID example: 123e4567-e89b-12d3-a456-426614174000 project: type: string description: Registry project ID example: library expiresAt: type: string description: Token expiration time in ISO format example: '2023-12-31T23:59:59Z' required: - username - secret - registryUrl - registryId - project - expiresAt UpdateDockerRegistry: type: object properties: name: type: string description: Registry name url: type: string description: Registry URL username: type: string description: Registry username password: type: string description: Registry password project: type: string description: Registry project required: - name - url - username AdminCreateRunner: type: object properties: regionId: type: string name: type: string tags: description: Tags to associate with the runner example: - gpu - us-east type: array items: type: string apiKey: type: string apiVersion: type: string description: The api version of the runner to create pattern: ^(0|2)$ example: '2' domain: type: string description: The domain of the runner example: runner1.example.com apiUrl: type: string description: The API URL of the runner example: https://api.runner1.example.com proxyUrl: type: string description: The proxy URL of the runner example: https://proxy.runner1.example.com cpu: type: number description: The CPU capacity of the runner example: 8 memoryGiB: type: number description: The memory capacity of the runner in GiB example: 16 diskGiB: type: number description: The disk capacity of the runner in GiB example: 100 required: - regionId - name - apiKey - apiVersion CreateOrganizationQuota: type: object properties: totalCpuQuota: type: number totalMemoryQuota: type: number totalDiskQuota: type: number maxCpuPerSandbox: type: number maxMemoryPerSandbox: type: number maxDiskPerSandbox: type: number snapshotQuota: type: number maxSnapshotSize: type: number volumeQuota: type: number CreateUser: type: object properties: id: type: string name: type: string email: type: string personalOrganizationQuota: $ref: '#/components/schemas/CreateOrganizationQuota' personalOrganizationDefaultRegionId: type: string role: type: string enum: - admin - user emailVerified: type: boolean required: - id - name WebhookEvent: type: string enum: - sandbox.created - sandbox.state.updated - snapshot.created - snapshot.state.updated - snapshot.removed - volume.created - volume.state.updated description: The type of event being sent SendWebhookDto: type: object properties: eventType: description: The type of event being sent example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' payload: type: object description: The payload data to send example: id: sandbox-123 name: My Sandbox eventId: type: string description: Optional event ID for idempotency example: evt_1234567890abcdef required: - eventType - payload SetSnapshotGeneralStatusDto: type: object properties: general: type: boolean description: Whether the snapshot is general example: true required: - general AuditLog: type: object properties: id: type: string actorId: type: string actorEmail: type: string actorApiKeyPrefix: type: string actorApiKeySuffix: type: string organizationId: type: string action: type: string targetType: type: string targetId: type: string statusCode: type: number errorMessage: type: string ipAddress: type: string userAgent: type: string source: type: string metadata: type: object additionalProperties: true createdAt: format: date-time type: string required: - id - actorId - actorEmail - action - createdAt PaginatedAuditLogs: type: object properties: items: type: array items: $ref: '#/components/schemas/AuditLog' total: type: number page: type: number totalPages: type: number nextToken: type: string description: Token for next page in cursor-based pagination required: - items - total - page - totalPages WebhookAppPortalAccess: type: object properties: token: type: string description: The authentication token for the Svix consumer app portal example: appsk_... url: type: string description: The URL to the webhook app portal example: https://app.svix.com/app_1234567890 required: - token - url WebhookInitializationStatus: type: object properties: organizationId: type: string description: Organization ID example: 123e4567-e89b-12d3-a456-426614174000 svixApplicationId: type: string description: The ID of the Svix application example: app_1234567890 nullable: true lastError: type: string description: The error reason for the last initialization attempt example: Failed to create Svix application nullable: true retryCount: type: number description: The number of times the initialization has been attempted example: 3 createdAt: type: string description: When the webhook initialization was created example: '2023-01-01T00:00:00.000Z' updatedAt: type: string description: When the webhook initialization was last updated example: '2023-01-01T00:00:00.000Z' required: - organizationId - svixApplicationId - lastError - retryCount - createdAt - updatedAt StorageAccessDto: type: object properties: accessKey: type: string description: Access key for storage authentication example: temp-user-123 secret: type: string description: Secret key for storage authentication example: abchbGciOiJIUzI1NiIs... sessionToken: type: string description: Session token for storage authentication example: eyJhbGciOiJIUzI1NiIs... storageUrl: type: string description: Storage URL example: storage.example.com organizationId: type: string description: Organization ID example: 123e4567-e89b-12d3-a456-426614174000 bucket: type: string description: S3 bucket name example: daytona required: - accessKey - secret - sessionToken - storageUrl - organizationId - bucket LogEntry: type: object properties: timestamp: type: string description: Timestamp of the log entry body: type: string description: Log message body severityText: type: string description: Severity level text (e.g., INFO, WARN, ERROR) severityNumber: type: number description: Severity level number serviceName: type: string description: Service name that generated the log resourceAttributes: type: object description: Resource attributes from OTEL additionalProperties: type: string logAttributes: type: object description: Log-specific attributes additionalProperties: type: string traceId: type: string description: Associated trace ID if available spanId: type: string description: Associated span ID if available required: - timestamp - body - severityText - serviceName - resourceAttributes - logAttributes PaginatedLogs: type: object properties: items: description: List of log entries type: array items: $ref: '#/components/schemas/LogEntry' total: type: number description: Total number of log entries matching the query page: type: number description: Current page number totalPages: type: number description: Total number of pages required: - items - total - page - totalPages TraceSummary: type: object properties: traceId: type: string description: Unique trace identifier rootSpanName: type: string description: Name of the root span startTime: type: string description: Trace start time endTime: type: string description: Trace end time durationMs: type: number description: Total duration in milliseconds spanCount: type: number description: Number of spans in this trace statusCode: type: string description: Status code of the trace required: - traceId - rootSpanName - startTime - endTime - durationMs - spanCount PaginatedTraces: type: object properties: items: description: List of trace summaries type: array items: $ref: '#/components/schemas/TraceSummary' total: type: number description: Total number of traces matching the query page: type: number description: Current page number totalPages: type: number description: Total number of pages required: - items - total - page - totalPages TraceSpan: type: object properties: traceId: type: string description: Trace identifier spanId: type: string description: Span identifier parentSpanId: type: string description: Parent span identifier spanName: type: string description: Span name timestamp: type: string description: Span start timestamp durationNs: type: number description: Span duration in nanoseconds spanAttributes: type: object description: Span attributes additionalProperties: type: string statusCode: type: string description: Status code of the span statusMessage: type: string description: Status message required: - traceId - spanId - spanName - timestamp - durationNs - spanAttributes MetricDataPoint: type: object properties: timestamp: type: string description: Timestamp of the data point value: type: number description: Value at this timestamp required: - timestamp - value MetricSeries: type: object properties: metricName: type: string description: Name of the metric dataPoints: description: Data points for this metric type: array items: $ref: '#/components/schemas/MetricDataPoint' required: - metricName - dataPoints MetricsResponse: type: object properties: series: description: List of metric series type: array items: $ref: '#/components/schemas/MetricSeries' required: - series SandboxCreatedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Sandbox ID example: sandbox123 organizationId: type: string description: Organization ID example: org123 state: description: Sandbox state allOf: - $ref: '#/components/schemas/SandboxState' class: description: Sandbox class allOf: - $ref: '#/components/schemas/SandboxClass' createdAt: type: string description: When the sandbox was created example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - organizationId - state - class - createdAt SandboxStateUpdatedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Sandbox ID example: sandbox123 organizationId: type: string description: Organization ID example: org123 oldState: description: Previous state allOf: - $ref: '#/components/schemas/SandboxState' newState: description: New state allOf: - $ref: '#/components/schemas/SandboxState' updatedAt: type: string description: When the sandbox was last updated example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - organizationId - oldState - newState - updatedAt SnapshotCreatedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Snapshot ID example: snapshot123 name: type: string description: Snapshot name example: my-snapshot organizationId: type: string description: Organization ID example: org123 state: description: Snapshot state allOf: - $ref: '#/components/schemas/SnapshotState' createdAt: type: string description: When the snapshot was created example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - name - organizationId - state - createdAt SnapshotStateUpdatedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Snapshot ID example: snapshot123 name: type: string description: Snapshot name example: my-snapshot organizationId: type: string description: Organization ID example: org123 oldState: description: Previous state allOf: - $ref: '#/components/schemas/SnapshotState' newState: description: New state allOf: - $ref: '#/components/schemas/SnapshotState' updatedAt: type: string description: When the snapshot was last updated example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - name - organizationId - oldState - newState - updatedAt SnapshotRemovedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Snapshot ID example: snapshot123 name: type: string description: Snapshot name example: my-snapshot organizationId: type: string description: Organization ID example: org123 removedAt: type: string description: When the snapshot was removed example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - name - organizationId - removedAt VolumeCreatedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Volume ID example: vol-12345678 name: type: string description: Volume name example: my-volume organizationId: type: string description: Organization ID example: org123 state: description: Volume state allOf: - $ref: '#/components/schemas/VolumeState' createdAt: type: string description: When the volume was created example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - name - organizationId - state - createdAt VolumeStateUpdatedWebhook: type: object properties: event: description: Event type identifier example: sandbox.created allOf: - $ref: '#/components/schemas/WebhookEvent' timestamp: type: string description: Timestamp when the event occurred example: '2025-12-19T10:30:00.000Z' format: date-time id: type: string description: Volume ID example: vol-12345678 name: type: string description: Volume name example: my-volume organizationId: type: string description: Organization ID example: org123 oldState: description: Previous state allOf: - $ref: '#/components/schemas/VolumeState' newState: description: New state allOf: - $ref: '#/components/schemas/VolumeState' updatedAt: type: string description: When the volume was last updated example: '2025-12-19T10:30:00.000Z' format: date-time required: - event - timestamp - id - name - organizationId - oldState - newState - updatedAt webhooks: sandbox.created: post: requestBody: description: Sandbox created event content: application/json: schema: $ref: '#/components/schemas/SandboxCreatedWebhook' responses: '200': description: Webhook received successfully sandbox.state.updated: post: requestBody: description: Sandbox state updated event content: application/json: schema: $ref: '#/components/schemas/SandboxStateUpdatedWebhook' responses: '200': description: Webhook received successfully snapshot.created: post: requestBody: description: Snapshot created event content: application/json: schema: $ref: '#/components/schemas/SnapshotCreatedWebhook' responses: '200': description: Webhook received successfully snapshot.state.updated: post: requestBody: description: Snapshot state updated event content: application/json: schema: $ref: '#/components/schemas/SnapshotStateUpdatedWebhook' responses: '200': description: Webhook received successfully snapshot.removed: post: requestBody: description: Snapshot removed event content: application/json: schema: $ref: '#/components/schemas/SnapshotRemovedWebhook' responses: '200': description: Webhook received successfully volume.created: post: requestBody: description: Volume created event content: application/json: schema: $ref: '#/components/schemas/VolumeCreatedWebhook' responses: '200': description: Webhook received successfully volume.state.updated: post: requestBody: description: Volume state updated event content: application/json: schema: $ref: '#/components/schemas/VolumeStateUpdatedWebhook' responses: '200': description: Webhook received successfully