Skip to main content

Get Workspace by Slug

Retrieve workspace information by slug.
const res = await client.workspace.bySlug.$get({ 
  slug: "acme" 
})
const { workspace } = await res.json()
Type: Public Procedure
slug
string
required
Workspace slug
workspace
object | null

Create Workspace

Create a new workspace.
const res = await client.workspace.create.$post({
  name: "ACME Inc",
  slug: "acme",
  domain: "https://acme.com",
  timezone: "America/New_York"
})
const { workspace } = await res.json()
Type: Private Procedure
name
string
required
Workspace name (1-64 characters)
slug
string
required
URL-friendly workspace slug (lowercase, alphanumeric)
domain
string
required
Primary domain URL
timezone
string
required
IANA timezone (e.g., “America/New_York”)
workspace
object
Created workspace object with default boards and tags
Default Setup:
  • Creates 4 boards: Features, Bugs, Roadmap, Changelog
  • Creates 5 tags: UI, Design, Security, Bugs, Support
  • Sets user as workspace owner and admin
  • Initializes free plan subscription

Check Slug Availability

Check if a workspace slug is available.
const res = await client.workspace.checkSlug.$post({ 
  slug: "acme" 
})
const { available } = await res.json()
Type: Private Procedure
slug
string
required
Slug to check
available
boolean
Whether the slug is available

List My Workspaces

List all workspaces the current user owns or is a member of.
const res = await client.workspace.listMine.$get()
const { workspaces } = await res.json()
Type: Private Procedure
workspaces
array
Array of workspace objects (owned and member workspaces)

Check Workspace Existence

Check if the current user has any workspace.
const res = await client.workspace.exists.$get()
const { hasWorkspace } = await res.json()
Type: Private Procedure
hasWorkspace
boolean
Whether user owns or is a member of any workspace

Get Status Counts

Get post count by roadmap status.
const res = await client.workspace.statusCounts.$get({ 
  slug: "acme" 
})
const { counts } = await res.json()
Type: Public Procedure
counts
object

Update Workspace Name

Update the workspace name.
const res = await client.workspace.updateName.$post({
  slug: "acme",
  name: "ACME Corporation"
})
Type: Private Procedure (requires workspace manager permission)
slug
string
required
Workspace slug
name
string
required
New workspace name

Update Timezone

Update the workspace timezone.
const res = await client.workspace.updateTimezone.$post({
  slug: "acme",
  timezone: "Europe/London"
})
Type: Private Procedure (requires workspace manager permission)
slug
string
required
Workspace slug
timezone
string
required
IANA timezone identifier

Delete Workspace

Permanently delete a workspace.
const res = await client.workspace.delete.$post({
  slug: "acme",
  confirmName: "ACME Inc"
})
Type: Private Procedure (requires admin or owner)
slug
string
required
Workspace slug
confirmName
string
required
Exact workspace name for confirmation
This action is irreversible. All boards, posts, comments, and settings will be permanently deleted.

Custom Domain Management

Get Domain Info

const res = await client.workspace.domainInfo.$get({ 
  slug: "acme" 
})
const { domain, plan, defaultDomain } = await res.json()

Create Custom Domain

const res = await client.workspace.createDomain.$post({
  slug: "acme",
  domain: "https://feedback.acme.com"
})
const { ok, host, records } = await res.json()
Custom domains require Starter or Professional plan.

Verify Domain

const res = await client.workspace.verifyDomain.$post({
  slug: "acme",
  checkDns: true
})
const { ok, cnameValid, txtValid, status } = await res.json()

Delete Domain

const res = await client.workspace.deleteDomain.$post({ 
  slug: "acme" 
})

Data Management

Export to CSV

Export all workspace posts to CSV.
const res = await client.workspace.exportCsv.$get({ 
  slug: "acme" 
})
const csvContent = await res.text()
Type: Private Procedure (requires workspace manager permission) CSV Columns:
  • ID, Title, Description, Status, Upvotes
  • Board, Author Name, Author Email
  • Image, Attachments, Created At, Updated At

Import from CSV

const res = await client.workspace.importCsv.$post({
  slug: "acme",
  csvContent: csvString
})
const summary = await res.json()
Type: Private Procedure (requires workspace manager permission)

Build docs developers (and LLMs) love