Skip to content

Archive a workspace page ​

POST/api/v2/workspaces/{slug}/pages/{pk}/archive/

Archive a workspace (wiki) page. The call sets the page's archived_at to the current time and archives its nested pages with it. Archiving is reversible with Unarchive a workspace page.

Archiving is also the step before deletion. Delete a workspace page refuses an active page with 400, so archive the page first.

This is a bodyless POST. Send no JSON. A successful call returns 204 with no body. If you need the new archived_at, read the page afterward.

The call is idempotent. Archiving a page that is already archived returns 204 and changes nothing, including its original archived_at.

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.

pk:requiredstring (uuid)

The id of the wiki page to archive. A project page id returns 404.

Body Parameters ​

None. The endpoint takes no request body.

Scopes ​

wiki.pages:write

Errors ​

StatusCodeCause
400invalid_requestThe request could not be processed.
401unauthorizedMissing or invalid credentials.
402payment_requiredThe feature this endpoint belongs to isn't enabled on your plan, or is switched off.
403forbiddenYour role or token scope can't archive this page.
404not_foundNo such wiki page in this workspace, or you can't see it.
406not_acceptableThe Accept header asks for a representation the API can't produce.
409conflictAll write endpoints declare this status. This endpoint has no conflict case of its own.
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.
Archive a workspace page
bash
curl -X POST \
  "https://api.plane.so/api/v2/workspaces/my-team/pages/9c1f0b3d-6d2e-4c9a-8b41-2f7e5a0d6c88/archive/" \
  -H "X-Api-Key: $PLANE_API_KEY"
Response204

No response body.

Response404
json
{
  "type": "not_found",
  "code": "not_found",
  "detail": "The requested resource was not found."
}

What archiving changes ​

  • archived_at on the page goes from null to the current time.
  • Every nested page under it is archived too. The nested pages are updated in the background, so for a moment after the 204 they can still read archived_at: null.
  • The page and its nested pages are removed from everyone's favorites.
  • If the page was published, it's unpublished, and so are its nested pages. Its anchor stops resolving in Get a published page.
  • The page's attachments become read-only. Creating, confirming, or deleting a workspace page attachment returns 400 with detail Page is archived. Reads and downloads still work.

Nothing is deleted. The page stays readable:

  • Get a workspace page still returns it, with archived_at set.
  • List workspace pages includes it by default. ?type=archived lists only archived pages, and ?type=public, ?type=private, and ?type=shared leave archived pages out.

Use this endpoint, not a PATCH

Update a workspace page accepts archived_at, but it changes only that field on that one page. It doesn't archive nested pages, clear favorites, or unpublish the page. Archive through this endpoint.

Learn more about archiving pages