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
homepageHtmlstring | nullCustom homepage HTML
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
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 } = await client.addAgentsToServer('server-id', ['agent-1', 'agent-2'])
result = client.add_agents_to_server("server-id", ["agent-1", "agent-2"])