Skip to content

Interactive compute sessions, lifecycle management, and token issuance.

GET/workloads/sessions

List sessions

Returns sessions visible to the caller. Members see their own sessions; team admins see all sessions in their team; org admins see all sessions.

Parameters

teamIdstring
teamId

Filter sessions by team.

Type
string
Example"A1B2C3D4E5"
Min Length
1
Max Length
20
Pattern
"^[A-Z0-9]{1,20}$"
endpoint_typestring
endpoint_type

Filter sessions by endpoint type.

Type
string
Valid values
"spark_connect"
statusstring
status

Filter sessions by status.

Type
string
Valid values
"pending""active""idle""closed""failed"
limitinteger
limit

The maximum number of items to list.

Type
integer
Format
"int32"
Minimum
0
Maximum
100
Default
100
markerstring
marker

The pagination token returned from the previous list operation.

Type
string
Responses

Responses

The list of sessions.

application/json
JSON
{
  
"total": 0,
  
"items": [
  
  
{
  
  
  
"id": "A1B2C3D4E5",
  
  
  
"computeInstanceId": "A1B2C3D4E5",
  
  
  
"memberId": "A1B2C3D4E5",
  
  
  
"serviceAccountId": "A1B2C3D4E5"
  
  
}
  
],
  
"included": {
  
  
"sessions": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"endpointType": "string",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"status": "string",
  
  
  
  
"workloadId": "A1B2C3D4E5",
  
  
  
  
"teamId": "A1B2C3D4E5",
  
  
  
  
"memberId": "A1B2C3D4E5",
  
  
  
  
"serviceAccountId": "A1B2C3D4E5",
  
  
  
  
"notebookId": "A1B2C3D4E5",
  
  
  
  
"terminationReason": "string",
  
  
  
  
"statusMessage": "string",
  
  
  
  
"connectionInfo": {
  
  
  
  
  
"proxyAuthUrl": "string",
  
  
  
  
  
"grpcEndpoint": "string"
  
  
  
  
},
  
  
  
  
"lastActivityAt": "string",
  
  
  
  
"idleSince": "string",
  
  
  
  
"closedAt": "string",
  
  
  
  
"timeoutAt": "string",
  
  
  
  
"config": {
  
  
  
  
  
"idleTimeoutSeconds": 0,
  
  
  
  
  
"idleCloseDelaySeconds": 0,
  
  
  
  
  
"maxDurationSeconds": 0
  
  
  
  
},
  
  
  
  
"metadata": {
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
},
  
  
  
  
"createdAt": "string",
  
  
  
  
"updatedAt": "string"
  
  
  
}
  
  
],
  
  
"members": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"organizationId": "A1B2C3D4E5",
  
  
  
  
"userId": "A1B2C3D4E5",
  
  
  
  
"name": "string",
  
  
  
  
"email": "alice@example.com",
  
  
  
  
"preferences": {
  
  
  
  
},
  
  
  
  
"invitedByMemberId": "A1B2C3D4E5",
  
  
  
  
"inviteExpiresAt": "string",
  
  
  
  
"inviteAcceptedAt": "string",
  
  
  
  
"lastLoginAt": "string",
  
  
  
  
"lastActiveAt": "string",
  
  
  
  
"isEnabled": true,
  
  
  
  
"accountType": "managed",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"serviceAccounts": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"username": "ci-deploy-bot",
  
  
  
  
"description": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"workloads": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"workloadConfigId": "A1B2C3D4E5",
  
  
  
  
"infraStatus": "string",
  
  
  
  
"shutdownPolicy": "string",
  
  
  
  
"endpoints": {
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
},
  
  
  
  
"provisionedAt": "string",
  
  
  
  
"cleanedAt": "string",
  
  
  
  
"lastActivityAt": "string",
  
  
  
  
"statusMessage": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
],
  
  
"workloadConfigs": [
  
  
  
{
  
  
  
  
"id": "A1B2C3D4E5",
  
  
  
  
"name": "Production Cluster",
  
  
  
  
"workloadType": "string",
  
  
  
  
"clusterId": "A1B2C3D4E5",
  
  
  
  
"teamId": "A1B2C3D4E5",
  
  
  
  
"config": {
  
  
  
  
  
"sail": {
  
  
  
  
  
  
"executionMode": "standalone",
  
  
  
  
  
  
"compute": {
  
  
  
  
  
  
  
"driver": {
  
  
  
  
  
  
  
  
"instanceType": "c8g.2xlarge",
  
  
  
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
  
  
  
}
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
"worker": {
  
  
  
  
  
  
  
  
"instanceType": "c8g.4xlarge",
  
  
  
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
  
"maxNodes": 4,
  
  
  
  
  
  
  
  
"capacityType": "on-demand"
  
  
  
  
  
  
  
}
  
  
  
  
  
  
},
  
  
  
  
  
  
"lakesailImageUri": "string",
  
  
  
  
  
  
"libraries": [
  
  
  
  
  
  
  
{
  
  
  
  
  
  
  
  
"pypi": {
  
  
  
  
  
  
  
  
  
"package": "string",
  
  
  
  
  
  
  
  
  
"repo": "string"
  
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
  
"requirements": {
  
  
  
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
  
  
  
"uri": "string"
  
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
  
"whl": "string"
  
  
  
  
  
  
  
}
  
  
  
  
  
  
],
  
  
  
  
  
  
"extraEnv": {
  
  
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
  
  
}
  
  
  
  
  
}
  
  
  
  
},
  
  
  
  
"endpointLimits": {
  
  
  
  
  
"spark_connect": 0
  
  
  
  
},
  
  
  
  
"createdAt": "string",
  
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
  
"updatedAt": "string",
  
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
  
}
  
  
]
  
},
  
"marker": "string"
}
POST/workloads/sessions

