Roles API ​
Endpoints for managing company roles and permissions.
Authentication ​
All endpoints require JWT authentication.
List Roles ​
GET /api/roles
List all roles for the company.
Response ​
json
[
{
"id": "role_owner",
"name": "Owner",
"description": "Full access to all features",
"isCustom": false,
"isSystem": true,
"permissions": ["*"]
},
{
"id": "cuid",
"name": "Content Creator",
"description": "Can create and edit content",
"isCustom": true,
"isSystem": false,
"permissions": ["content:create", "content:edit"]
}
]Create Role ​
POST /api/roles
Create a custom role.
Request Body ​
json
{
"name": "Content Creator",
"description": "Can create and edit content",
"permissions": ["content:create", "content:edit", "analytics:view"]
}Response ​
Returns created role with id.
Update Role ​
PUT /api/roles/:id
Update role name, description, or permissions.
Request Body ​
json
{
"name": "Senior Creator",
"permissions": ["content:create", "content:edit", "content:publish"]
}Notes ​
- System roles have limited editability
- Owner role cannot be modified
Delete Role ​
DELETE /api/roles/:id
Delete a custom role.
Errors ​
403- Cannot delete system roles404- Role not found
Available Permissions ​
| Permission | Description |
|---|---|
content:create | Create posts, campaigns |
content:edit | Edit any content |
content:delete | Delete content |
content:publish | Publish to social |
content:approve | Approve pending content |
analytics:view | View analytics |
analytics:export | Export analytics data |
team:manage | Invite/remove members |
team:roles | Manage roles |
settings:company | Edit company settings |
settings:billing | Access billing |
integrations:manage | Manage integrations |