Create workspace

View as Markdown

Create a new workspace. Multiple workspaces per user are allowed; each has its own subscription. Returns 201 with workspace detail.

Headers

AuthorizationstringRequired

Bearer {access_token}

Request

name (required); slug, billingEmail, type, and tier are optional; pro/team tiers start a 7-day trial

namestringRequired

The server trims surrounding whitespace, then requires 1-100 UTF-8 bytes.

billingEmailstringOptional

Empty is allowed; non-empty values are validated with Go’s mail.ParseAddress.

slugstringOptionalformat: "^$|^[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"<=63 characters

Empty is allowed and causes automatic slug generation. A non-empty value must contain URL-safe ASCII letters, numbers, and hyphens with no leading or trailing hyphen; validation is case-insensitive.

tierstringOptionalformat: "^\s*(?:[Ff][Rr][Ee][Ee]|[Pp][Rr][Oo]|[Tt][Ee][Aa][Mm])?\s*$"Defaults to free

Leading/trailing whitespace and letter case are ignored. “pro” or “team” starts a 7-day trial; empty/“free” means free/active. Enterprise is NOT allowed via tier (use type=“enterprise” instead).

typestringOptionalformat: "^\s*(?:[Pp][Ee][Rr][Ss][Oo][Nn][Aa][Ll]|[Ee][Nn][Tt][Ee][Rr][Pp][Rr][Ii][Ss][Ee])?\s*$"Defaults to personal

Leading/trailing whitespace and letter case are ignored. Empty defaults to “personal”; the other accepted value is “enterprise”. Use json:“type” (not omitempty) so request bodies always bind “type” reliably across JSON decoders.

Response

data: created workspace (id, name, slug, type, ownerId, logoUrl, billingEmail, settings, createdAt, updatedAt)

Errors

401
Unauthorized Error
409
Conflict Error
422
Unprocessable Entity Error