List workspaces
const url = 'https://your-org.evershell.ai/v1/workspaces';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://your-org.evershell.ai/v1/workspaces \ --header 'Authorization: Bearer <token>'Permissions: workspace:read or workspace:read:own —
the unscoped variant returns every workspace in the org;
:own filters to the caller’s own.
Optional role_name query param filters to workspaces under
one agent role; the server resolves the name to a role id
and 404s with role_not_found if no such role exists.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Filter to workspaces using the named agent role.
Resolved server-side via the same name-lookup that
POST /workspaces accepts in the body. Returns
404 role_not_found if the role doesn’t exist (silent
empty would hide typos).
Responses
Section titled “ Responses ”OK
object
object
Archived workspaces keep their status (typically stopped)
and carry a non-null archived_at; archive is not a status
value.
Populated when Stop ran against a pod that no longer existed and the snapshot save failed — paired with an empty snapshot_ref. Cleared on the next successful snapshot.
Set on forked workspaces; references the parent.
Set on forked workspaces; references the snapshot the fork was created from.
Set on forked workspaces; how many parent tasks were included before the fork boundary.
Whether the workspace’s running pod reflects the role’s current pack set. Computed at fetch time, not persisted.
Set when the workspace has been archived; null otherwise.
Example
{ "workspaces": [ { "id": "ws_01HZ", "status": "provisioning", "pack_status": "current" } ]}