Delete a page
const url = 'https://flow.work.optidata.cloud/api/categories/993/pages/2927';const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request DELETE \ --url https://flow.work.optidata.cloud/api/categories/993/pages/2927 \ --header 'Authorization: Bearer <token>'Moves a page to the trash and returns it. The caller must own the page or its category, or have manage access to it. The category’s Overview page cannot be deleted.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Id of the category. Read it from GET /categories.
Id of a page of that category.
Responses
Section titled “ Responses ”The page, now in the trash.
A page moved to the trash.
object
Id of the page this one is nested under, or null for a top-level page.
Id of the page’s author.
Short public identifier of the page.
The page’s current version — its published version once it has one.
published once a version has been published.
When a version was last published.
true for the category’s Overview page.
Sort position among its siblings.
The page’s own visibility as stored — null when it inherits the category’s.
A page’s own visibility. inherit follows the category; public shares
the page with anyone who has its link, whatever the category’s visibility.
Who can see a category. restricted: only the people and groups it is
shared with. internal: everyone in the company. public: anyone with the
link, including people who are not signed in.
Whether the page is reachable by anyone with its link.
Reserved. Always null for pages created through the API.
Not used — read last_content_published_at.
Set when the page is in the trash.
object
URL-friendly form of the name.
Who can see a category. restricted: only the people and groups it is
shared with. internal: everyone in the company. public: anyone with the
link, including people who are not signed in.
Shortcut for visibility == public.
Short public identifier of the category.
Id of the user who owns the category, when it has one.
Set when the category mirrors a group: it is shared with the group’s members, and its name and description follow the group’s.
Identifier of the company the category belongs to.
Set when the category is in the trash.
Examples
{ "id": 2928, "category_id": 993, "user_id": 20, "title": "First week", "type": "text", "meta": null, "created_at": "2026-10-19T13:50:46.000000Z", "updated_at": "2026-10-19T13:53:03.000000Z", "deleted_at": "2026-10-19T13:53:03.000000Z", "parent_id": 2927, "position": 0, "page_content_id": 4509, "status": "draft", "published_at": null, "identifier": "TfWRpMvhMN", "is_cover": false, "visibility": null, "last_content_published_at": null, "effective_visibility": "restricted", "display_visibility": "inherit", "is_public": false, "category": { "id": 993, "cuid": "7f3c2a10-5b8e-4d21-9c6a-0e4f1b2d3c4a", "name": "Onboarding", "slug": "onboarding", "description": "Everything a new hire needs in the first month.", "created_at": "2026-10-19T13:50:38.000000Z", "updated_at": "2026-10-19T13:50:38.000000Z", "deleted_at": null, "visibility": "restricted", "user_id": 20, "identifier": "jYpV3A", "group_id": null, "is_public": false }}No authentication key was sent.
Authentication failures use an error key rather than message.
object
Examples
No bearer token sent
{ "error": "JWT passport exception: Missing bearer token in request"}The caller may not delete this page, or it is the category’s Overview page.
Generic error envelope used by permission, lookup and framework failures.
object
A rule enforced by Papers itself — a version that can no longer change,
a special page. status repeats the HTTP status; help is a hint for
the end user and is often empty.
object
Examples
{ "message": "This action is unauthorized."}Overview page
{ "error": "Cannot delete a special page", "status": 403, "help": ""}No such resource — or it does not belong to the category or page in the path.
Generic error envelope used by permission, lookup and framework failures.
object
Examples
{ "message": "No query results for model [App\\Models\\Page] 999999"}The authentication key is expired or not recognised. Get a fresh one and retry.
Authentication failures use an error key rather than message.
object
Examples
{ "error": "JWT passport expired: Passport expired"}