This page documents public community-server APIs. Use Authorization: Bearer <jwt> for protected routes. On a Cloud server the token is the access token your Tusile account gets from tusile.com; on an Offgrid server it is the access_token that server’s own POST /auth/login returns. Bots use their own token and the /bot/* routes; see Bots.
Community-server endpoint groups
GET /health- community service + DB health:{"status":"ok"}, or 503 when the database is unreachable. No auth.GET /info- what the app reads before you join: server ID,offgrid, LiveKit URL, name, icon, registration mode. No auth./auth/register,/auth/login,/auth/refresh,/auth/logout,/auth/change-password- local accounts. Offgrid servers only; on Cloud these routes do not exist.POST /livekit/token- room token for voice/video, plus the LiveKit URL to connect to. Needs the Connect permission on the channel./categories,/channels,/channels/{id}/messages,/messages/{id},/threads,/polls- channel/message management and history./roles,/members,/invites,/bans,/settings- access control, moderation and server settings./voice/presence,/voice/move,/voice/disconnect,/voice/server-mute,/voice/server-deafen- who is in voice, and voice moderation./uploads,/emojis,/ws- file operations, custom emoji and real-time updates./bot/*,/bot/gateway- the bot API; documented on Bots.
Example requests
POST /livekit/token
Authorization: Bearer <jwt>
{"room":"channel_{channelId}"}
-> {"token":"...","url":"wss://your-community-host:7880"}POST /channels/{channelId}/messages
Authorization: Bearer <jwt>
{"content":"Hello from Tusile"}For complete request and response payloads, open the interactive API test page your community-server exposes at GET /test, for example https://<your-community-host>/test.