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 changelogs for the authenticated organization.
Changelogs are release notes and updates that keep users informed about new features, improvements, and bug fixes. Each changelog can have:
- Multiple translations (locales)
- Categories for organization
- Featured images
- Scheduled publishing
This endpoint uses cursor-based pagination:
limit- Number of changelogs to return (1-100, default 10)cursor- Opaque cursor from a previous response'snextCursorfield
Example: To paginate through results:
- First request:
GET /v2/changelogs?limit=10 - If
nextCursoris not null, use it for the next page - Next request:
GET /v2/changelogs?limit=10&cursor={nextCursor}
Returns a list object with:
object- Always "list"data- Array of changelog objectsnextCursor- Cursor for the next page (null if no more results)
Filter changelogs using query parameters:
id- Find a specific changelog by ID or slugq- Search query for title/contentcategories- Filter by category nameslocale- Get changelogs in a specific locale (defaults to org default)state- Filter by state:live,draft, orallstartDate- Include changelogs dated on or after this dateendDate- Include changelogs dated on or before this date
Results are sorted by date (descending by default):
sortBy- Field to sort by (currently onlydate)sortOrder- Sort direction:ascordesc(default:desc)
Filter changelogs by category names (single value or array)
Filter changelogs by category names (single value or array)
The locale of the changelogs. Defaults to the organization default locale.
The state of the changelog. Use "all" to get both draft and live changelogs.
Include Changelogs dated on or after the specified start date
Include Changelogs dated on or before the specified end date
Cursor for pagination. Use nextCursor from previous response.
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/changelogs
- Productionhttps://do.featurebase.app/v2/changelogs
- 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?id=6457e3ff70afca5d8c27dccc&q=new+feature&categories=New%2CFixed&locale=en&state=live&startDate=2024-01-01&endDate=2024-12-31&limit=10&cursor=eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9&sortBy=date&sortOrder=desc' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Featurebase-Version: 2026-01-01.nova'Success
Array of changelogs
Public URL to view the changelog
Content in HTML format
Content in markdown format
Featured image URL
Publication date as ISO 8601 timestamp
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
ISO 8601 timestamp when created
Cursor for fetching the next page (cursor-based pagination)
{ "object": "list", "data": [], "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9", "pagination": { "page": 1, "limit": 10, "total": 42, "totalPages": 5 } }
Request
Creates a new changelog for the authenticated organization.
title- The title of the changelog
Provide content in one of two formats (at least one is required):
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
categories- Array of category names (e.g., ["New", "Fixed", "Improved"])featuredImage- URL of the featured image (external URLs are uploaded to our storage)allowedSegmentIds- Array of segment IDs that are allowed to view the changeloglocale- The locale of the changelog (defaults to organization default)date- The date of the changelogstate- The state of the changelog:draft(default) orlive
Returns the created changelog object.
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
The locale of the changelog, defaulting to the organization default locale
- Mock serverhttps://docs.featurebase.app/_mock/rest-api/v2/changelogs
- Productionhttps://do.featurebase.app/v2/changelogs
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.featurebase.app/_mock/rest-api/v2/changelogs \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Featurebase-Version: 2026-01-01.nova' \
-d '{
"title": "New Features Update",
"htmlContent": "<p>Exciting new features to explore.</p>",
"markdownContent": "Exciting new features to explore.",
"categories": [
"New",
"Fixed",
"Improved"
],
"featuredImage": "https://example.com/image.png",
"allowedSegmentIds": [
"507f1f77bcf86cd799439011"
],
"locale": "en",
"date": "2024-01-15",
"state": "draft"
}'Created
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
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" }
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.