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
Retrieves a single changelog by its unique identifier or slug.
Returns the full changelog object including:
- Title and content (in HTML and markdown formats)
- Featured image
- Publication date
- Categories
- Comment count
- Email notification status
The changelog content is returned in the organization's default locale. If the changelog doesn't exist in the default locale, the first available locale is used.
Both published (live) and draft changelogs can be retrieved. The state field indicates the current publication status.
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/changelogs/{id}
- Productionhttps://do.featurebase.app/v2/changelogs/{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/changelogs/507f1f77bcf86cd799439011 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'Success
Public URL to view the changelog
Content in HTML format
Content in markdown format
Featured image URL
Locale of the changelog
Whether the changelog is published (has a live version) in this locale
Whether the draft content differs from the published live content
Array of locale codes where the changelog is published
Array of locale codes where the changelog has content
URL-friendly slugs for each locale
Categories the changelog belongs to
Notification settings for each locale
Segment IDs that are allowed to view this changelog
Whether email notification was sent to subscribers
{ "object": "changelog", "id": "6457e3ff70afca5d8c27dccc", "title": "Your awesome changelog!", "slug": "your-awesome-changelog", "url": "https://myorg.featurebase.app/en/changelog/your-awesome-changelog", "content": "<p>Your changelog content in HTML format.</p>", "markdownContent": "Your changelog content in markdown format.", "featuredImage": "https://cdn.example.com/images/feature.png", "date": "2023-05-07T12:59:59.000Z", "state": "live", "locale": "en", "isPublished": true, "isDraftDiffersFromLive": false, "publishedLocales": [ "en", "de" ], "availableLocales": [ "en", "de", "fr" ], "slugs": { "en": "your-awesome-changelog", "de": "dein-tolles-changelog" }, "commentCount": 2, "categories": [ { … } ], "organization": "myorg", "notifications": { "property1": { … }, "property2": { … } }, "allowedSegmentIds": [], "emailSentToSubscribers": true, "createdAt": "2023-12-12T00:00:00.000Z", "updatedAt": "2023-12-13T00:00:00.000Z" }
Request
Updates an existing changelog by its unique identifier.
You can update:
- title - The changelog title
- htmlContent - HTML content (one of htmlContent or markdownContent)
- markdownContent - Markdown content (one of htmlContent or markdownContent)
- categories - Array of category names
- featuredImage - Featured image URL
- allowedSegmentIds - Segment IDs for access control
- date - The date of the changelog
Provide content in one of two formats:
htmlContent- HTML content of the changelogmarkdownContent- Markdown content of the changelog
Note: For images in content, you can use:
- External URLs in img src attributes (automatically uploaded to our storage)
- Base64 encoded data URIs (data:image/...) which are processed and stored
Provide category names as an array. The categories must already exist in your organization.
Example: ["New", "Fixed", "Improved"]
Returns the updated changelog object with all fields populated.
400- Invalid changelog ID format or invalid input404- Changelog not found or doesn't belong to your organization
The HTML content of the changelog. Provide either htmlContent or markdownContent. For images, external URLs and base64 data URIs are automatically processed and stored.
The markdown content of the changelog. Provide either htmlContent or markdownContent. For images, external URLs and base64 data URIs are automatically processed and stored.
An array of category names to which the changelog belongs
The URL of the featured image for the changelog. External URLs will be uploaded to our storage.
An array of segment IDs that are allowed to view the changelog
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/changelogs/{id}
- Productionhttps://do.featurebase.app/v2/changelogs/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
https://docs.featurebase.app/_mock/rest-api/v2/changelogs/507f1f77bcf86cd799439011 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Featurebase-Version: 2026-01-01.nova' \
-d '{
"title": "Updated Features Release",
"htmlContent": "<p>Updated features to explore.</p>",
"markdownContent": "Updated features to explore.",
"categories": [
"New",
"Fixed",
"Improved"
],
"featuredImage": "https://example.com/image.png",
"allowedSegmentIds": [
"507f1f77bcf86cd799439011"
],
"date": "2024-01-15"
}'Success
Public URL to view the changelog
Content in HTML format
Content in markdown format
Featured image URL
Locale of the changelog
Whether the changelog is published (has a live version) in this locale
Whether the draft content differs from the published live content
Array of locale codes where the changelog is published
Array of locale codes where the changelog has content
URL-friendly slugs for each locale
Categories the changelog belongs to
Notification settings for each locale
Segment IDs that are allowed to view this changelog
Whether email notification was sent to subscribers
{ "object": "changelog", "id": "6457e3ff70afca5d8c27dccc", "title": "Your awesome changelog!", "slug": "your-awesome-changelog", "url": "https://myorg.featurebase.app/en/changelog/your-awesome-changelog", "content": "<p>Your changelog content in HTML format.</p>", "markdownContent": "Your changelog content in markdown format.", "featuredImage": "https://cdn.example.com/images/feature.png", "date": "2023-05-07T12:59:59.000Z", "state": "live", "locale": "en", "isPublished": true, "isDraftDiffersFromLive": false, "publishedLocales": [ "en", "de" ], "availableLocales": [ "en", "de", "fr" ], "slugs": { "en": "your-awesome-changelog", "de": "dein-tolles-changelog" }, "commentCount": 2, "categories": [ { … } ], "organization": "myorg", "notifications": { "property1": { … }, "property2": { … } }, "allowedSegmentIds": [], "emailSentToSubscribers": true, "createdAt": "2023-12-12T00:00:00.000Z", "updatedAt": "2023-12-13T00:00:00.000Z" }
Request
Deletes a changelog by its unique identifier.
The changelog and all associated comments are permanently deleted. This action cannot be undone.
Only organization admins can delete changelogs.
Returns a deletion confirmation:
{
"id": "6457e3ff70afca5d8c27dccc",
"object": "changelog",
"deleted": true
}400- Invalid changelog ID format404- Changelog not found or doesn't belong to your organization
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/changelogs/{id}
- Productionhttps://do.featurebase.app/v2/changelogs/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.featurebase.app/_mock/rest-api/v2/changelogs/507f1f77bcf86cd799439011 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'{ "id": "507f1f77bcf86cd799439011", "object": "changelog", "deleted": true }
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.