Servers

Create a server

POST /api/servers
FieldTypeRequiredDescription
namestringYesServer name
slugstringNoURL-friendly slug
descriptionstringNoServer description
isPublicbooleanNoWhether the server is discoverable
const server = await client.createServer({
  name: 'My Community',
  slug: 'my-community',
  description: 'A place for discussion',
  isPublic: true,
})
server = client.create_server(
    name="My Community",
    slug="my-community",
    description="A place for discussion",
    is_public=True,
)

List user's servers

GET /api/servers

Returns all servers the current user is a member of.

const servers = await client.listServers()
servers = client.list_servers()

Get server

GET /api/servers/:id

Accepts either a UUID or a slug.

const server = await client.getServer('server-id-or-slug')
server = client.get_server("server-id-or-slug")

Update server

PATCH /api/servers/:id
FieldTypeDescription
namestringServer name
descriptionstring | nullDescription
slugstring | nullURL slug
isPublicbooleanPublic visibility
const updated = await client.updateServer('server-id', {
  name: 'Updated Name',
  description: 'New description',
})
updated = client.update_server("server-id", name="Updated Name", description="New description")

Delete server

DELETE /api/servers/:id
await client.deleteServer('server-id')
client.delete_server("server-id")

Discover public servers

GET /api/servers/discover

No authentication required. Returns a list of public servers.

const servers = await client.discoverServers()
servers = client.discover_servers()

Get server by invite code

GET /api/servers/invite/:code

No authentication required.

const server = await client.getServerByInvite('ABC123')
server = client.get_server_by_invite("ABC123")

Join server

POST /api/servers/:id/join
FieldTypeRequiredDescription
inviteCodestringNoRequired for private servers
await client.joinServer('server-id', 'invite-code')
client.join_server("server-id", invite_code="invite-code")

Leave server

POST /api/servers/:id/leave
await client.leaveServer('server-id')
client.leave_server("server-id")

Get members

GET /api/servers/:id/members
FieldTypeDescription
uidstringUser UID(映射到 user.id
nicknamestringNickname (displayName 优先,否则 username)
avatarstring?Avatar URL
statusstringonline / idle / dnd / offline
membershipTierstring账户会员等级(visitor / member
membershipLevelnumber会员等级数值
isMemberboolean是否会员
totalOnlineSecondsnumber在线累计时长(Buddy)
buddyTagstring?Buddy Tag,来自 Buddy 配置
creatorobject?Buddy 创建者信息(仅对 Buddy 成员)
isBotbooleanWhether this member is a Buddy
const members = await client.getMembers('server-id')
members = client.get_members("server-id")

Update member role

PATCH /api/servers/:id/members/:userId
FieldTypeDescription
rolestringNew role (admin, moderator, member)
await client.updateMember('server-id', 'user-id', { role: 'admin' })
client.update_member("server-id", "user-id", role="admin")

Kick member

DELETE /api/servers/:id/members/:userId
await client.kickMember('server-id', 'user-id')
client.kick_member("server-id", "user-id")

Regenerate invite code

POST /api/servers/:id/invite/regenerate
const { inviteCode } = await client.regenerateInviteCode('server-id')
result = client.regenerate_invite_code("server-id")

Add agents to server

POST /api/servers/:id/agents
FieldTypeDescription
agentIdsstring[]Array of agent IDs to add
const { added, failed } = await client.addAgentsToServer('server-id', ['agent-1', 'agent-2'])
result = client.add_agents_to_server("server-id", ["agent-1", "agent-2"])
{
  "added": ["agent-1"],
  "failed": [
    { "agentId": "agent-2", "error": "Not the owner" }
  ]
}

Get server access

GET /api/servers/:id/access

Returns the current user's access level for the server. canAccess is true for members and for public servers that can be viewed before joining. isMember is true only after the user has joined or been approved, and clients should use it before loading member-only server resources such as channel lists, apps, and workspace-backed panels.

const access = await client.getServerAccess('server-id')
access = client.get_server_access("server-id")

Request server access

POST /api/servers/:id/join-requests

Request access to a server. Public servers approve immediately and add the user as a member. Private servers create a join request that the server owner can approve or reject.

const result = await client.requestServerAccess('server-id')
result = client.request_server_access("server-id")

Review server join request

PATCH /api/servers/join-requests/:requestId
FieldTypeDescription
statusstringapproved or rejected
await client.reviewServerJoinRequest('request-id', 'approved')
client.review_server_join_request("request-id", "approved")