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
Custom domain if configured
Current plan (free, starter, professional)
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
Workspace name (1-64 characters)
URL-friendly workspace slug (lowercase, alphanumeric)
IANA timezone (e.g., “America/New_York”)
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
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
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
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
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)
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)
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)
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)