ILLEST Developers

Reference

Bot actions

Every request a bot may send the server, the scopes that let it, and its rate limit. A bot sends nothing else: the server refuses any other action from a bot before it runs. illest.py sends these for you; the last column names the methods that do.

Generated from the server's own rules (bot_scopes.rs) and its action table, so it is what the server enforces.

signing in and the account's own devices: every bot

ActionWho mayRateillest.py
auth.credentialany bot10, then 1/sno method of its own
auth.device.listany bot10, then 2/sno method of its own
auth.device.renameany bot10, then 2/sno method of its own
auth.device.revokeany bot10, then 2/sno method of its own
auth.login.beginany bot5, then 1/sno method of its own
auth.login.completeany bot5, then 1/sno method of its own
auth.login.verifyany bot5, then 1/sno method of its own
auth.logoutany bot10, then 2/sno method of its own
auth.recover.beginany bot5, then 1/sno method of its own
auth.recover.completeany bot3, then 0.5/sno method of its own
auth.recover.verifyany bot3, then 0.2/sno method of its own
auth.register.beginany bot3, then 0.2/sno method of its own
auth.register.cancelany bot10, then 2/sno method of its own
auth.register.completeany bot5, then 1/sno method of its own
auth.register.workany bot5, then 0.5/sno method of its own
auth.releaseany bot5, then 0.5/sno method of its own
auth.reset.beginany bot5, then 1/sno method of its own
auth.reset.completeany bot3, then 0.2/sno method of its own
auth.session.revoke_allany bot10, then 2/sno method of its own
auth.unparkany bot5, then 0.5/sno method of its own

badges and reports

ActionWho mayRateillest.py
badge.listany bot10, then 2/sno method of its own

bots: owning one is a person's; a bot's own identity and menu are its own

ActionWho mayRateillest.py
bot.commands.getany bot20, then 2/sCommandTree.fetch_commands
bot.commands.setany bot5, then 0.5/sBot.sync_menuCommandTree.sync
bot.identifyany bot10, then 1/sno method of its own
bot.identity.publishany bot5, then 1/sno method of its own
bot.infoWhat any bot's invite page shows; a bot reads its own to learn its owner.any bot20, then 2/sBot.is_owner
commands.indexThe `/` picker's list for a place (D-361): what the bots there answer to, as a member reads it.any bot20, then 2/sno method of its own

conversations

ActionWho mayRateillest.py
channel.devicesmessages.read or messages.write40, then 8/sno method of its own
channel.disappear.setmoderate60, then 10/sno method of its own
channel.dm.openmessages.write10, then 1/sClient.open_dm
channel.getmessages.read or messages.write40, then 8/sno method of its own
channel.group.leaveany bot60, then 10/sGroupChannel.leave
channel.hidemessages.read or messages.write10, then 2/sno method of its own
channel.listmessages.read or messages.write10, then 2/sno method of its own
channel.messages.clearA moderator's /clear: the ids a reading bot picked, or the newest by count (D-329).moderate10, then 2/sno method of its own
channel.messages.listmessages.read40, then 8/sMlsRuntime.missed_frames
channel.messages.purgemoderate30, then 10/sTextChannel.purge
channel.pins.listmessages.read10, then 2/sMessageable.pins
channel.readmessages.read10, then 2/sno method of its own
channel.topic.setmoderate10, then 2/sno method of its own
channel.typingmessages.write10, then 6/sClient.send_typing
channel.unreadmessages.read10, then 2/sno method of its own
link.previewmessages.write10, then 0.5/sno method of its own
media.fetchA picture for a message the bot is about to send, fetched once so readers never fetch it (D-364).messages.write20, then 1/sClient.fetch_media
media.ticketmessages.read or messages.write10, then 1/sno method of its own
message.pinmoderate30, then 10/sMessage.pinPartialMessage.pin
message.redactmoderate30, then 10/sClient.redact_message
message.sendmessages.write20, then 5/sno method of its own
message.unpinmoderate30, then 10/sMessage.unpinPartialMessage.unpin
pins.getany bot20, then 2/sno method of its own
pins.putany bot10, then 0.5/sno method of its own
presence.setany bot5, then 1/sClient.change_presence

friends: a bot may be asked and may ask (the request says it is a bot), and may always say no

ActionWho mayRateillest.py
friend.acceptmessages.write10, then 2/sno method of its own
friend.blockany bot10, then 2/sno method of its own
friend.blockedany bot10, then 2/sno method of its own
friend.listmessages.read or messages.write10, then 2/sno method of its own
friend.rejectany bot10, then 2/sno method of its own
friend.removeany bot10, then 2/sno method of its own
friend.requestmessages.write10, then 0.5/sno method of its own
friend.unblockany bot10, then 2/sno method of its own

