Roles

Roles and permissions

Write permission: server admin (canAdmin)

Queries

roleById

GET
/api/v1/roles/:roleId

Get role details by ID.

Terminal

curl "https://start.chat/api/v1/roles/{roleId}" \
-H "Authorization: Bearer sk_live_xxx"

Update

PATCH
/api/v1/roles/:id

Update role name, color, or permissions.

Parameters

FieldTypeRequiredDescription
idstringYes
namestringNo
colorstringNo

Example

Terminal

curl -X PATCH "https://start.chat/api/v1/roles/{id}" \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"id": "abc123"
}'
import { setup, mutate } from '@start-chat/sdk'
await setup({ apiKey: 'sk_live_xxx' })
const result = await mutate.role.update({
id: 'abc123',
})

Response

{
"ok": true,
"data": {
"id": "abc123",
"name": "general",
"color": "#3B82F6",
"serverId": "srv_abc123",
"creatorId": "usr_abc123",
"canAdmin": false,
"canEditChannel": false,
"canEditServer": false,
"canEditApp": false,
"canModerate": false,
"canViewData": false,
"canEditData": false,
"updatedAt": 1709251200000,
"createdAt": 1709251200000
}
}

Delete

DELETE
/api/v1/roles/:id

Delete a role.

Parameters

FieldTypeRequiredDescription
idstringYes

Example

Terminal

curl -X DELETE "https://start.chat/api/v1/roles/{id}" \
-H "Authorization: Bearer sk_live_xxx"
import { setup, mutate } from '@start-chat/sdk'
await setup({ apiKey: 'sk_live_xxx' })
const result = await mutate.role.delete({
id: 'abc123',
})

Response

{
"ok": true,
"data": {
"id": "abc123",
"name": "general",
"color": "#3B82F6",
"serverId": "srv_abc123",
"creatorId": "usr_abc123",
"canAdmin": false,
"canEditChannel": false,
"canEditServer": false,
"canEditApp": false,
"canModerate": false,
"canViewData": false,
"canEditData": false,
"updatedAt": 1709251200000,
"createdAt": 1709251200000
}
}

Insert

POST
/api/v1/roles

Create a new role with permissions.

Parameters

FieldTypeRequiredDescription
namestringYes
serverIdstringNo
colorstringYes

Example

Terminal

curl -X POST "https://start.chat/api/v1/roles" \
-H "Authorization: Bearer sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "general",
"color": "#3B82F6"
}'
import { setup, mutate } from '@start-chat/sdk'
await setup({ apiKey: 'sk_live_xxx' })
const result = await mutate.role.insert({
name: 'general',
color: '#3B82F6',
})

Response

{
"ok": true,
"data": {
"id": "abc123",
"name": "general",
"color": "#3B82F6",
"serverId": "srv_abc123",
"creatorId": "usr_abc123",
"canAdmin": false,
"canEditChannel": false,
"canEditServer": false,
"canEditApp": false,
"canModerate": false,
"canViewData": false,
"canEditData": false,
"updatedAt": 1709251200000,
"createdAt": 1709251200000
}
}