---
title: "Create a workspace and bootstrap its first owner"
method: POST
path: "/api/workspaces"
tags: ["Workspaces"]
---

# Create a workspace and bootstrap its first owner

`POST /api/workspaces`

The workspace and creator membership are persisted atomically. Replaying the same idempotency key and normalized request returns the original result.

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateWorkspaceRequest
  - `name` string, required
  - `description` string

## Response `201`

Workspace created, or the original creation response replayed

- Workspace
  - `id` string, required — Opaque resource identifier. Clients must compare it only as a string.
  - `name` string, required
  - `description` string
  - `role` 'owner' | 'admin' | 'member', required — Fixed base role. Custom roles are not part of the Beta workspace contract.
  - `createdAt` string, date-time, required — UTC RFC 3339 timestamp. Writers emit a trailing `Z`.
  - `updatedAt` string, date-time, required — UTC RFC 3339 timestamp. Writers emit a trailing `Z`.

## Other responses

- `400` — Request failed using the Beta API error envelope.
- `401` — Request failed using the Beta API error envelope.
- `409` — Request failed using the Beta API error envelope.
- `413` — Request failed using the Beta API error envelope.

## Changes

- **2026-08-19** `5e87ccdae3cf` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/kubeorch/apis/kubeorch-core-api/changes/api/workspaces/post.md)

---

[API](https://skmtc.dev/kubeorch/apis/kubeorch-core-api.md) · [All operations](https://skmtc.dev/kubeorch/apis/kubeorch-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kubeorch/kubeorch-core-api/revisions/d7019ac4c03f/schema)
