Boards (post categories) organize feedback into distinct containers with their own settings.
Featurebase API (2026-01-01.nova)
Welcome to the Featurebase API. This API allows you to programmatically interact with your Featurebase organization.
This documentation reflects API version 2026-01-01.nova.
This API uses date-based versioning. Each version is identified by a release date and slug, e.g., 2026-01-01.nova.
Specifying a Version
Include the version in the request header:
Featurebase-Version: 2026-01-01.novaOr set a default version for your organization in the dashboard settings.
Version Compatibility
- Newer versions may add new fields to responses (always backwards-compatible)
- Breaking changes (removed/renamed fields, changed behavior) only occur in new versions
- Your integration will continue to work as long as you pin to a specific version
All API requests require authentication via API key.
Include in headers:
Authorization: Bearer <api-key>Create and manage your API keys in the Featurebase dashboard.
The API uses conventional HTTP response codes to indicate success or failure:
2xx- Success4xx- Client errors (bad request, unauthorized, not found, etc.)5xx- Server errors (internal error)
Error Response Format
All errors follow a consistent format:
{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "Post not found",
"param": "id",
"status": 404
}
}Error Types
| Type | Description |
|---|---|
authentication_error | Authentication failed (401) |
authorization_error | Permission denied (403) |
invalid_request_error | Invalid request parameters or resource not found (400, 404, 410) |
api_error | Server-side error (500) |
rate_limit_error | Too many requests (429) |
Request
Adds a voter (upvote) to a post.
To add a vote on behalf of a user, provide one or more identification fields:
id- Featurebase user IDuserId- External SSO user ID from your systememail- User's email addressname- Display name (used when creating a new user)profilePicture- Profile picture URL (used when creating a new user)
Resolution priority: id > userId > email > authenticated user
If no fields are provided, the authenticated user's vote is added.
If the user doesn't exist, a new customer will be created with the provided information.
If the user has already voted on this post, the request succeeds but no duplicate vote is added.
Returns a confirmation object with:
object- Always "voter"added- Always trueid- The voter's user IDpostId- The post ID the vote was added to
Requires member-level access or higher.
External user ID from your system (matched via SSO)
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/posts/{id}/voters
- Productionhttps://do.featurebase.app/v2/posts/{id}/voters
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.featurebase.app/_mock/rest-api/v2/posts/507f1f77bcf86cd799439011/voters \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Featurebase-Version: 2026-01-01.nova' \
-d '{
"id": "507f1f77bcf86cd799439011",
"userId": "usr_12345",
"email": "john@example.com",
"name": "John Doe",
"profilePicture": "https://example.com/avatar.png"
}'{ "object": "voter", "added": true, "id": "507f1f77bcf86cd799439011", "postId": "507f1f77bcf86cd799439012" }
Request
Removes a voter (upvote) from a post.
To remove a vote on behalf of a user, provide one or more identification fields:
id- Featurebase user IDuserId- External SSO user ID from your systememail- User's email address
Resolution priority: id > userId > email > authenticated user
If no fields are provided, the authenticated user's vote will be removed.
Returns a confirmation object with:
object- Always "voter"removed- Always trueid- The voter's user IDpostId- The post ID the vote was removed from
Requires member-level access or higher.
External user ID from your system (matched via SSO)
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/posts/{id}/voters
- Productionhttps://do.featurebase.app/v2/posts/{id}/voters
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.featurebase.app/_mock/rest-api/v2/posts/507f1f77bcf86cd799439011/voters \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Featurebase-Version: 2026-01-01.nova' \
-d '{
"id": "507f1f77bcf86cd799439011",
"userId": "usr_12345",
"email": "john@example.com"
}'{ "object": "voter", "removed": true, "id": "507f1f77bcf86cd799439011", "postId": "507f1f77bcf86cd799439012" }
Comments
Threaded discussions on posts and changelogs. Comments support voting, moderation, and privacy controls.