Skip to main content
Changelogs

Publish a changelog

Publishes a changelog and optionally sends an email notification to subscribers.

POST
/v2/changelogs/{id}/publish

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 the changelog after the publish (state: "live" once published), plus:

  • warnings - Non-fatal problems of the publish, e.g. an email that could not be sent. The changelog is still published.
  • emailSent - Whether subscriber emails were sent

A scheduled publish returns the changelog as it is now; it goes live at scheduledDate.

Errors

  • 400 - Invalid changelog ID or scheduled date is not in the future
  • 404 - Changelog not found or doesn't belong to your organization
Authorizationstringheaderrequired

API key as Bearer token. Use: Authorization: Bearer sk_...

idstringrequired

Changelog unique identifier

Example: 507f1f77bcf86cd799439011
Featurebase-Versionenum<string>header

API version for this request. Defaults to your organization's configured API version if not specified.

Available options: 2026-08-19.orbit, 2026-01-01.nova, 2025-12-12.clover
Example: 2026-08-19.orbit

Body

application/json
localesenum<string>[]default:[]

An array of locales to publish the changelog to. An empty array publishes to all locales.

scheduledDatestring | null

The date when the changelog should be published. Must be a future date. Pass null or omit to publish immediately.

Example: 2023-12-01T00:00:00Z
sendEmailboolean | nulldefault:false

A flag indicating whether to send an email notification to subscribers.

Example: true

Response

application/json

Success

allowedSegmentIdsstring[]required

Segment IDs that are allowed to view this changelog

availableLocalesstring[]required

Array of locale codes where the changelog has content

categoriesobject[]required

Categories the changelog belongs to

commentCountnumberrequired

Number of comments

Example: 2
contentstringrequired

Content in HTML format

Example: <p>Your changelog content in HTML format.</p>
createdAtstringrequired

ISO 8601 timestamp when created

Example: 2023-12-12T00:00:00.000Z
datestringrequired

Publication date as ISO 8601 timestamp

Example: 2023-05-07T12:59:59.000Z
emailSentbooleanrequired

Whether subscriber emails were sent for this publish

Example: false
emailSentToSubscribersbooleanrequired

Whether email notification was sent to subscribers

Example: true

Featured image URL

Example: https://cdn.example.com/images/feature.png
idstringrequired

Unique identifier

Example: 6457e3ff70afca5d8c27dccc
isDraftDiffersFromLivebooleanrequired

Whether the draft content differs from the published live content

Example: false
isPublishedbooleanrequired

Whether the changelog is published (has a live version) in this locale

Example: true
localeenum<string>required

Locale of the changelog

Available options: ar, am, fa, ht, lo, my, pa, ps, so, tl, ur, he, ta, te, mr, gu, kn, ml, ha, jv, yo, ig, uz, ne, sd, az, si, km, kk, 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
Example: en
markdownContentstring | nullrequired

Content in markdown format

Example: Your changelog content in markdown format.
notificationsobjectrequired

Notification settings for each locale

objectenum<string>required

Object type identifier

Available options: changelog
Example: changelog
organizationstringrequired

Organization identifier

Example: myorg
publishedLocalesstring[]required

Array of locale codes where the changelog is published

slugstringrequired

URL-friendly slug

Example: your-awesome-changelog
slugsobjectrequired

URL-friendly slugs for each locale

stateenum<string>required

State of the changelog

Available options: live, draft
Example: live
titlestringrequired

Changelog title

Example: Your awesome changelog!
updatedAtstringrequired

ISO 8601 timestamp when updated

Example: 2023-12-13T00:00:00.000Z
urlstringrequired

Public URL to view the changelog

Example: https://myorg.featurebase.app/en/changelog/your-awesome-changelog
warningsstring[]required

Non-fatal problems of the publish. The changelog is live; each entry says what did not happen, e.g. an email that was not sent.