Releases overview
Releases group shipped work and carry a changelog.
The routes on this page serve workspace releases only, so project_id is always null here. A release that belongs to a project is a project release. It has the same fields, but you manage it under /api/v2/workspaces/{slug}/projects/{project_id}/releases/, and its id returns 404 on these routes.
The release object
Attributes
created_atstring (date-time)When the release was created.
updated_atstring (date-time)When the release was last updated.
created_by_idstring (uuid)The user who created the release.
updated_by_idstring (uuid) or nullThe user who last updated the release.
nulluntil someone updates it.description_htmlstringThe release description as HTML. List rows leave it out unless you request it with
?fields=.description_idstring (uuid)The id of the description record that holds the release body.
external_idstring or nullYour system's identifier for this release, for sync and import correlation.
nullunless you set it.external_sourcestring or nullThe system
external_idcame from, for examplegithuborjira.nullunless you set it.idstring (uuid)Unique identifier.
is_latestbooleanWhether the release is marked as the latest one. Plane doesn't limit the flag to one release, so setting it doesn't clear it on other releases.
is_prereleasebooleanWhether the release is marked as a pre-release.
label_idsarray of string (uuid)The release labels applied to the release. Change them with Add or remove release labels.
lead_idstring (uuid) or nullThe user who leads the release. Must be an active member of the workspace.
nullwhen the release has no lead.namestringDisplay name. Maximum 255 characters. Names are unique across the whole workspace, so a workspace release can't reuse the name of a project release.
project_idstring (uuid) or nullThe project a release belongs to. Always
nullon a workspace release. Set only on a project release, and read-only on both.release_datestring (date) or nullThe date the release shipped, as
YYYY-MM-DD.nulluntil you set it.statusstringWhere the release is in its lifecycle. One of
unreleased(the default),released, orcancelled.tag_idstring (uuid) or nullThe version tag, from the release tag catalog.
nullwhen the release has no tag.target_datestring (date) or nullThe planned ship date, as
YYYY-MM-DD.nulluntil you set it.
{
"id": "b7e42a19-3c5d-4f80-9a26-8d1c0f4e7b53",
"name": "Example name",
"project_id": null,
"description_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
"description_html": "<p>Details go here.</p>",
"status": "unreleased",
"target_date": "2026-01-20",
"release_date": "2026-01-20",
"lead_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
"tag_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
"is_latest": false,
"is_prerelease": false,
"external_id": null,
"external_source": null,
"label_ids": ["16c61a3a-512a-48ac-b0be-b6b46fe6f430"],
"created_at": "2026-01-14T09:22:41.478363Z",
"updated_at": "2026-01-14T09:22:41.478363Z",
"created_by_id": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
"updated_by_id": null
}Endpoints
| Method | Path | Description |
|---|---|---|
GET | /api/v2/workspaces/{slug}/releases/ | List releases |
GET | /api/v2/workspaces/{slug}/releases/{pk}/changelog/ | Get a release changelog |
GET | /api/v2/workspaces/{slug}/releases/{pk}/ | Get a release |
POST | /api/v2/workspaces/{slug}/releases/ | Create a release |
PATCH | /api/v2/workspaces/{slug}/releases/{pk}/changelog/ | Update a release changelog |
PATCH | /api/v2/workspaces/{slug}/releases/{pk}/ | Update a release |
DELETE | /api/v2/workspaces/{slug}/releases/{pk}/ | Delete a release |
GET | /api/v2/workspaces/{slug}/releases/{pk}/labels/ | List a release's labels |
POST | /api/v2/workspaces/{slug}/releases/{pk}/labels/ | Add or remove release labels |
GET | /api/v2/workspaces/{slug}/releases/{pk}/work-items/ | List a release's work items |
POST | /api/v2/workspaces/{slug}/releases/{pk}/work-items/ | Add or remove release work items |
Response shaping
Every release read accepts ?fields= for sparse responses. See Sparse fields. Errors follow the shared problem+json contract.

