# Boards ## List all boards `client.feedback.boards.list(BoardListParamsparams?, RequestOptionsoptions?): BoardListResponse` **get** `/v2/boards` Returns all boards (post categories) for the authenticated organization. Boards are containers for posts/feedback. Each board can have different: - Access controls (public, private, segment-restricted) - Feature toggles (comments, posting enabled) - Custom fields This endpoint returns all boards without pagination. Organizations typically have a small number of boards. ### Parameters - `params: BoardListParams` - `featurebaseVersion?: "2026-01-01.nova" | "2025-12-12.clover"` API version for this request. Defaults to your organization's configured API version if not specified. - `"2026-01-01.nova"` - `"2025-12-12.clover"` ### Returns - `BoardListResponse = Array` - `id: string` Unique identifier - `access: Access` - `adminOnly: boolean` If true, only admins can see this board - `allowedRoles: Array` Role IDs allowed access (empty = all) - `deniedRoles: Array` Role IDs explicitly denied access - `segments: Array` Segment IDs that can access (empty = all) - `createdAt: string` ISO 8601 timestamp when created - `customFields: Array` Custom field IDs attached to this board - `features: Features` - `commentsEnabled: boolean` Whether users can comment on posts - `createdDatesVisible: boolean` Whether creation dates are visible on posts - `postingEnabled: boolean` Whether users can create new posts - `icon: EmojiIcon | PredefinedIcon | URLIcon | null` The board's icon. Can be one of three types: - **emoji**: A single emoji character (e.g., 💡, 🚀, ⭐) - **icon**: A predefined icon from the built-in library (e.g., lightbulb, bug, star) - **url**: A custom image URL (HTTPS required) Can be `null` if no icon is set. - `EmojiIcon` An emoji character as the board icon - `type: "emoji"` Emoji icon type - `"emoji"` - `value: string` A single emoji character - `PredefinedIcon` A predefined icon from the built-in icon library - `type: "icon"` Predefined icon type - `"icon"` - `value: string` Icon name from the predefined icon set (e.g., lightbulb, bug, star, rocket, flag, heart, check, question, megaphone, gift) - `URLIcon` A custom icon loaded from an external URL - `type: "url"` External URL icon type - `"url"` - `value: string` HTTPS URL to a custom icon image (PNG, SVG, or WebP recommended) - `localization: Localization` - `description: Record | null` Localized description - `formPlaceholder: Record | null` Placeholder text in the post creation form - `heroDescription: Record | null` Hero description/subtitle - `heroTitle: Record | null` Hero title shown on the board page - `name: Record` Localized board name (language code → text) - `submitButtonText: Record | null` Submit button text - `name: string` Display name in organization's default locale - `object: "board"` Object type identifier - `"board"` - `postDefaults: PostDefaults` - `visibility: "public" | "authorOnly" | "companyOnly"` Default visibility for new posts - `"public"` - `"authorOnly"` - `"companyOnly"` ### Example ```typescript import Featurebase from 'featurebase-node'; const client = new Featurebase({ apiKey: process.env['FEATUREBASE_API_KEY'], // This is the default and can be omitted }); const boards = await client.feedback.boards.list(); console.log(boards); ``` #### Response ```json [ { "id": "507f1f77bcf86cd799439011", "access": { "adminOnly": false, "allowedRoles": [ "string" ], "deniedRoles": [ "role_blocked" ], "segments": [ "string" ] }, "createdAt": "2023-12-12T00:00:00.000Z", "customFields": [ "cf_priority", "cf_category" ], "features": { "commentsEnabled": true, "createdDatesVisible": true, "postingEnabled": true }, "icon": { "type": "emoji", "value": "💡" }, "localization": { "description": { "en": "Submit and vote on feature ideas" }, "formPlaceholder": { "en": "Describe your feature idea..." }, "heroDescription": { "foo": "string" }, "heroTitle": { "en": "Share your ideas" }, "name": { "en": "Feature Requests", "es": "Solicitudes de funciones" }, "submitButtonText": { "en": "Submit Feedback" } }, "name": "Feature Requests", "object": "board", "postDefaults": { "visibility": "public" } } ] ``` ## Get a board by ID `client.feedback.boards.retrieve(stringid, BoardRetrieveParamsparams?, RequestOptionsoptions?): Board` **get** `/v2/boards/{id}` Retrieves a single board by its unique identifier. Returns the full board object including all access controls, feature toggles, and localization settings. ### Parameters - `id: string` Board unique identifier - `params: BoardRetrieveParams` - `featurebaseVersion?: "2026-01-01.nova" | "2025-12-12.clover"` API version for this request. Defaults to your organization's configured API version if not specified. - `"2026-01-01.nova"` - `"2025-12-12.clover"` ### Returns - `Board` - `id: string` Unique identifier - `access: Access` - `adminOnly: boolean` If true, only admins can see this board - `allowedRoles: Array` Role IDs allowed access (empty = all) - `deniedRoles: Array` Role IDs explicitly denied access - `segments: Array` Segment IDs that can access (empty = all) - `createdAt: string` ISO 8601 timestamp when created - `customFields: Array` Custom field IDs attached to this board - `features: Features` - `commentsEnabled: boolean` Whether users can comment on posts - `createdDatesVisible: boolean` Whether creation dates are visible on posts - `postingEnabled: boolean` Whether users can create new posts - `icon: EmojiIcon | PredefinedIcon | URLIcon | null` The board's icon. Can be one of three types: - **emoji**: A single emoji character (e.g., 💡, 🚀, ⭐) - **icon**: A predefined icon from the built-in library (e.g., lightbulb, bug, star) - **url**: A custom image URL (HTTPS required) Can be `null` if no icon is set. - `EmojiIcon` An emoji character as the board icon - `type: "emoji"` Emoji icon type - `"emoji"` - `value: string` A single emoji character - `PredefinedIcon` A predefined icon from the built-in icon library - `type: "icon"` Predefined icon type - `"icon"` - `value: string` Icon name from the predefined icon set (e.g., lightbulb, bug, star, rocket, flag, heart, check, question, megaphone, gift) - `URLIcon` A custom icon loaded from an external URL - `type: "url"` External URL icon type - `"url"` - `value: string` HTTPS URL to a custom icon image (PNG, SVG, or WebP recommended) - `localization: Localization` - `description: Record | null` Localized description - `formPlaceholder: Record | null` Placeholder text in the post creation form - `heroDescription: Record | null` Hero description/subtitle - `heroTitle: Record | null` Hero title shown on the board page - `name: Record` Localized board name (language code → text) - `submitButtonText: Record | null` Submit button text - `name: string` Display name in organization's default locale - `object: "board"` Object type identifier - `"board"` - `postDefaults: PostDefaults` - `visibility: "public" | "authorOnly" | "companyOnly"` Default visibility for new posts - `"public"` - `"authorOnly"` - `"companyOnly"` ### Example ```typescript import Featurebase from 'featurebase-node'; const client = new Featurebase({ apiKey: process.env['FEATUREBASE_API_KEY'], // This is the default and can be omitted }); const board = await client.feedback.boards.retrieve('507f1f77bcf86cd799439011'); console.log(board.id); ``` #### Response ```json { "id": "507f1f77bcf86cd799439011", "access": { "adminOnly": false, "allowedRoles": [ "string" ], "deniedRoles": [ "role_blocked" ], "segments": [ "string" ] }, "createdAt": "2023-12-12T00:00:00.000Z", "customFields": [ "cf_priority", "cf_category" ], "features": { "commentsEnabled": true, "createdDatesVisible": true, "postingEnabled": true }, "icon": { "type": "emoji", "value": "💡" }, "localization": { "description": { "en": "Submit and vote on feature ideas" }, "formPlaceholder": { "en": "Describe your feature idea..." }, "heroDescription": { "foo": "string" }, "heroTitle": { "en": "Share your ideas" }, "name": { "en": "Feature Requests", "es": "Solicitudes de funciones" }, "submitButtonText": { "en": "Submit Feedback" } }, "name": "Feature Requests", "object": "board", "postDefaults": { "visibility": "public" } } ``` ## Domain Types ### Board - `Board` - `id: string` Unique identifier - `access: Access` - `adminOnly: boolean` If true, only admins can see this board - `allowedRoles: Array` Role IDs allowed access (empty = all) - `deniedRoles: Array` Role IDs explicitly denied access - `segments: Array` Segment IDs that can access (empty = all) - `createdAt: string` ISO 8601 timestamp when created - `customFields: Array` Custom field IDs attached to this board - `features: Features` - `commentsEnabled: boolean` Whether users can comment on posts - `createdDatesVisible: boolean` Whether creation dates are visible on posts - `postingEnabled: boolean` Whether users can create new posts - `icon: EmojiIcon | PredefinedIcon | URLIcon | null` The board's icon. Can be one of three types: - **emoji**: A single emoji character (e.g., 💡, 🚀, ⭐) - **icon**: A predefined icon from the built-in library (e.g., lightbulb, bug, star) - **url**: A custom image URL (HTTPS required) Can be `null` if no icon is set. - `EmojiIcon` An emoji character as the board icon - `type: "emoji"` Emoji icon type - `"emoji"` - `value: string` A single emoji character - `PredefinedIcon` A predefined icon from the built-in icon library - `type: "icon"` Predefined icon type - `"icon"` - `value: string` Icon name from the predefined icon set (e.g., lightbulb, bug, star, rocket, flag, heart, check, question, megaphone, gift) - `URLIcon` A custom icon loaded from an external URL - `type: "url"` External URL icon type - `"url"` - `value: string` HTTPS URL to a custom icon image (PNG, SVG, or WebP recommended) - `localization: Localization` - `description: Record | null` Localized description - `formPlaceholder: Record | null` Placeholder text in the post creation form - `heroDescription: Record | null` Hero description/subtitle - `heroTitle: Record | null` Hero title shown on the board page - `name: Record` Localized board name (language code → text) - `submitButtonText: Record | null` Submit button text - `name: string` Display name in organization's default locale - `object: "board"` Object type identifier - `"board"` - `postDefaults: PostDefaults` - `visibility: "public" | "authorOnly" | "companyOnly"` Default visibility for new posts - `"public"` - `"authorOnly"` - `"companyOnly"` ### Board List Response - `BoardListResponse = Array` - `id: string` Unique identifier - `access: Access` - `adminOnly: boolean` If true, only admins can see this board - `allowedRoles: Array` Role IDs allowed access (empty = all) - `deniedRoles: Array` Role IDs explicitly denied access - `segments: Array` Segment IDs that can access (empty = all) - `createdAt: string` ISO 8601 timestamp when created - `customFields: Array` Custom field IDs attached to this board - `features: Features` - `commentsEnabled: boolean` Whether users can comment on posts - `createdDatesVisible: boolean` Whether creation dates are visible on posts - `postingEnabled: boolean` Whether users can create new posts - `icon: EmojiIcon | PredefinedIcon | URLIcon | null` The board's icon. Can be one of three types: - **emoji**: A single emoji character (e.g., 💡, 🚀, ⭐) - **icon**: A predefined icon from the built-in library (e.g., lightbulb, bug, star) - **url**: A custom image URL (HTTPS required) Can be `null` if no icon is set. - `EmojiIcon` An emoji character as the board icon - `type: "emoji"` Emoji icon type - `"emoji"` - `value: string` A single emoji character - `PredefinedIcon` A predefined icon from the built-in icon library - `type: "icon"` Predefined icon type - `"icon"` - `value: string` Icon name from the predefined icon set (e.g., lightbulb, bug, star, rocket, flag, heart, check, question, megaphone, gift) - `URLIcon` A custom icon loaded from an external URL - `type: "url"` External URL icon type - `"url"` - `value: string` HTTPS URL to a custom icon image (PNG, SVG, or WebP recommended) - `localization: Localization` - `description: Record | null` Localized description - `formPlaceholder: Record | null` Placeholder text in the post creation form - `heroDescription: Record | null` Hero description/subtitle - `heroTitle: Record | null` Hero title shown on the board page - `name: Record` Localized board name (language code → text) - `submitButtonText: Record | null` Submit button text - `name: string` Display name in organization's default locale - `object: "board"` Object type identifier - `"board"` - `postDefaults: PostDefaults` - `visibility: "public" | "authorOnly" | "companyOnly"` Default visibility for new posts - `"public"` - `"authorOnly"` - `"companyOnly"`