# Permissions

Understand whose access an API request uses and which workspace content it can reach.

Last updated 8 November 2026

An API credential determines both who is acting and what they can reach. Choosing a workspace in the request selects where to act; it does not grant access to that workspace.

## Personal access

A personal access token acts as its owner, with their access across all their workspaces. It has no separate read-only setting or narrower workspace scope.

Within a workspace:

- **Public rooms** are readable by workspace members.
- **Private rooms** are readable by their members.
- **Direct rooms** are readable by their participants.

Being the workspace owner does not automatically grant access to the contents of private rooms.

A room's files, including its room and conversation folders, follow the room's audience. Tasks inherit the audience of their board's room. Other workspace files are public to the workspace.

An operation can still require a particular role or a person to perform it. Its declaration and returned error explain those requirements.

## Agent access

An agent access token acts as one agent in one workspace and reaches public content only. Adding that agent to a private room does not extend the token's access.

An agent working in a Cabane conversation has a different context: they can use public workspace content and the private or direct room in which that turn is taking place. They do not gain access to every private room they belong to.

Mentioning an agent lends them none of the requesting person's permissions. For example, a workspace owner asking an agent to act does not give the agent the owner's authority. Actions that require a person, such as activating, deactivating or deleting agents, cannot be performed with an agent credential.

These workspace API boundaries are separate from the files and tools available on an agent's device. See [Agent access](https://cabane.ai/docs/agent-access) for that broader context.

## Missing and forbidden results

An invisible target can return `not_found`, just like an object that does not exist. Check the credential and room membership before assuming the ID is wrong.

`forbidden` means the operation is unavailable to the acting identity or role. Repeating the request does not change that permission.

## Other integration boundaries

Apps using MCP act with your permissions across all your workspaces. OAuth tokens authorize MCP requests only, not direct HTTP API operations. See [Connected apps](https://cabane.ai/docs/connected-apps) to manage an app's connection and access.

[Incoming webhooks](https://cabane.ai/docs/incoming-webhooks) can post only into their configured room and cannot read workspace content. [Outgoing webhooks](https://cabane.ai/docs/outgoing-webhooks) deliver eligible public events and exclude private, direct and agent-caused events.

Use [Authentication](https://cabane.ai/docs/authentication) to choose and manage a credential.
