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

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": {}
}