Acting in hubs
Hub Management API
Everything an agent can do in a hub with the capabilities it was granted.
With an agent token (Authorization: Bot …), these endpoints act in hubs where the agent is installed. Each one checks the agent's permissions in that hub — and, for members and roles, the role hierarchy — exactly like for a person. Anything else answers 404 (not found or not visible) or 403.
Hubs
| GET | /servers/:id | The hub |
| GET | /servers/:id/snapshot | Channels, roles and members visible to the agent, in one call |
| PATCH | /servers/:id | Settings (manageServer) |
| GET | /servers/:id/insights | 7-day activity (viewInsights) |
| GET | /servers/:id/voice-states | Who is in which voice channel |
| DELETE | /servers/:id/members/@me | Leave the hub |
Starter layouts and the hub's look
People create hubs from the app with a starter layout — the same structure as the official Voznest hub, or one for gaming, study, creators, developers, music or friends — in icon, emoji or plain style, with roles, rules and welcome posts in Embeds v3. GET /api/v1/servers/layouts?lang=es|en lists them (no authentication): categories, channels with their icon, emoji and topic, roles and rules.
- Channels take an
icon(one of the Embeds v3 icon names;nullfor the type's icon) on create and edit, in any hub. - Names may include emoji and the
・separator: text channels keep them, lowercased with dashes (🔥 Hot Takes→🔥-hot-takes). - Roles take an
icontoo, shown next to names in chat and in the member list. - Blueprints (hub templates) keep channel icons, descriptions and role icons — never messages.
Channels
| POST | /servers/:id/channels | Create a channel or category (manageChannels) |
| PATCH | /servers/:id/channels | Reorder / move (transactional) |
| GET / PATCH / DELETE | /channels/:id | Read / edit / delete |
| PUT | /channels/:id/overwrites/:targetId | Permission overwrite for a role or member (manageRoles) |
| POST | /channels/:id/sync | Sync permissions with the category |
| POST | /channels/:id/invites | Create an invite (createInvite) |
Roles & members
| GET / POST / PATCH | /servers/:id/roles | List, create, reorder (manageRoles, below the agent's highest role) |
| PATCH / DELETE | /servers/:id/roles/:roleId | Edit / delete |
| GET | /servers/:id/members | Cursor pagination (after, limit ≤ 100, q, roleId) |
| GET / PATCH | /servers/:id/members/:userId | Read / nickname, hub mute & deafen |
| PUT / DELETE | /servers/:id/members/:userId/roles/:roleId | Give / remove a role |
| POST | /servers/:id/members/:userId/voice | Move to another voice channel or disconnect (moveMembers) |
Moderation
| DELETE | /servers/:id/members/:userId | Kick (kickMembers) |
| PUT / DELETE | /servers/:id/bans/:userId | Ban (optional message deletion) / unban (banMembers) |
| GET | /servers/:id/bans | Bans |
| POST | /servers/:id/members/:userId/timeout | Suspend up to 28 days, 0 lifts it (timeoutMembers) |
| POST | /servers/:id/members/:userId/warn | Warn (opens a case, notifies the member) |
| POST | /servers/:id/members/:userId/notes | Moderator note |
| GET | /servers/:id/cases | Moderation cases |
| GET / PATCH | /servers/:id/reports(/:reportId) | Reports and their review |
| POST | /servers/:id/lockdown | Pause joins and invites (manageServer) |
| GET / POST / PATCH / DELETE | /servers/:id/automod(/:ruleId) | Guardian rules |
| GET | /servers/:id/audit-log | Audit log (viewAuditLog) |
Events, expressions, onboarding
| GET / POST | /servers/:id/events | Scheduled events (createEvents) |
| PATCH / DELETE | /events/:id | Update, start, end, cancel / delete |
| GET | /servers/:id/expressions | Emoji and stickers |
| POST / PATCH / DELETE | /servers/:id/emoji(/:emojiId) | From an upload (manageEmoji) |
| POST / DELETE | /servers/:id/stickers(/:stickerId) | Stickers |
| GET / PUT | /servers/:id/onboarding | Onboarding questions and default channels |
| GET | /servers/:id/invites · /servers/:id/webhooks · /servers/:id/integrations | Invites, webhooks, installed apps |
429 RAID_PROTECTION with retryAfter) and the hub owner is alerted. Design bulk jobs to go slowly. Each hub owner controls it in Settings → Safety Checklist: turn it off, pick a sensitivity (relaxed = 3× the budget), trust specific members or bots, or trust every app in the hub. Sandbox hubs created from the portal trust apps by default.The complete, always-current list — including request bodies — is in the API Reference.