Update a workspace page
PUT/api/v1/workspaces/{workspace_slug}/pages/{page_id}/
Update a workspace page. Send name, description_html, or both. description_html replaces the page's current content rather than appending to it. Plane applies the mutation through its collaborative document service so API writes remain consistent with active editor sessions. Locked or archived pages cannot be updated. The API returns 502 when the collaborative document service cannot complete the update and 503 when that service is not configured.
See Page content HTML for supported HTML and Plane editor components.
Path Parameters
workspace_slug:requiredstringThe workspace's unique slug.
page_id:requiredstringThe page UUID.
Body Parameters
name:optionalstringThe new page title.
description_html:optionalstringHTML that replaces the current page content.
At least one body parameter is required.
Scopes
write or wiki.pages:write
Update a workspace page
bash
curl -X PUT "https://api.plane.so/api/v1/workspaces/my-workspace/pages/page-uuid/" \
-H "X-API-Key: $PLANE_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Release notes","description_html":"<p>Current release notes</p>"}'python
import requests
response = requests.put(
"https://api.plane.so/api/v1/workspaces/my-workspace/pages/page-uuid/",
headers={"X-API-Key": "your-api-key"},
json={"name": "Release notes", "description_html": "<p>Current release notes</p>"},
)
print(response.json())javascript
// Run this example server-side. Browser apps must call your backend to keep the API key secret.
const response = await fetch(
"https://api.plane.so/api/v1/workspaces/my-workspace/pages/page-uuid/",
{
method: "PUT",
headers: { "X-API-Key": process.env.PLANE_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
name: "Release notes",
description_html: "<p>Current release notes</p>",
}),
},
);
const data = await response.json();Response200
json
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Release notes",
"description_html": "<p>Current release notes</p>"
}
