List Boards
Get all public boards for a workspace.
const res = await client.board.byWorkspaceSlug.$get({
slug: "acme"
})
const { boards } = await res.json()
Type: Public Procedure
Get Board Settings
Get detailed settings for all boards (admin view).
const res = await client.board.settingsByWorkspaceSlug.$get({
slug: "acme"
})
const { boards } = await res.json()
Type: Private Procedure
Array of boards with additional settings like visibility, sort order, and post counts
Create Board
Create a new feedback board.
const res = await client.board.create.$post({
slug: "acme",
name: "Feature Requests",
boardSlug: "features",
isPublic: true
})
const { board } = await res.json()
Type: Private Procedure (requires board manager permission)
Board name (1-64 characters)
Custom board slug (auto-generated if not provided)
Whether board is publicly accessible (default: true)
Plan Limits:
- Free: 3 non-system boards
- Starter: 10 boards
- Professional: Unlimited boards
Update Board Settings
Update settings for a specific board.
const res = await client.board.updateSettings.$post({
slug: "acme",
boardSlug: "features",
patch: {
isPublic: false,
allowAnonymous: true,
allowComments: true,
hidePublicMemberIdentity: false
}
})
Type: Private Procedure (requires board manager permission)
Update Global Settings
Apply settings to all non-system boards.
const res = await client.board.updateGlobalSettings.$post({
slug: "acme",
patch: {
allowAnonymous: false,
allowComments: true
}
})
Type: Private Procedure (requires board manager permission)
Delete Board
Delete a board and all its posts.
const res = await client.board.delete.$post({
slug: "acme",
boardSlug: "old-board"
})
Type: Private Procedure (requires board manager permission)
System boards (Roadmap, Changelog) cannot be deleted.
Get all tags for a workspace with usage counts.
const res = await client.board.tagsByWorkspaceSlug.$get({
slug: "acme"
})
const { tags } = await res.json()
Type: Public Procedure
Number of posts with this tag
Create Tag
const res = await client.board.tagsCreate.$post({
slug: "acme",
name: "Enhancement",
color: "#3b82f6"
})
Type: Private Procedure (requires board manager permission)
Tag name (1-64 characters)
Hex color code (e.g., “#3b82f6”)
Plan Limits:
- Free: 10 tags
- Starter: 50 tags
- Professional: Unlimited tags
Delete Tag
const res = await client.board.tagsDelete.$post({
slug: "acme",
tagSlug: "old-tag"
})
Type: Private Procedure (requires board manager permission)
Search Posts
Search posts across all boards.
const res = await client.board.searchPostsByWorkspaceSlug.$get({
slug: "acme",
q: "dark mode"
})
const { posts } = await res.json()
Type: Public Procedure
Search query (2-128 characters)
Up to 15 matching posts, sorted by relevance (upvotes + recency)
Get Post Count
Get total post count with optional filters.
const res = await client.board.postCountByWorkspaceSlug.$get({
slug: "acme",
statuses: ["planned", "progress"],
boardSlugs: ["features"],
tagSlugs: ["ui"],
search: "dark mode"
})
const { count } = await res.json()
Type: Public Procedure
Filter by roadmap statuses
Posts by Board
Get all posts for a specific board.
const res = await client.board.postsByBoard.$get({
slug: "acme",
boardSlug: "features"
})
const { posts } = await res.json()
Type: Private Procedure
Whether current user voted
Whether author is workspace owner
Get Post Detail
Get full details for a single post.
const res = await client.board.postDetail.$get({
postId: "post-123"
})
const { post, board, tags, comments, author } = await res.json()
Type: Private Procedure
Complete post object with all metadata
Tags assigned to this post
All comments on this post
Update Post Metadata
Update post status, pins, and locks.
const res = await client.board.updatePostMeta.$post({
postId: "post-123",
roadmapStatus: "progress",
isPinned: true,
isLocked: false,
isFeatured: true
})
Type: Private Procedure (requires moderation permission)
New status (pending, planned, progress, review, completed, closed)
Move Post to Board
Move a post to a different board.
const res = await client.board.updatePostBoard.$post({
postId: "post-123",
boardSlug: "bugs"
})
Type: Private Procedure (requires moderation permission)