Create a session

Creates a new session. Resolves or creates a compute config, finds a reusable compute instance or provisions a new one, and returns the session in pending state. The session transitions to active on the first proxy request after the compute instance is ready.

Request Body

application/json
JSON
{
  
"endpointType": "string",
  
"name": "Production Cluster",
  
"teamId": "A1B2C3D4E5",
  
"memberId": "A1B2C3D4E5",
  
"serviceAccountId": "A1B2C3D4E5",
  
"notebookId": "A1B2C3D4E5",
  
"config": {
  
  
"idleTimeoutSeconds": 0,
  
  
"idleCloseDelaySeconds": 0,
  
  
"maxDurationSeconds": 0
  
},
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"workloadConfigId": "A1B2C3D4E5",
  
"allowShared": false
}
Responses

Responses

The session was created successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"endpointType": "string",
  
"name": "Production Cluster",
  
"status": "string",
  
"workloadId": "A1B2C3D4E5",
  
"teamId": "A1B2C3D4E5",
  
"memberId": "A1B2C3D4E5",
  
"serviceAccountId": "A1B2C3D4E5",
  
"notebookId": "A1B2C3D4E5",
  
"terminationReason": "string",
  
"statusMessage": "string",
  
"connectionInfo": {
  
  
"proxyAuthUrl": "string",
  
  
"grpcEndpoint": "string"
  
},
  
"lastActivityAt": "string",
  
"idleSince": "string",
  
"closedAt": "string",
  
"timeoutAt": "string",
  
"config": {
  
  
"idleTimeoutSeconds": 0,
  
  
"idleCloseDelaySeconds": 0,
  
  
"maxDurationSeconds": 0
  
},
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"createdAt": "string",
  
"updatedAt": "string"
}
GET/workloads/sessions/{session}

Describe a session

Returns the session details. For the session owner, includes connectionInfo with the proxy authentication URL (HTTP-transport endpoints) or gRPC endpoint (gRPC-transport endpoints).

Responses

Responses

The session was retrieved successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"endpointType": "string",
  
"name": "Production Cluster",
  
"status": "string",
  
"workloadId": "A1B2C3D4E5",
  
"teamId": "A1B2C3D4E5",
  
"memberId": "A1B2C3D4E5",
  
"serviceAccountId": "A1B2C3D4E5",
  
"notebookId": "A1B2C3D4E5",
  
"terminationReason": "string",
  
"statusMessage": "string",
  
"connectionInfo": {
  
  
"proxyAuthUrl": "string",
  
  
"grpcEndpoint": "string"
  
},
  
"lastActivityAt": "string",
  
"idleSince": "string",
  
"closedAt": "string",
  
"timeoutAt": "string",
  
"config": {
  
  
"idleTimeoutSeconds": 0,
  
  
"idleCloseDelaySeconds": 0,
  
  
"maxDurationSeconds": 0
  
},
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"createdAt": "string",
  
"updatedAt": "string"
}
DELETE/workloads/sessions/{session}

Close a session

Closes the session immediately. The session transitions to closed and closed_at is set. Infrastructure cleanup (marimo pod, compute instance) is handled asynchronously. Can be called by the session owner, team admin, or org admin.

Responses

Responses

The session was closed successfully.

POST/workloads/sessions/{session}/token

Issue a session proxy token

Issues a short-lived signed JWT bearer token for authenticating with the session gRPC proxy. Use the grpcEndpoint from the session's connectionInfo as the dial address and pass the token as Authorization: Bearer in the gRPC metadata. The token encodes the session ID and routing target; no additional metadata header is required. Only the session owner (or an org admin) can issue a token.

