Xeonr Developer Docs
API SpecificationWorkspaces

List Workspaces

POST
/containers.api.v1.WorkspaceService/ListWorkspaces

Lists workspaces in a namespace, most recently updated first. Ephemeral workspaces (owned by a sandbox, job or app replica) are excluded unless include_ephemeral is set. namespace is required unless the caller is a platform admin. page_size defaults to 100 and is clamped to 1000.

Access: namespace VIEWER or above (read); refused for workspace-scoped agent keys

Authorization

BearerAuth
AuthorizationBearer <token>

A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC token for humans. The key's namespace and role are pinned server-side.

In: header

Header Parameters

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

namespace?string

Required unless the caller is a platform admin (empty = every namespace).

Lengthlength <= 64
pageSize?integer

validate:skip 0 = default 100; values above 1000 are clamped, not refused

pageToken?string
includeEphemeral?boolean

Include workspaces owned by a sandbox, job or app replica. Off by default: they are scratch, they can outnumber durable workspaces by a lot (an app scaled to 50 replicas has 50), and a listing buried in them is useless. validate:skip a bool has no bounds

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://containers.xeonr.io/containers.api.v1.WorkspaceService/ListWorkspaces" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/json" \  -d '{}'
{
  "workspaces": [
    {
      "workspaceId": "string",
      "namespace": "string",
      "totalBytes": "string",
      "fileCount": 0,
      "updatedAtUnix": "string",
      "label": "string",
      "revision": "string",
      "ephemeral": true,
      "ownerKind": "string",
      "ownerId": "string"
    }
  ],
  "nextPageToken": "string",
  "total": 0
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}