Skip to content

Update a project release changelog ​

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

Write the release notes of a project release. The API creates the changelog on demand, so you don't need to read it first.

PATCH is partial. Send description_html, description_json, or both. A field you omit keeps its stored value. The API stores each field as sent and doesn't derive one from the other, so send both when you want them to match.

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

Body Parameters ​

description_html:optionalstring

The changelog as HTML. Replaces the stored HTML. An empty string is allowed.

description_json:optionalobject

The changelog in the editor's JSON format. Replaces the stored JSON.

Scopes ​

releases:write

Errors ​

StatusCodeCause
400invalid_requestA body field has the wrong type, for example null for description_html.
401unauthorizedMissing or invalid credentials.
402payment_requiredProject releases aren't enabled on your plan.
403forbiddenYour role in the project can't edit this release, or your 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.
409conflictNot raised by this endpoint. The spec lists it for every v2 write.
413payload_too_largeThe request body is over the size limit.
415unsupported_media_typeThe Content-Type isn't one this endpoint accepts.
429rate_limitedThrottled. Honor the Retry-After header before retrying.
Update a project release changelog
bash
curl -X PATCH \
  "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" \
  -H "Content-Type: application/json" \
  -d '{
  "description_html": "<h2>Mobile 4.2.0</h2><ul><li>Offline mode for lists and boards</li><li>New onboarding flow</li></ul>"
}'
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": {}
}