Request Body

application/json
JSON
{
  
"durationSeconds": 28800
}
Responses

Responses

A bearer token for gRPC proxy access.

application/json
JSON
{
  
"token": "string",
  
"expiresAt": "string"
}
POST/workloads/sessions/{session}/relaunch

Relaunch a closed session

Creates a new session using the same workload configuration as a previously closed or failed session. Useful for restarting a recurring session without having to reconfigure compute settings from scratch.
The original session must be in a terminal state (closed or failed). A brand-new session ID is returned — the original session is not mutated. The caller must be the original session owner.

Responses

Responses

The session was relaunched successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"endpointType": "string",
  
"name": "Production Cluster",
  
"status": "string",
  
"workloadId": "A1B2C3D4E5",
  
"teamId": "A1B2C3D4E5",
  
"memberId": "A1B2C3D4E5",
  
"serviceAccountId": "A1B2C3D4E5",
  
"notebookId": "A1B2C3D4E5",
  
"terminationReason": "string",
  
"statusMessage": "string",
  
"connectionInfo": {
  
  
"proxyAuthUrl": "string",
  
  
"grpcEndpoint": "string"
  
},
  
"lastActivityAt": "string",
  
"idleSince": "string",
  
"closedAt": "string",
  
"timeoutAt": "string",
  
"config": {
  
  
"idleTimeoutSeconds": 0,
  
  
"idleCloseDelaySeconds": 0,
  
  
"maxDurationSeconds": 0
  
},
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"createdAt": "string",
  
"updatedAt": "string"
}
GET/workloads/compute-configs

List workload configs

Returns workload configs visible to the caller. Org admins see all configs; team admins see configs belonging to their teams; members see configs for teams they belong to. Anonymous (inline) configs are excluded.

Parameters

teamIdstring
teamId

Filter workload configs by team.

Type
string
Example"A1B2C3D4E5"
Min Length
1
Max Length
20
Pattern
"^[A-Z0-9]{1,20}$"
limitinteger
limit

The maximum number of items to list.

Type
integer
Format
"int32"
Minimum
0
Maximum
100
Default
100
markerstring
marker

The pagination token returned from the previous list operation.

Type
string
Responses

Responses

The list of workload configs.

application/json
JSON
{
  
"items": [
  
  
{
  
  
  
"id": "A1B2C3D4E5",
  
  
  
"name": "Production Cluster",
  
  
  
"workloadType": "string",
  
  
  
"clusterId": "A1B2C3D4E5",
  
  
  
"teamId": "A1B2C3D4E5",
  
  
  
"config": {
  
  
  
  
"sail": {
  
  
  
  
  
"executionMode": "standalone",
  
  
  
  
  
"compute": {
  
  
  
  
  
  
"driver": {
  
  
  
  
  
  
  
"instanceType": "c8g.2xlarge",
  
  
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
  
  
}
  
  
  
  
  
  
},
  
  
  
  
  
  
"worker": {
  
  
  
  
  
  
  
"instanceType": "c8g.4xlarge",
  
  
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
"maxNodes": 4,
  
  
  
  
  
  
  
"capacityType": "on-demand"
  
  
  
  
  
  
}
  
  
  
  
  
},
  
  
  
  
  
"lakesailImageUri": "string",
  
  
  
  
  
"libraries": [
  
  
  
  
  
  
{
  
  
  
  
  
  
  
"pypi": {
  
  
  
  
  
  
  
  
"package": "string",
  
  
  
  
  
  
  
  
"repo": "string"
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
"requirements": {
  
  
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
  
  
"uri": "string"
  
  
  
  
  
  
  
},
  
  
  
  
  
  
  
"whl": "string"
  
  
  
  
  
  
}
  
  
  
  
  
],
  
  
  
  
  
"extraEnv": {
  
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
  
}
  
  
  
  
}
  
  
  
},
  
  
  
"endpointLimits": {
  
  
  
  
"spark_connect": 0
  
  
  
},
  
  
  
"createdAt": "string",
  
  
  
"createdBy": "A1B2C3D4E5",
  
  
  
"updatedAt": "string",
  
  
  
"updatedBy": "A1B2C3D4E5"
  
  
}
  
],
  
"marker": "string"
}
POST/workloads/compute-configs

Create a workload config

Creates a named workload config for a team. Named configs can be reused across multiple sessions and shared with team members. Once created, workloadType, clusterId, and teamId are immutable.

Request Body

