---
title: Get source changelog
description: >-
  Returns the source's tracked CHANGELOG.md (or the file selected by ?path=),
  sliced by characters (?offset=, ?limit=) or by a cl100k_base token budget
  (?tokens=).
---
# Get source changelog

## GET /sources/{slug}/changelog

`GET https://api.releases.sh/v1/sources/{slug}/changelog`

Returns the source's tracked CHANGELOG.md (or the file selected by `?path=`), sliced by characters (`?offset=`, `?limit=`) or by a cl100k_base token budget (`?tokens=`). Page with `nextOffset`. Always includes the full `files` index so clients can render a file picker.

**Auth:** optional Bearer token.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `path` | query | string | no | Repo path of the file to return, from `files[].path`. Defaults to the root CHANGELOG. |
| `offset` | query | integer | no |  |
| `limit` | query | integer | no | Slice length in characters. |
| `tokens` | query | integer | no | Slice to this many cl100k_base tokens instead of `limit` characters. |
| `slug` | path | string | yes |  |

**Responses**

- `200` Changelog slice with file index
- `404` Source or changelog file not found

## GET /orgs/{orgSlug}/sources/{sourceSlug}/changelog

`GET https://api.releases.sh/v1/orgs/{orgSlug}/sources/{sourceSlug}/changelog`

Returns the source's tracked CHANGELOG.md (or the file selected by `?path=`), sliced by characters (`?offset=`, `?limit=`) or by a cl100k_base token budget (`?tokens=`). Page with `nextOffset`. Always includes the full `files` index so clients can render a file picker.

**Auth:** optional Bearer token.

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `path` | query | string | no | Repo path of the file to return, from `files[].path`. Defaults to the root CHANGELOG. |
| `offset` | query | integer | no |  |
| `limit` | query | integer | no | Slice length in characters. |
| `tokens` | query | integer | no | Slice to this many cl100k_base tokens instead of `limit` characters. |
| `orgSlug` | path | string | yes |  |
| `sourceSlug` | path | string | yes |  |

**Responses**

- `200` Changelog slice with file index
- `404` Source or changelog file not found

Full request and response schemas: [OpenAPI 3.1 spec](https://api.releases.sh/v1/openapi.json).
