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

# List workspaces

`GET /api/v1/workspaces`

## Request

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

Returns all workspaces owned by the authenticated user, oldest first.

## Response `200`

Workspace list.

- Workspace[]
  - `id` string, uuid, required
  - `name` string, required
  - `description` string, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401`: Missing, malformed, invalid, or revoked bearer token. The body includes a `message` field with guidance for authenticating, and the response carries a `WWW-Authenticate` challenge.
- `403`: The bearer token is valid but its owner cannot use the API. Agent control (REST + MCP) requires an MDflow Pro plan, so a token owned by a non-Pro account returns 403 on every endpoint. POST /api/v1/documents additionally returns 403 when the account reaches its document limit. The body includes a `message` field with guidance.
- `429`: The token or authenticated user exceeded a 60 requests per minute rate limit.
- `500`: Unexpected server error.

---

[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)
