Delete a category
const url = 'https://flow.work.optidata.cloud/api/categories/993';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 \ --header 'Authorization: Bearer <token>'Moves a category to the trash. The caller must own the category or have manage access to it; categories that mirror a group cannot be deleted here. Returns the trashed category.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Id of the category. Read it from GET /categories.
Responses
Section titled “ Responses ”The category, now 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": 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:53:24.000000Z", "deleted_at": "2026-10-19T13:53:24.000000Z", "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 lacks the access this operation needs.
Generic error envelope used by permission, lookup and framework failures.
object
Examples
{ "message": "This action is unauthorized."}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"}