List categories
const url = 'https://flow.work.optidata.cloud/api/categories';const options = {method: 'GET', 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 GET \ --url https://flow.work.optidata.cloud/api/categories \ --header 'Authorization: Bearer <token>'The categories the caller can see: every internal and public category
of the company, plus the restricted ones shared with them — directly or
through one of their groups. Company administrators see every category.
Authorizations
Section titled “Authorizations”Responses
Section titled “ Responses ”The categories visible to the caller.
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": 864, "cuid": "7f3c2a10-5b8e-4d21-9c6a-0e4f1b2d3c4a", "name": "Documentation", "slug": "documentation", "description": "Product and process documentation.", "created_at": "2026-09-02T12:10:14.000000Z", "updated_at": "2026-09-02T12:10:14.000000Z", "deleted_at": null, "visibility": "internal", "user_id": 157, "identifier": "k2Rt9w", "group_id": null, "is_public": false }, { "id": 712, "cuid": "7f3c2a10-5b8e-4d21-9c6a-0e4f1b2d3c4a", "name": "Sales team", "slug": "sales-team", "description": null, "created_at": "2026-04-15T18:02:51.000000Z", "updated_at": "2026-04-15T18:02:51.000000Z", "deleted_at": null, "visibility": "restricted", "user_id": null, "identifier": null, "group_id": 524, "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 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"}