Discord's voice protocol: Voicaw's voice runs on LiveKit, so bots join voice channels with LiveKit's SDKs and a token from POST /channels/{channel}/voice (see Voice). @discordjs/voice and discord.py's VoiceClient don't work, and Voice State Update (op 4) is ignored. Bots send audio only (no video).
Webhooks with a bot token: webhooks themselves work as on Discord (with their own URL), but bots can't make or list them through the bot API.
Categories: bots can read them, but not make, change or delete them.
Interactions: there's no HTTP interactions endpoint (interactions only come over the gateway), no Components V2 layouts, no premium buttons, entitlements or activities, and no per-command permission overrides. Localised command names and descriptions are accepted but people see the plain ones. See Commands and components.
Guild settings (PATCH /guilds/{id}), the audit log endpoint, making guilds, stickers, forum and stage channels, private threads, forwarding messages, and polls through the API (Voicaw's polls are written in the message text).
Not part of Voicaw
People's DMs and group chats: they're end-to-end encrypted, so bots can't be in them. A bot's own DMs with people aren't encrypted, and only work with people it shares a guild with (see DMs); reactions, pins, replies, components and commands don't work in them yet.
Nicknames, timeouts, server mute and deafen, and moving people between voice channels: PATCH on a member with nick, communication_disabled_until, mute, deaf or channel_id fails with 50035.
Commands in DMs or as user-installed apps: commands only exist in guilds.
OAuth2 scopes other than bot and identify (Login with Voicaw), the implicit grant, client credentials, teams, verification and privileged intents.
Slow mode, boosts, role icons, ban reasons.
Works differently
IDs aren't snowflakes, and categories' ids are offset (see Objects and IDs).
A message's content is always included, without the Message Content intent.
A bot only sees people it shares a guild with.
Ephemeral replies live only in the person's open app (as on Discord) and in Voicaw's memory for 15 minutes: an API restart loses them.
Webhooks' message components are ignored; bots' work.
Invites are to a guild, not a channel.
Bulk delete has no two-week limit.
Channels and guilds a bot can't see answer 404 (as if they didn't exist), not 403 Missing Access.
The gateway is JSON only (no ETF), never sends Reconnect, and puts every guild on shard 0.
Bulk deletes and removing all reactions come as one gateway event per message or reaction.