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.
API Versioning
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
Authentication
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.
Error Handling
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
Returns all surveys configured in your Featurebase organization.
limit- Number of items to return (1-100, default 10)cursor- Cursor for paginationtype- Filter by survey page type (text, link, rating, multiple-choice)isActive- Filter by active status
Returns a list object with:
object- Always "list"data- Array of survey objectsnextCursor- Cursor for next page (null if no more results)
Each survey includes:
id- Unique identifiertitle- Survey titledescription- Survey descriptionisActive- Whether the survey is activeresponseCount- Number of responses receivedtargeting- Targeting configuration (segments, URLs, CSS selectors)pages- Array of survey pages/questionscreatedAt- ISO 8601 timestamp when createdupdatedAt- ISO 8601 timestamp when last updated
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/surveys
- Productionhttps://do.featurebase.app/v2/surveys
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.featurebase.app/_mock/rest-api/v2/surveys?limit=10&cursor=eyJpZCI6IjY3NDM3NTJjYTgxYWU1OWQyNWNmODM0YiJ9&type=rating&isActive=true' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'Success
Array of surveys
Survey pages
Page type
Link target
Sub-type for rating/multiple-choice
ISO 8601 timestamp when created
{ "object": "list", "data": [], "nextCursor": null }
Request
Retrieves a single survey by its unique identifier.
Returns the survey object if found in your organization.
Returns a survey object with:
id- Unique identifiertitle- Survey titledescription- Survey descriptionisActive- Whether the survey is activeresponseCount- Number of responses receivedtargeting- Targeting configurationpages- Array of survey pages/questionscreatedAt- ISO 8601 timestamp when createdupdatedAt- ISO 8601 timestamp when last updated
Each page represents a question or screen in the survey:
type- Page type (text, link, rating, multiple-choice)title- Question titledescription- Optional descriptionlogic- Conditional logic rulesdefaultAction- Default action when no logic matches
404- Survey not found in your organization
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/surveys/{id}
- Productionhttps://do.featurebase.app/v2/surveys/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.featurebase.app/_mock/rest-api/v2/surveys/6743752ca81ae59d25cf834b \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'{ "object": "survey", "id": "6743752ca81ae59d25cf834b", "title": "Get feedback for Feedback module", "description": "Measure what we can improve", "isActive": true, "organization": "5febde12dc56d60012d47db6", "responseCount": 85, "targeting": { "segmentIds": [ … ], "url": [ … ], "css": [ … ], "loginRequired": false }, "pages": [], "createdAt": "2024-11-24T18:49:16.755Z", "updatedAt": "2025-04-10T08:58:51.148Z" }
Request
Retrieves all user responses for a specific survey.
pageId- Filter responses to a specific survey pagelimit- Number of items to return (1-100, default 10)cursor- Cursor for pagination
Returns a list object with:
object- Always "list"data- Array of survey response objectsnextCursor- Cursor for next page (null if no more results)
Each response includes:
id- Unique response identifieruser- User who submitted the response (may be null for anonymous)responses- Array of individual answerscreatedAt- ISO 8601 timestamp when submitted
Each item in the responses array:
pageId- The survey page this response is fortype- Response type (text, rating, multiple-choice)value- The response value
404- Survey not found in your organization
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/surveys/{id}/responses
- Productionhttps://do.featurebase.app/v2/surveys/{id}/responses
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.featurebase.app/_mock/rest-api/v2/surveys/6743752ca81ae59d25cf834b/responses?pageId=6743752ca81ae59d25cf834c&limit=10&cursor=eyJpZCI6IjY3MTJlMmQxNzU5MDRjZTI0YjJmOTYzNyJ9' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'Success
Array of survey responses
Object type identifier
User who submitted the response
Organization ID the contact belongs to
Profile picture URL
Whether manually opted out from changelog
Individual responses to questions
Page ID this response is for
Response type
Response value
Response value
ISO 8601 timestamp when created
{ "object": "list", "data": [], "nextCursor": null }
CommentsCopy for LLM Copy page as Markdown for LLMs View as Markdown Open this page as Markdown Open in ChatGPT Get insights from ChatGPT Open in Claude Get insights from Claude Connect to Cursor Install MCP server on Cursor Connect to VS Code Install MCP server on VS Code
Threaded discussions on posts and changelogs. Comments support voting, moderation, and privacy controls.