servers: reading them, joining by invite, leaving; moderating with `moderate`; reshaping one with `guilds.manage`; never

ActionWho mayRateillest.py
guild.application.decidemaking, deleting or handing one over ──moderate10, then 2/sno method of its own
guild.application.form.getguilds.read10, then 2/sno method of its own
guild.application.getmoderate10, then 2/sno method of its own
guild.application.listmoderate10, then 2/sno method of its own
guild.auditmoderate10, then 4/sGuild.audit_logs
guild.automod.event.settleAutoMod (D-329). Its rules are the managers' to set, never a bot's; a bot may read them, settle what AutoMod caught and shut or open the door in a raid, as anti-raid bots do. A report is a reader's own app's: three of them time a member out, so a bot that could file them could time anybody out.moderate20, then 5/sno method of its own
guild.automod.eventsmoderate10, then 2/sno method of its own
guild.automod.getguilds.read20, then 2/sno method of its own
guild.automod.lockdownmoderate5, then 1/sno method of its own
guild.automod.raid.removemoderate5, then 1/sno method of its own
guild.banmoderate10, then 2/sClient.banGuild.banMember.ban
guild.bansmoderate10, then 2/sGuild.bans
guild.boostsguilds.read10, then 2/sno method of its own
guild.category.createguilds.manage10, then 2/sno method of its own
guild.category.deleteguilds.manage10, then 2/sGuildChannel.delete
guild.category.permissionsguilds.manage10, then 2/sno method of its own
guild.category.permissions.setguilds.manage10, then 2/sno method of its own
guild.category.reorderguilds.manage10, then 2/sno method of its own
guild.category.updateguilds.manage10, then 2/sGuildChannel.edit
guild.channel.createguilds.manage10, then 2/sno method of its own
guild.channel.deleteguilds.manage10, then 2/sGuildChannel.delete
guild.channel.followFollowing another server's announcements makes a feed into one of this server's channels, as making a channel does (D-365); a channel's published posts are words already made public, read as messages are.guilds.manage5, then 0.5/sno method of its own
guild.channel.lock/lock and /unlock: only the @everyone override's Send messages, which a moderating bot may flip as a person may.moderate10, then 2/sno method of its own
guild.channel.permissionsguilds.manage10, then 2/sno method of its own
guild.channel.permissions.setguilds.manage10, then 2/sGuildChannel.editGuildChannel.set_permissions
guild.channel.publishedmessages.read5, then 1/sno method of its own
guild.channel.reorderguilds.manage10, then 2/sno method of its own
guild.channel.unfollowguilds.manage5, then 0.5/sno method of its own
guild.channel.updateguilds.manage10, then 2/sGuildChannel.edit
guild.counter.addCounters make, rename and delete a channel, as the channel actions do (D-350).guilds.manage5, then 0.5/sno method of its own
guild.counter.removeguilds.manage5, then 0.5/sno method of its own
guild.counter.setguilds.manage5, then 1/sno method of its own
guild.expression.createguilds.manage10, then 2/sGuild.create_custom_emoji
guild.expression.deleteguilds.manage10, then 2/sEmoji.delete
guild.expression.listguilds.read10, then 2/sGuild.fetch_emojis
guild.expression.updateguilds.manage10, then 2/sno method of its own
guild.follows.listguilds.read5, then 1/sno method of its own
guild.getguilds.read10, then 2/sClient.fetch_guild
guild.giveaway.cancelA giveaway bot's work, its managers' right (D-351); entering is a person's, never a bot's.guilds.manage5, then 0.5/sno method of its own
guild.giveaway.endguilds.manage5, then 0.5/sno method of its own
guild.giveaway.listguilds.manage5, then 1/sno method of its own
guild.giveaway.rerollguilds.manage5, then 0.5/sno method of its own
guild.giveaway.startguilds.manage5, then 0.2/sno method of its own
guild.invite.createguilds.manage20, then 2/sGuildChannel.create_invite
guild.invite.listmoderate10, then 2/sGuild.invites
guild.invite.previewguilds.read20, then 3/sno method of its own
guild.invite.revokeguilds.manage10, then 2/sInvite.delete
guild.invites.joinsWho invited whom, as the invites list is read (D-350).moderate5, then 1/sno method of its own
guild.joinguilds.read30, then 2/sClient.join_guild
guild.kickmoderate10, then 2/sClient.kickGuild.kickMember.kick
guild.leaveany bot10, then 2/sClient.leave_guild
guild.levels.getThe server's own lines in a channel are read beside its messages, so reading them is reading messages.members.read10, then 2/sno method of its own
guild.levels.listmembers.read5, then 1/sno method of its own
guild.levels.resetguilds.manage10, then 2/sno method of its own
guild.line.deletemoderate30, then 5/sno method of its own
guild.lines.listmessages.read5, then 1/sno method of its own
guild.listguilds.read10, then 2/sno method of its own
guild.membersmembers.read15, then 3/sClient.fetch_members
guild.message.publishmessages.write10, then 1/sno method of its own
guild.message.unpublishmessages.write10, then 1/sno method of its own
guild.onboarding.getguilds.read10, then 2/sno method of its own
guild.onboarding.previewguilds.read20, then 3/sno method of its own
guild.overridesguilds.read10, then 4/sno method of its own
guild.overrides.allguilds.read6, then 2/sno method of its own
guild.profile.getguilds.read15, then 3/sno method of its own
guild.profile.setmessages.write10, then 2/sMember.edit
guild.role.assignmoderate10, then 2/sMember.add_rolesMember.remove_roles
guild.role.createguilds.manage10, then 2/sGuild.create_role
guild.role.deleteguilds.manage10, then 2/sRole.delete
guild.role.reorderguilds.manage10, then 2/sno method of its own
guild.role.updateguilds.manage10, then 2/sRole.edit
guild.rules.getguilds.read10, then 2/sno method of its own
guild.rules.let_inmoderate10, then 2/sno method of its own
guild.rules.setguilds.manage10, then 2/sno method of its own
guild.timeoutmoderate10, then 2/sClient.timeoutMember.timeout
guild.unbanmoderate10, then 2/sClient.unbanGuild.unbanMember.unban
guild.vanity.resolveguilds.read30, then 3/sno method of its own
guild.warnmoderate30, then 5/sno method of its own
guild.warning.deletemoderate30, then 5/sno method of its own
guild.warningsmoderate15, then 3/sno method of its own

