> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenrip.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Workspace

> POST /v0/workspaces — Create a personal or team-owned workspace

Creates a workspace. Omit `teamId` for a personal workspace. Pass it to make the team the owner; you must be the team's owner or a team admin. MCP: `workspace_create`. CLI: `rip workspace create <slug> [--name --description --team-id]`.

**Auth:** `Authorization: Bearer tr_...` (an account API key).

## Request body

| Field | Type | Required | Description |
| - | - | - | - |
| `slug` | string | Yes | 1–64 lowercase letters, digits, or hyphens, starting and ending with a letter or digit. Unique per owner or per team |
| `name` | string | Yes | Display name (trimmed; must not be blank) |
| `description` | string | No | |
| `teamId` | string | No | Team **UUID** to own the workspace. A slug is `400 INVALID_TEAM_ID`; `rip team list` shows the id |

## Response (201)

```json theme={null}
{
  "ok": true,
  "data": {
    "id": "0b7f3c1e-5a2d-4c8e-9f10-2b3c4d5e6f70", "slug": "roadmap", "name": "Roadmap", "description": null,
    "ownerAccountId": "rip1…", "teamId": null, "archivedAt": null,
    "role": "admin", "membership": "internal", "audiences": ["internal", "shared"],
    "capabilities": {
      "read": true, "navigate": true, "writeContent": true, "organizeContent": true,
      "manageContext": true, "manageAudience": true, "writeTasks": true, "writeHandoff": true,
      "archiveContent": true, "manageWorkspace": true, "deleteContent": true, "deleteWorkspace": true
    },
    "mutationSequence": 1, "accessGeneration": 1,
    "createdAt": "2026-09-15T08:00:00.000Z", "updatedAt": "2026-09-15T08:00:00.000Z"
  }
}
```

| Field | Description |
| - | - |
| `ownerAccountId` / `teamId` | Exactly one is set: the personal owner or the owning team |
| `role`, `membership`, `audiences`, `capabilities` | Your live access (see [Roles and capabilities](/api-reference/workspaces/overview#roles-and-capabilities)) |
| `mutationSequence` | Position of the latest workspace change |
| `accessGeneration` | Increments when membership or visibility rules change |

## Errors

| Status | Code | Cause |
| - | - | - |
| `400` | `INVALID_INPUT` | Missing `slug` or `name` |
| `400` | `INVALID_WORKSPACE_SLUG` | The slug does not match the format |
| `400` | `INVALID_NAME` | `name` is blank |
| `400` | `INVALID_TEAM_ID` | `teamId` is not a UUID |
| `404` | `WORKSPACE_NOT_FOUND` | No team with that `teamId` |
| `403` | `WORKSPACE_FORBIDDEN` | You are not the team's owner or a team admin |
| `409` | `WORKSPACE_SLUG_TAKEN` | The slug is already used by that owner or team |
