Slug Available
Check whether a slug is available for the current workspace. Admin only.
Returns { available: true } if the slug is valid, not reserved, and
not already claimed by another workspace. When unavailable, reason
indicates why: invalid (format/length), reserved (blocked word), or
taken (already in use globally). The workspace’s own current slug is
self-excluded, so an admin can safely check their existing slug without
receiving taken.
This is an advisory point-in-time check — a concurrent POST /workspaces
or PATCH /workspaces/{id} from another session can claim the slug
between this response and the caller’s write. Always handle 409
WORKSPACE_SLUG_TAKEN on create_workspace and update_workspace.
Requires the X-Workspace-Id header (the workspace being renamed) and
admin role in that workspace. Missing/invalid header returns 400; not a
member returns 404; not admin returns 403.
Authentication
Headers
Query parameters
Candidate slug; normalized (strip().lower()) before checks.
Response
POD-557: result of GET /workspaces/slug-available. reason is set only
when available is False (first failure in order format → reserved → taken).