application/json
JSON
{
  
"name": "Production Cluster",
  
"workloadType": "string",
  
"clusterId": "A1B2C3D4E5",
  
"teamId": "A1B2C3D4E5",
  
"config": {
  
  
"sail": {
  
  
  
"executionMode": "standalone",
  
  
  
"compute": {
  
  
  
  
"driver": {
  
  
  
  
  
"instanceType": "c8g.2xlarge",
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
}
  
  
  
  
},
  
  
  
  
"worker": {
  
  
  
  
  
"instanceType": "c8g.4xlarge",
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
},
  
  
  
  
  
"maxNodes": 4,
  
  
  
  
  
"capacityType": "on-demand"
  
  
  
  
}
  
  
  
},
  
  
  
"lakesailImageUri": "string",
  
  
  
"libraries": [
  
  
  
  
{
  
  
  
  
  
"pypi": {
  
  
  
  
  
  
"package": "string",
  
  
  
  
  
  
"repo": "string"
  
  
  
  
  
},
  
  
  
  
  
"requirements": {
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
"uri": "string"
  
  
  
  
  
},
  
  
  
  
  
"whl": "string"
  
  
  
  
}
  
  
  
],
  
  
  
"extraEnv": {
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
}
  
},
  
"endpointLimits": {
  
  
"spark_connect": 0
  
}
}
Responses

Responses

The workload config was created successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"name": "Production Cluster",
  
"workloadType": "string",
  
"clusterId": "A1B2C3D4E5",
  
"teamId": "A1B2C3D4E5",
  
"config": {
  
  
"sail": {
  
  
  
"executionMode": "standalone",
  
  
  
"compute": {
  
  
  
  
"driver": {
  
  
  
  
  
"instanceType": "c8g.2xlarge",
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
}
  
  
  
  
},
  
  
  
  
"worker": {
  
  
  
  
  
"instanceType": "c8g.4xlarge",
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
},
  
  
  
  
  
"maxNodes": 4,
  
  
  
  
  
"capacityType": "on-demand"
  
  
  
  
}
  
  
  
},
  
  
  
"lakesailImageUri": "string",
  
  
  
"libraries": [
  
  
  
  
{
  
  
  
  
  
"pypi": {
  
  
  
  
  
  
"package": "string",
  
  
  
  
  
  
"repo": "string"
  
  
  
  
  
},
  
  
  
  
  
"requirements": {
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
"uri": "string"
  
  
  
  
  
},
  
  
  
  
  
"whl": "string"
  
  
  
  
}
  
  
  
],
  
  
  
"extraEnv": {
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
}
  
},
  
"endpointLimits": {
  
  
"spark_connect": 0
  
},
  
"createdAt": "string",
  
"createdBy": "A1B2C3D4E5",
  
"updatedAt": "string",
  
"updatedBy": "A1B2C3D4E5"
}
GET/workloads/compute-configs/{workloadConfig}

Describe a workload config

Returns the full detail of a workload config.

Responses

Responses

The workload config was retrieved successfully.

application/json
JSON
{
  
"id": "A1B2C3D4E5",
  
"name": "Production Cluster",
  
"workloadType": "string",
  
"clusterId": "A1B2C3D4E5",
  
"teamId": "A1B2C3D4E5",
  
"config": {
  
  
"sail": {
  
  
  
"executionMode": "standalone",
  
  
  
"compute": {
  
  
  
  
"driver": {
  
  
  
  
  
"instanceType": "c8g.2xlarge",
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
}
  
  
  
  
},
  
  
  
  
"worker": {
  
  
  
  
  
"instanceType": "c8g.4xlarge",
  
  
  
  
  
"ebsConfig": {
  
  
  
  
  
  
"volumeType": "gp3",
  
  
  
  
  
  
"volumeSize": 100,
  
  
  
  
  
  
"iops": 3000,
  
  
  
  
  
  
"throughput": 125,
  
  
  
  
  
  
"deleteOnTermination": true
  
  
  
  
  
},
  
  
  
  
  
"maxNodes": 4,
  
  
  
  
  
"capacityType": "on-demand"
  
  
  
  
}
  
  
  
},
  
  
  
"lakesailImageUri": "string",
  
  
  
"libraries": [
  
  
  
  
{
  
  
  
  
  
"pypi": {
  
  
  
  
  
  
"package": "string",
  
  
  
  
  
  
"repo": "string"
  
  
  
  
  
},
  
  
  
  
  
"requirements": {
  
  
  
  
  
  
"source": "string",
  
  
  
  
  
  
"uri": "string"
  
  
  
  
  
},
  
  
  
  
  
"whl": "string"
  
  
  
  
}
  
  
  
],
  
  
  
"extraEnv": {
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
}
  
},
  
"endpointLimits": {
  
  
"spark_connect": 0
  
},
  
"createdAt": "string",
  
"createdBy": "A1B2C3D4E5",
  
"updatedAt": "string",
  
"updatedBy": "A1B2C3D4E5"
}