## Publish a changelog **post** `/v2/changelogs/{id}/publish` Publishes a changelog and optionally sends an email notification to subscribers. ### Optional Fields - `sendEmail` - Whether to send an email notification to subscribers (default: false) - `locales` - Array of locales to publish. An empty array publishes to all available locales - `scheduledDate` - A future date/time when the changelog should be published ### Scheduling If `scheduledDate` is provided: - Must be a future date - The changelog will be scheduled for publishing at that time - Any existing scheduled publish for the same locales will be cancelled and replaced ### Email Notifications If `sendEmail` is true: - Email notifications are sent to all subscribers in the published locales - Emails are only sent once per locale (won't resend on republish) ### Response Returns a success confirmation: ```json { "success": true, "state": "published" } ``` Or for scheduled publishes: ```json { "success": true, "state": "scheduled" } ``` ### Errors - `400` - Invalid changelog ID or scheduled date is not in the future - `404` - Changelog not found or doesn't belong to your organization ### Path Parameters - `id: string` Changelog unique identifier ### Header Parameters - `"Featurebase-Version": optional "2026-01-01.nova" or "2025-12-12.clover"` - `"2026-01-01.nova"` - `"2025-12-12.clover"` ### Body Parameters - `locales: optional array of "bn" or "bs" or "pt-BR" or 39 more` An array of locales to publish the changelog to. An empty array publishes to all locales. - `"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"` - `scheduledDate: optional string` The date when the changelog should be published. Must be a future date. Pass null or omit to publish immediately. - `sendEmail: optional boolean` A flag indicating whether to send an email notification to subscribers. ### Returns - `PublishUnpublishSuccess object { success, state }` - `success: true` Indicates the operation was successful - `true` - `state: optional "published" or "scheduled" or "unpublished"` The state of the changelog after the operation - `"published"` - `"scheduled"` - `"unpublished"` ### Example ```http curl https://do.featurebase.app/v2/changelogs/$ID/publish \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $FEATUREBASE_API_KEY" \ -d '{ "locales": [ "en", "de" ], "scheduledDate": "2023-12-01T00:00:00Z", "sendEmail": true }' ``` #### Response ```json { "success": true, "state": "published" } ```