# List all changelogs 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 ### Pagination This endpoint uses cursor-based pagination: - limit - Number of changelogs to return (1-100, default 10) - cursor - Opaque cursor from a previous response's nextCursor field Example: To paginate through results: 1. First request: GET /v2/changelogs?limit=10 2. If nextCursor is not null, use it for the next page 3. Next request: GET /v2/changelogs?limit=10&cursor={nextCursor} ### Response Format Returns a list object with: - object - Always "list" - data - Array of changelog objects - nextCursor - Cursor for the next page (null if no more results) ### Filtering Filter changelogs using query parameters: - id - Find a specific changelog by ID or slug - q - Search query for title/content - categories - Filter by category names - locale - Get changelogs in a specific locale (defaults to org default) - state - Filter by state: live, draft, or all - startDate - Include changelogs dated on or after this date - endDate - Include changelogs dated on or before this date ### Sorting Results are sorted by date (descending by default): - sortBy - Field to sort by (currently only date) - sortOrder - Sort direction: asc or desc (default: desc) Endpoint: GET /v2/changelogs Version: 2026-01-01.nova Security: bearerAuth ## Header parameters: - `Featurebase-Version` (string) API version for this request. Defaults to your organization's configured API version if not specified. Example: "2026-01-01.nova" ## Query parameters: - `id` (string) Find changelog by its id (also accepts slug) Example: "6457e3ff70afca5d8c27dccc" - `q` (string) Search for changelogs by title or content Example: "new feature" - `categories` (any) Filter changelogs by category names (single value or array) Example: ["New","Fixed"] - `locale` (string) The locale of the changelogs. Defaults to the organization default locale. Enum: "bn", "bs", "pt-BR", "bg", "ca", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "hi", "hu", "id", "it", "ja", "ko", "lv", "lt", "ms", "mn", "nb", "pl", "pt", "ro", "ru", "sr", "zh-CN", "sk", "sl", "es", "sw", "sv", "th", "zh-TW", "tr", "uk", "vi" - `state` (string) The state of the changelog. Use "all" to get both draft and live changelogs. Enum: "draft", "live", "all" - `startDate` (string,null) Include Changelogs dated on or after the specified start date Example: "2024-01-01" - `endDate` (string,null) Include Changelogs dated on or before the specified end date Example: "2024-12-31" - `limit` (integer) Maximum number of changelogs to return Example: 10 - `cursor` (string) Cursor for pagination. Use nextCursor from previous response. Example: "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" - `sortBy` (string) Field to sort by Enum: "date" - `sortOrder` (string) Sort direction Enum: "asc", "desc" ## Response 200 fields (application/json): - `object` (string, required) Object type identifier Enum: "list" - `data` (array, required) Array of changelogs Example: [] - `data.id` (string, required) Unique identifier Example: "6457e3ff70afca5d8c27dccc" - `data.title` (string, required) Changelog title Example: "Your awesome changelog!" - `data.slug` (string, required) URL-friendly slug Example: "your-awesome-changelog" - `data.url` (string, required) Public URL to view the changelog Example: "https://myorg.featurebase.app/en/changelog/your-awesome-changelog" - `data.content` (string, required) Content in HTML format Example: "

Your changelog content in HTML format.

" - `data.markdownContent` (string,null, required) Content in markdown format Example: "Your changelog content in markdown format." - `data.featuredImage` (string,null, required) Featured image URL Example: "https://cdn.example.com/images/feature.png" - `data.date` (string, required) Publication date as ISO 8601 timestamp Example: "2023-05-07T12:59:59.000Z" - `data.state` (string, required) State of the changelog Enum: "live", "draft" - `data.locale` (string, required) Locale of the changelog Enum: "bn", "bs", "pt-BR", "bg", "ca", "hr", "cs", "da", "nl", "en", "et", "fi", "fr", "de", "el", "hi", "hu", "id", "it", "ja", "ko", "lv", "lt", "ms", "mn", "nb", "pl", "pt", "ro", "ru", "sr", "zh-CN", "sk", "sl", "es", "sw", "sv", "th", "zh-TW", "tr", "uk", "vi" - `data.isPublished` (boolean, required) Whether the changelog is published (has a live version) in this locale Example: true - `data.isDraftDiffersFromLive` (boolean, required) Whether the draft content differs from the published live content - `data.publishedLocales` (array, required) Array of locale codes where the changelog is published Example: ["en","de"] - `data.availableLocales` (array, required) Array of locale codes where the changelog has content Example: ["en","de","fr"] - `data.slugs` (object, required) URL-friendly slugs for each locale Example: {"en":"your-awesome-changelog","de":"dein-tolles-changelog"} - `data.commentCount` (number, required) Number of comments Example: 2 - `data.categories` (array, required) Categories the changelog belongs to - `data.categories.id` (string, required) Category unique identifier Example: "6438a1efda3640f8feb72121" - `data.categories.name` (string, required) Category name Example: "New Features" - `data.categories.roles` (array) Roles allowed to view this category Example: [] - `data.organization` (string, required) Organization identifier Example: "myorg" - `data.notifications` (object, required) Notification settings for each locale - `data.allowedSegmentIds` (array, required) Segment IDs that are allowed to view this changelog Example: [] - `data.emailSentToSubscribers` (boolean, required) Whether email notification was sent to subscribers Example: true - `data.createdAt` (string, required) ISO 8601 timestamp when created Example: "2023-12-12T00:00:00.000Z" - `data.updatedAt` (string, required) ISO 8601 timestamp when updated Example: "2023-12-13T00:00:00.000Z" - `nextCursor` (string,null, required) Cursor for fetching the next page (cursor-based pagination) Example: "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" - `pagination` (object) Pagination metadata for page-based requests - `pagination.page` (number, required) Current page number Example: 1 - `pagination.limit` (number, required) Items per page Example: 10 - `pagination.total` (number, required) Total number of items Example: 42 - `pagination.totalPages` (number, required) Total number of pages Example: 5 ## Response 400 fields (application/json): - `error` (object, required) - `error.type` (string, required) The type of error returned Enum: "invalid_request_error" - `error.code` (string, required) Machine-readable error code Enum: "invalid_cursor" - `error.message` (string, required) Human-readable error message Example: "An error occurred" - `error.param` (string) The parameter that caused the error (if applicable) Example: "id" - `error.status` (number, required) HTTP status code Enum: 400