---
title: "Get workspace version"
method: GET
path: "/v1/private/workspaces/versions"
tags: ["Workspaces"]
---

# Get workspace version

`GET /v1/private/workspaces/versions`

Determines whether the workspace should use Opik V1 (legacy workspace-scoped)
or Opik V2 (project-first) navigation. The backend is the single authority for this
determination, clients must never derive the version themselves.

Determination logic (priority order):
1) V2 workspace allowlist (TOGGLE_V2_WORKSPACE_ALLOWLIST)
2) Feature flag override (TOGGLE_FORCE_WORKSPACE_VERSION)
3) Auth one-way V2 gate (authenticated mode only)
4) Version 1 entity check (entities without project_id)
5) Fallback on failure

In unauthenticated mode (authentication.enabled=false), auth steps are skipped.
Called by the frontend on workspace load.

## Response `200`

Workspace version

- WorkspaceVersion — Workspace version response. The opik_version field indicates which navigation mode the frontend should render: 'version_1' (legacy workspace-scoped) or 'version_2' (project-first).
  - `opik_version` 'version_1' | 'version_2' — The determined Opik navigation version for this workspace. 'version_1' = legacy workspace-scoped navigation, 'version_2' = new project-first navigation.

---

[API](https://skmtc.dev/comet-ml/apis/opik-rest-api.md) · [All operations](https://skmtc.dev/comet-ml/apis/opik-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/comet-ml/opik-rest-api/revisions/7e2bdcbaba06/schema)
