Get a Changelog
Use these endpoints when you want the changelog feed for a product. Public reads are for published products in public teams, while authenticated reads let external clients access private teams, private products, and draft changelog data.
/v1/public/teams/{teamSlug}/products/{productSlug}/changelogNoneReturns the published changelog for a published product in a public team.
/v1/teams/{teamSlug}/products/{productSlug}/changelogBearer API keyReturns the changelog for the target team and product when the API key is allowed to access it.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| teamSlug | path | Yes | The team that owns the product. Public routes require a public team, while authenticated routes can target private teams. |
| productSlug | path | Yes | The product whose changelog you want to read. Public routes require a published product, while authenticated routes can target private or draft products the API key can access. |
Request examples
The authenticated examples below use the currently selected token from the API token manager above. API key creation for authenticated private-team and private-product reads is plan gated, so use the upgrade link in the token manager if your workspace has not unlocked service API keys yet.
cURL
bash
curl "https://chxngelog.dev/api/v1/public/teams/your-team/products/your-product/changelog"Response shape
{
"data": {
"object": "changelog",
"team": {
"slug": "acme",
"name": "Acme"
},
"product": {
"slug": "ios-app",
"name": "iOS App"
},
"changelog": {
"id": "clg_123",
"name": "iOS App Changelog",
"status": "published"
},
"versions": [
{
"id": "ver_456",
"object": "changelog.version",
"version": "2.4.0",
"title": "Version 2.4.0",
"status": "published",
"publishedAt": "2026-03-11T10:00:00.000Z",
"changeCount": 4
}
]
}
}Visibility rules
- Public reads only return published content.
- Private teams return
404. - Draft or locked products return
404. - Draft changelogs and draft versions return
404or stay omitted from the payload. - In password-protected deployments, middleware can still require Basic auth before the public handler runs.
Authenticated behavior
- Authenticated reads use
/v1/teams/...instead of/v1/public/.... - A valid API key can read private teams and private products in its allowed workspace.
FULLkeys can read any product in the team.SELECTkeys can only read products attached to that key.- Authenticated changelog responses keep the same envelope and fields, but
statuscan bedraft,published, orlocked.
Errors
{
"error": {
"code": "unauthorized",
"message": "Missing bearer token"
}
}Authenticated routes may also return:
forbiddenwhen the API key does not have access to the requested team or productnot_foundwhen the changelog resource does not exist
Related endpoint
Read Get a Version when you need the full change list for one published version.