This feature is only available in the Enterprise version

Access control

RBAC

Choose a built-in role or create a custom one for a teammate.

A role is the set of permissions a teammate has in the organization. Blnk checks those permissions on each request, not the name of the role.

Use a built-in role, or create a custom one when that is more access than the person needs.

Built-in roles

Every organization already has these roles. You can assign them, and you cannot change or delete them.

RoleWhat they can do
adminEverything in the organization, including billing reports.
operatorDay-to-day operations: instances, data, the proxy, transactions, agents, and alerts.
analystRead and monitor ledger data.
investigatorWork across alerts, anomalies, and ledger data.

Who can manage roles

Listing roles, changing them, and assigning them are separate permissions.

An admin has roles.write and members.write, so they can do all three.

ActionPermission
List rolesroles.read
Create, update, or delete a roleroles.write
Assign a rolemembers.write

Create a role

Create a custom role with Create role.

The slug has to be new, and permissions needs at least one value from the catalog.

curl -X POST "https://api.cloud.blnkfinance.com/organizations/roles" \
  -H "X-blnk-key: CLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "finance-ops",
    "name": "Finance Ops",
    "description": "Read billing and ledger data",
    "permissions": ["billing.read", "data.read", "instances.read", "org.read"]
  }'
FieldDescriptionRequired
slugSlug for the role, such as finance-ops. Must not be a built-in role.Yes
nameDisplay name of the role.Yes
descriptionWhat the role is for.No
permissionsPermissions on the role. At least one, each from the catalog.Yes

Assign role

Set a member’s role with Assign role. role is the slug, not role_id.

curl -X PUT "https://api.cloud.blnkfinance.com/organizations/members/YOUR_USER_ID/role" \
  -H "X-blnk-key: CLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "role":"finance-ops"
    }'
FieldDescriptionRequired
user_idId of the member. This is the path parameter.Yes
roleSlug of the role, such as admin or finance-ops.Yes

Permission catalog

A custom role takes its permissions from this list.

A read needs the matching *.read permission, a change needs *.write, and a usage billing report needs billing.report.

PermissionWhat it allows
instances.readRead instances.
instances.writeCreate, update, or delete instances.
data.readRead data.
data.writeCreate, update, or delete data.
transactions.createCreate transactions.
transactions.metadata.writeUpdate transaction metadata.
transactions.status.writeCommit or void inflight transactions.
transactions.refundRefund transactions.
users.readRead users.
users.writeCreate or update users.
users.deleteDelete users.
org.readRead organization details.
org.writeUpdate organization details.
org.deleteDelete organizations.
members.readRead organization members.
members.writeManage organization members.
roles.readRead organization roles.
roles.writeManage organization roles.
billing.readRead billing details.
billing.writeManage billing.
billing.reportGenerate usage billing reports.
audit.readRead audit logs.
alerts.readRead alerts.
alerts.writeManage alerts.
alerts.deleteDelete alerts.
anomalies.readRead anomalies.
anomalies.writeManage anomalies.
anomalies.deleteDelete anomalies.
deployments.readRead deployments.
deployments.writeManage deployments.
mcp.readRead MCP resources.
mcp.writeManage MCP resources.
apps.readRead apps.
apps.writeCreate or update apps.
proxy.readRead proxy resources.
proxy.writeManage proxy resources.
agents.readRead agents.
agents.writeManage agents.