---
title: "List Team workspaces"
method: GET
path: "/api/team/v1/workspaces"
tags: ["Team workspaces"]
---

# List Team workspaces

`GET /api/team/v1/workspaces`

## Request

- Base URL: `https://mdflow.cz`
- URL: `https://mdflow.cz/api/team/v1/workspaces`
- Auth: HTTP bearer

Lists the Team workspaces this Team access token can reach, sorted by name. Each row carries the token's effective access_level in that workspace (read or write, after intersecting the token's cap with the creator's current permission) and the Team account's access state. Start here: every other Team endpoint needs a workspace, folder, or document id from this tree.

## Response `200`

Team workspace list.

- TeamWorkspace[]
  - `id` string, uuid, required
  - `account_id` string, uuid, required: The Team account this workspace belongs to.
  - `name` string, required
  - `description` string, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `access_level` 'read' | 'write', required: The token's effective access in this workspace right now: its cap intersected with the creator's current permission.
  - `account_access_state` 'setup' | 'active' | 'grace' | 'read_only' | 'deleting', required: The Team account's lifecycle state. Writes succeed only while it is active.

## Other responses

- `401`: Missing, malformed, invalid, or revoked Team access token — including a personal `mdf_` token sent to a Team route, and a token whose creator has left the team. The body includes a `message` with Team token guidance, and the response carries a `WWW-Authenticate` challenge.
- `403`: The Team access token is valid but the operation exceeds its effective access: a write from a read-only token or from a creator whose current workspace permission is read-only, a write while the Team account is not active (setup, grace, or read_only), or any request while the account is being deleted. No plan check is involved — eligibility comes from the Team seat. The body includes a `message` with guidance.
- `429`: The token or authenticated user exceeded a 60 requests per minute rate limit.
- `500`: Unexpected server error, or the live membership lookup failed. Retry rather than discarding the token — this is never a revocation signal.

---

[API](https://skmtc.dev/mdflow/apis/mdflow-public-api.md) · [All operations](https://skmtc.dev/mdflow/apis/mdflow-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mdflow/apis/mdflow-public-api/revisions/3691fc5d1688?raw)
