Skip to content

Get a project release changelog ​

GET/api/v2/workspaces/{slug}/projects/{project_id}/releases/{pk}/changelog/

Read the changelog of a project release. Each release has exactly one changelog, a rich-text document for release notes that is separate from the release description.

A release created through the API starts without a changelog. The first read creates an empty one, with description_html set to <p></p> and description_json set to {}, and returns it. Every later read returns the same record.

This read runs no role check in the project, so it works even if you can't view the release.

Path parameters ​

slug:requiredstring

The workspace slug. It appears in your Plane URLs. In https://app.plane.so/my-team/projects/, the slug is my-team.

project_id:requiredstring

The project the release belongs to. Accepts the project UUID or its bare identifier, for example ENG.

pk:requiredstring (uuid)

The id of the release whose changelog you want.

Scopes ​

releases:read

Errors ​

StatusCodeCause
401unauthorizedMissing or invalid credentials.
402payment_requiredProject releases aren't enabled on your plan.
403forbiddenYour token scope doesn't allow this.
404not_foundNo release with this id in this project, or no such workspace or project.
406not_acceptableThe Accept header asks for a representation the API can't produce.
429rate_limitedThrottled. Honor the Retry-After header before retrying.
Get a project release changelog
bash
curl -X GET \
  "https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/releases/3e8a1f52-7c4b-4d9e-a6f1-0b2c5d8e9f14/changelog/" \
  -H "X-Api-Key: $PLANE_API_KEY"
Response200
json
{
  "id": "8b5d3f20-9c6e-4a17-b2d8-4e0f1a7c6b95",
  "release_id": "3e8a1f52-7c4b-4d9e-a6f1-0b2c5d8e9f14",
  "changelog_id": "e1a7c4b9-2d5f-4e83-9a06-7b3c8d1f5e42",
  "description_html": "<h2>Mobile 4.2.0</h2><ul><li>Offline mode for lists and boards</li><li>New onboarding flow</li></ul>",
  "description_json": {
    "type": "doc",
    "content": [
      {
        "type": "heading",
        "attrs": { "level": 2 },
        "content": [{ "type": "text", "text": "Mobile 4.2.0" }]
      },
      {
        "type": "bulletList",
        "content": [
          {
            "type": "listItem",
            "content": [
              {
                "type": "paragraph",
                "content": [{ "type": "text", "text": "Offline mode for lists and boards" }]
              }
            ]
          },
          {
            "type": "listItem",
            "content": [
              {
                "type": "paragraph",
                "content": [{ "type": "text", "text": "New onboarding flow" }]
              }
            ]
          }
        ]
      }
    ]
  }
}
Response200
json
{
  "id": "8b5d3f20-9c6e-4a17-b2d8-4e0f1a7c6b95",
  "release_id": "3e8a1f52-7c4b-4d9e-a6f1-0b2c5d8e9f14",
  "changelog_id": "e1a7c4b9-2d5f-4e83-9a06-7b3c8d1f5e42",
  "description_html": "<p></p>",
  "description_json": {}
}