Skip to main content
Changelogs

Get a changelog

Retrieves a single Changelog by its unique identifier. Supply the id returned by the API, not its public-page slug.

GET
/v2/outbound/changelogs/{id}

Returns the full Changelog object including:

  • Title and content (in HTML and markdown formats)
  • Featured image
  • Publication date
  • Categories
  • Comment count
  • Email notification status

Localization

The 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.

Use allTranslations=true to include a locale-keyed translations dictionary. With this option, state=live|draft selects the state for both primary content and translations (default: live). Locales without that state are omitted. Stored disabled locales remain readable. If the default locale has no content in that state, another locale in that state is used; if none exists, return 404. Without allTranslations=true, state is ignored and the existing live-to-draft fallback is unchanged. HTML media URLs are signed for each returned translation.

State

Both published (live) and draft Changelogs can be retrieved. The state field indicates the current publication status.

Errors

  • 400 - Invalid Changelog ID format
  • 404 - Changelog not found or doesn't belong to your organization

Compatibility

Changelogs appear as Updates in the dashboard. Keep using /v2/outbound/changelogs, client.outbound.changelogs, and the changelog.published webhook. This reference describes Pulsar. The original /v2/changelogs routes still work; their behavior follows the selected API version. The Outbound paths require Pulsar or later. In Pulsar, the API key owner needs a full seat and the manage_changelogs permission.

Authorizationstringheaderrequired

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

idstringrequired

Changelog unique identifier

Example: 507f1f77bcf86cd799439011
allTranslationsenum<string>query

Include a locale-keyed translations dictionary. Omitted or false preserves the existing response.

Available options: true, false
stateenum<string>query

Version for allTranslations=true, defaulting to live. Ignored otherwise. Locales without this version are omitted.

Available options: live, draft
Featurebase-Versionenum<string>header

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

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

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
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!
translationsobject

Locale-keyed content, included only when allTranslations=true. Each entry uses the requested live or draft state.

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