API changelog
What changed in the Bot API and in these pages, newest first. The version is the one GET / reports in zrzur.
curl "https://api.zrzur.com/"
# answer, shortened: { "zrzur": "26.0.0", ... }Every entry says whether existing bots must change. A removal is announced here with its date before it happens. Follow it in a feed reader: RSS feed.
Since 26.0.0
Live on api.zrzur.com, checked on 2026-11-13. GET / still reports 26.0.0. Existing bots keep working: nothing below removes a field or changes one.
- Gateway: resume. Every packet after
Readycarriesseq, counted per session from 1. SendAuthenticatewith"resumable": trueandReadycarriessession_id. After a drop the session is kept for 2 minutes, with at most its last 1000 events and 4 MiB of them. On a new socket, sendResumeas the first message: the events afterseqarrive in order, thenResumed. If the session is gone you getInvalidSessionwith"resumable": false; then sendAuthenticateon the same socket and catch up over REST.GET /gateway/schemalists the close codes and the resume limits. See Gateway. - A bot reads its own settings.
GET /bots/{bot_id}with the bot's own id and token returns itsprivileged_intents. Another bot's id answersIsBot. - Clearer intent refusals. The
4014close reason names what the server read, for exampleDisallowed intents: MESSAGE_CONTENT (switched on: none). If the server cannot read the bot's settings, it sendsInternalErrorand closes with1013: try again later, do not stop. - Threads: a richer first message.
POST /channels/{target}/threadstakesembedsandcomponentsnext tocontent, with the rules of sending a message: Send Embeds applies, and a role ping without Mention Roles is refused with403 MissingPermissionand no thread is kept. See Channels. - "Not installed" answers 404.
GET /channels/{target}answers404 NotFoundto anyone who is not in the channel's server, like the server itself and like a channel that does not exist. Members without access still get403 MissingPermission. See Errors. - Commands in a direct message. A person can use a bot's global commands that need no server permission in their direct message with the bot.
- Command rules per server. People with Manage Server and Manage Roles can allow or deny an app's commands for roles, members and channels:
GETandPUT /servers/{server_id}/applications/{application_id}/permissions, andPUT /servers/{server_id}/applications/{application_id}/commands/{command_id}/permissions. - Polls, scheduled events, soundboard and stages. New routes and gateway events, listed in the reference of Messages, Servers, Voice calls and in the Event reference. Two new permissions:
UseSoundboardandManageSoundboard. Polls, forwarding and scheduled events are switched on per installation (featuresinGET /); onapi.zrzur.comthey were off when this page was checked. - SDK: rate limits and resume. The SDK resumes by default for bots, waits out a
429, and waits for the reset when a bucket is empty. It is not on npm yet; see SDKs.
Documentation, 2026-11-09
No change to the API. These pages now say what a bot author had to find out by trying:
- The docs open at once, without signing in and without waiting for a connection.
- Event reference: the channel types, and how to tell a direct message from a server message.
- Gateway: what to do when a privileged intent is off, and when a switch counts.
- Without a library: the Node example sends
intents: 33, like the text and the Python example. - Channels and webhooks: plain HTTP comes first, the body of
POST /servers/{server}/channelswithprivateandcategory, and the rules of a thread's first message. - Slash commands: where an
Attachmentoption's file arrives, and why its id cannot be sent again. - Messages: channel links
<#id>, the answer ofGET /channels/{target}/messagesand its order. - Overview: a sample
GET /answer. - Errors: which answer means "the bot is not in that server".
- The reference names only the bot SDK, and its status badge agrees with the check below it.
26.0.0 (2026-11-08)
The first Zrzur release. Everything in these pages describes it.
- Interactions: slash commands with options, choices, sub-commands, localised names and autocomplete; user and message menu commands; buttons, selects and forms; private, deferred and follow-up answers. Buttons and forms also work in a direct message with the bot.
- Interactions over HTTP, signed requests to your own address.
- Gateway intents decide what a connection receives.
MESSAGE_CONTENT,SERVER_MEMBERSandPRESENCEare privileged and switched on in the Developer Portal.GET /gateway/schemadescribes every event. - Threads and forums:
POSTandGET /channels/{target}/threads,PATCH /channels/{target}/thread, with the permissionsCreateThreads,CreateForumPostsandSendMessageInThreads. - Over REST:
POST /channels/{target}/typing, and pinned messages throughPOST /channels/{target}/searchwithpinned: true. - Webhooks: tokens are shown once, start with
zrzur_wh_and can be replaced. - Rate limits: a
429body hasretry_afterin milliseconds andglobal. Every error has a stabletype. - OAuth2 with PKCE.