the encrypted groups

ActionWho mayRateillest.py
identity.certifyany bot5, then 1/sno method of its own
identity.getany bot10, then 2/sno method of its own
identity.publishThe handler refuses a bot itself and says which action is a bot's (`bot.identity.publish`), which a refusal here would hide.any bot5, then 1/sno method of its own
mls.commit.submitmessages.read or messages.write20, then 5/sMlsRuntime.move_leaves
mls.commits.sincemessages.read or messages.write60, then 12/sMlsRuntime.catch_up
mls.grant.clearmessages.read or messages.write5, then 1/sno method of its own
mls.grant.issuemessages.read or messages.write20, then 5/sno method of its own
mls.grant.neededmessages.read or messages.write60, then 12/sno method of its own
mls.group.resetmessages.read or messages.write2, then 0.2/sno method of its own
mls.group.rostermessages.read or messages.write10, then 2/sno method of its own
mls.group_info.getmessages.read or messages.write10, then 2/sno method of its own
mls.group_info.publishmessages.read or messages.write20, then 5/sno method of its own
mls.key_packages.claimmessages.read or messages.write30, then 6/sno method of its own
mls.key_packages.countmessages.read or messages.write10, then 2/sno method of its own
mls.key_packages.publishmessages.read or messages.write5, then 1/sMlsRuntime.publish_key_packages
mls.key_packages.purgemessages.read or messages.write5, then 1/sno method of its own
mls.welcomes.ackmessages.read or messages.write10, then 2/sMlsRuntime.accept_welcomeMlsRuntime.recover_offline
mls.welcomes.pendingmessages.read or messages.write10, then 2/sMlsRuntime.recover_offline

people

ActionWho mayRateillest.py
name.availableany bot20, then 2/sno method of its own
name.resolveany bot20, then 2/sno method of its own
user.getany bot20, then 4/sClient.fetch_user
user.updateany bot10, then 2/sClientUser.edit

calls: a bot has no microphone; it may moderate one with `moderate`

ActionWho mayRateillest.py
voice.member.deafenmoderate12, then 4/sMember.edit
voice.member.disconnectmoderate12, then 4/sMember.move_to
voice.member.movemoderate12, then 4/sMember.move_to
voice.member.mutemoderate12, then 4/sMember.edit
voice.statesguilds.read10, then 2/sGuild.fetch_voice_states