All integrations

Revolt (Stoat)

MESSAGING · MESSAGING

Channel messages, pins, reactions, and roles on the server they connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

revolt_delete_bots_by_bot_idWRITE

Delete Bot. Delete a bot by its id. DELETE /bots/{bot_id}.

api
revolt_delete_bots_by_bot_id_discoverWRITE

Delete bot Discover request. This cannot be used if your request is no longer in the queue (ie approved or rejected). If you wish to reapply after a rejection, submit another POST. This endpoint is ONLY USEFUL in production on stoat.chat/app. DELETE /bots/{bot_id}/discover.

api
revolt_delete_channels_by_group_id_recipients_by_member_idWRITE

Remove Member from Group. Removes a user from the group. DELETE /channels/{group_id}/recipients/{member_id}.

api
revolt_delete_channels_by_targetWRITE

Close Channel. Deletes a server channel, leaves a group or closes a group. DELETE /channels/{target}.

api
revolt_delete_channels_by_target_messages_bulkWRITE

Bulk Delete Messages. Delete multiple messages you've sent or one you have permission to delete. This will always require ManageMessages permission regardless of whether you own the message or not. Messages must have been sent within the past 1 week. DELETE /channels/{target}/messages/bulk.

api
revolt_delete_channels_by_target_messages_by_msgWRITE

Delete Message. Delete a message you've sent or one you have permission to delete. DELETE /channels/{target}/messages/{msg}.

api
revolt_delete_channels_by_target_messages_by_msg_pinWRITE

Unpins a message. Unpins a message by its id. DELETE /channels/{target}/messages/{msg}/pin.

api
revolt_delete_channels_by_target_messages_by_msg_reactionsWRITE

Remove All Reactions from Message. Remove your own, someone else's or all of a given reaction. Requires ManageMessages permission. DELETE /channels/{target}/messages/{msg}/reactions.

api
revolt_delete_channels_by_target_messages_by_msg_reactions_by_emojiWRITE

Remove Reaction(s) to Message. Remove your own, someone else's or all of a given reaction. Requires ManageMessages if changing others' reactions. DELETE /channels/{target}/messages/{msg}/reactions/{emoji}.

api
revolt_delete_custom_emoji_by_emoji_idWRITE

Delete Emoji. Delete an emoji by its id. DELETE /custom/emoji/{emoji_id}.

api
revolt_delete_invites_by_targetWRITE

Delete Invite. Delete an invite by its id. DELETE /invites/{target}.

api
revolt_delete_servers_by_server_bans_by_targetWRITE

Unban user. Remove a user's ban. DELETE /servers/{server}/bans/{target}.

api
revolt_delete_servers_by_server_discoverWRITE

Delete server Discover request. This cannot be used if your request is no longer in the queue (ie approved or rejected). If you wish to reapply after a rejection, submit another POST. This endpoint is ONLY USEFUL in production on stoat.chat/app. DELETE /servers/{server}/discover.

api
revolt_delete_servers_by_server_id_members_by_member_idWRITE

Kick Member. Removes a member from the server. DELETE /servers/{server_id}/members/{member_id}.

api
revolt_delete_servers_by_targetWRITE

Delete / Leave Server. Deletes a server if owner otherwise leaves. DELETE /servers/{target}.

api
revolt_delete_servers_by_target_roles_by_role_idWRITE

Delete Role. Delete a server role by its id. DELETE /servers/{target}/roles/{role_id}.

api
revolt_delete_users_by_target_blockWRITE

Unblock User. Unblock another user by their id. DELETE /users/{target}/block.

api
revolt_delete_users_by_target_friendWRITE

Deny Friend Request / Remove Friend. Denies another user's friend request or removes an existing friend. DELETE /users/{target}/friend.

api
revolt_delete_webhooks_by_webhook_idWRITE

Deletes a webhook. DELETE /webhooks/{webhook_id}.

api
revolt_getREAD

Query Node. Fetch the server configuration for this Revolt instance. GET /.

api
revolt_get_bots_by_bot_id_discoverREAD

Get bot Discover request status. Fetches the status of your Discover request. If it has been approved or denied, the reason will be provided (if applicable). This endpoint is ONLY USEFUL in production on stoat.chat/app. GET /bots/{bot_id}/discover.

api
revolt_get_bots_by_target_inviteREAD

Fetch Public Bot. Fetch details of a public (or owned) bot by its id. GET /bots/{target}/invite.

api
revolt_get_channels_by_channel_id_webhooksREAD

Gets all webhooks. Gets all webhooks inside the channel GET /channels/{channel_id}/webhooks.

api
revolt_get_channels_by_targetREAD

Fetch Channel. Fetch channel by its id. GET /channels/{target}.

api
revolt_get_channels_by_target_membersREAD

Fetch Group Members. Retrieves all users who are part of this group. This may not return full user information if users are not friends but have mutual connections. GET /channels/{target}/members.

api
revolt_get_channels_by_target_messagesREAD

Fetch Messages. Fetch multiple messages. GET /channels/{target}/messages.

api
revolt_get_channels_by_target_messages_by_msgREAD

Fetch Message. Retrieves a message by its id. GET /channels/{target}/messages/{msg}.

api
revolt_get_custom_emoji_by_emoji_idREAD

Fetch Emoji. Fetch an emoji by its id. GET /custom/emoji/{emoji_id}.

api
revolt_get_invites_by_targetREAD

Fetch Invite. Fetch an invite by its id. GET /invites/{target}.

api
revolt_get_onboard_helloREAD

Check Onboarding Status. This will tell you whether the current account requires onboarding or whether you can continue to send requests as usual. You may skip calling this if you're restoring an existing session. GET /onboard/hello. NEEDS A USER SESSION TOKEN: onboarding state belongs to a user account, and measured 2026-09-17 a valid bot token is refused 401 here. A connection made with the Bot token card cannot call this tool and will be told so before the request is made.

api
revolt_get_servers_by_server_discoverREAD

Get server Discover request status. Fetches the status of your Discover request. If it has been approved or denied, the reason will be provided (if applicable). This endpoint is ONLY USEFUL in production on stoat.chat/app. GET /servers/{server}/discover.

api
revolt_get_servers_by_server_id_members_by_member_idREAD

Fetch Member. Retrieve a member. GET /servers/{server_id}/members/{member_id}.

api
revolt_get_servers_by_targetREAD

Fetch Server. Fetch a server by its id. GET /servers/{target}.

api
revolt_get_servers_by_target_audit_logsREAD

Audit Log Query. Queries a server's audit logs. GET /servers/{target}/audit_logs. ONE FILTER IS NOT AVAILABLE THROUGH THIS TOOL: an ARRAY-typed filter whose query-string wire form is unmeasured. A bot identity cannot create a server (400 IsBot, measured 2026-09-17) and this wave's bot is in none, so every audit-log request answers 404 before a filter is parsed -- there was no way to tell `type=a&type=b` from `type[]=a&type[]=b`, and the wrong one returns an unfiltered 200 a caller cannot distinguish from a correct answer. Settle it by calling GET /servers/{id}/audit_logs on a real server with one known-present action type and one invented value, and compare the two result counts.

api
revolt_get_servers_by_target_bansREAD

Fetch Bans. Fetch all bans on a server. GET /servers/{target}/bans.

api
revolt_get_servers_by_target_emojisREAD

Fetch Server Emoji. Fetch all emoji on a server. GET /servers/{target}/emojis.

api
revolt_get_servers_by_target_invitesREAD

Fetch Invites. Fetch all server invites. GET /servers/{target}/invites.

api
revolt_get_servers_by_target_membersREAD

Fetch Members. Fetch all server members. GET /servers/{target}/members.

api
revolt_get_servers_by_target_members_experimental_queryREAD

Query members by name. Query members by a given name, this API is not stable and will be removed in the future. GET /servers/{target}/members_experimental_query.

api
revolt_get_servers_by_target_roles_by_role_idREAD

Fetch Role. Fetch a role by its id. GET /servers/{target}/roles/{role_id}.

api
revolt_get_sync_unreadsREAD

Fetch Unreads. Fetch information about unread state on channels. GET /sync/unreads.

api
revolt_get_users_by_targetREAD

Fetch User. Retrieve a user's information. GET /users/{target}.

api
revolt_get_users_by_target_dmREAD

Open Direct Message. Open a DM with another user. If the target is oneself, a saved messages channel is returned. GET /users/{target}/dm.

api
revolt_get_users_by_target_flagsREAD

Fetch User Flags. Retrieve a user's flags. GET /users/{target}/flags.

api
revolt_get_users_by_target_mutualREAD

Fetch Mutual Friends, Servers, Groups and DMs. Retrieve a list of mutual friends, servers, groups and DMs with another user. GET /users/{target}/mutual.

api
revolt_get_users_by_target_profileREAD

Fetch User Profile. Retrieve a user's profile data. Will fail if you do not have permission to access the other user's profile. GET /users/{target}/profile.

api
revolt_get_users_dmsREAD

Fetch Direct Message Channels. This fetches your direct messages, including any DM and group DM conversations. GET /users/dms.

api
revolt_get_users_meREAD

Fetch Self. Retrieve your user information. GET /users/@me.

api
revolt_get_webhooks_by_webhook_idREAD

Gets a webhook. GET /webhooks/{webhook_id}.

api
revolt_patch_channels_by_targetWRITE

Edit Channel. Edit a channel object by its id. PATCH /channels/{target}.

api
revolt_patch_channels_by_target_messages_by_msgWRITE

Edit Message. Edits a message that you've previously sent. PATCH /channels/{target}/messages/{msg}.

api
revolt_patch_custom_emoji_by_emoji_idWRITE

Edit Emoji. Edit an emoji by its id. PATCH /custom/emoji/{emoji_id}.

api
revolt_patch_servers_by_server_id_members_by_member_idWRITE

Edit Member. Edit a member by their id. PATCH /servers/{server_id}/members/{member_id}.

api
revolt_patch_servers_by_targetWRITE

Edit Server. Edit a server by its id. PATCH /servers/{target}.

api
revolt_patch_servers_by_target_roles_by_role_idWRITE

Edit Role. Edit a role by its id. PATCH /servers/{target}/roles/{role_id}.

api
revolt_patch_servers_by_target_roles_ranksWRITE

Edits server roles ranks. Edit's server role's ranks. PATCH /servers/{target}/roles/ranks.

api
revolt_patch_users_by_targetWRITE

Edit User. Edit currently authenticated user. PATCH /users/{target}.

api
revolt_patch_webhooks_by_webhook_idWRITE

Edits a webhook. PATCH /webhooks/{webhook_id}.

api
revolt_post_bots_by_target_inviteWRITE

Invite Bot. Invite a bot to a server or group by its id.` POST /bots/{target}/invite.

api
revolt_post_channels_by_channel_id_webhooksWRITE

Creates a webhook. Creates a webhook which 3rd party platforms can use to send messages POST /channels/{channel_id}/webhooks.

api
revolt_post_channels_by_target_invitesWRITE

Create Invite. Creates an invite to this channel. Channel must be a TextChannel. POST /channels/{target}/invites.

api
revolt_post_channels_by_target_join_callWRITE

Join Call. Asks the voice server for a token to join the call. POST /channels/{target}/join_call.

api
revolt_post_channels_by_target_messagesWRITE

Send Message. Sends a message to the given channel. POST /channels/{target}/messages.

api
revolt_post_channels_by_target_messages_by_msg_pinWRITE

Pins a message. Pins a message by its id. POST /channels/{target}/messages/{msg}/pin.

api
revolt_post_channels_by_target_searchWRITE

Search for Messages. This route searches for messages within the given parameters. POST /channels/{target}/search.

api
revolt_post_channels_createWRITE

Create Group. Create a new group channel. POST /channels/create.

api
revolt_post_invites_by_targetWRITE

Join Invite. Join an invite by its ID POST /invites/{target}.

api
revolt_post_onboard_completeWRITE

Complete Onboarding. This sets a new username, completes onboarding and allows a user to start using Revolt. POST /onboard/complete. NEEDS A USER SESSION TOKEN: onboarding completes a user account, and measured 2026-09-17 a valid bot token is refused 401 here. A connection made with the Bot token card cannot call this tool and will be told so before the request is made.

api
revolt_post_policy_acknowledgeWRITE

Acknowledge Policy Changes. Accept/acknowledge changes to platform policy. POST /policy/acknowledge.

api
revolt_post_push_subscribeWRITE

Push Subscribe. Create a new Web Push subscription. If an existing subscription exists on this session, it will be removed. POST /push/subscribe. NEEDS A USER SESSION TOKEN: push subscriptions belong to a user session, and measured 2026-09-17 a valid bot token is refused 401 here. A connection made with the Bot token card cannot call this tool and will be told so before the request is made.

api
revolt_post_push_unsubscribeWRITE

Unsubscribe. Remove the Web Push subscription associated with the current session. POST /push/unsubscribe. NEEDS A USER SESSION TOKEN: push subscriptions belong to a user session, and measured 2026-09-17 a valid bot token is refused 401 here. A connection made with the Bot token card cannot call this tool and will be told so before the request is made.

api
revolt_post_safety_reportWRITE

Report Content. Report a piece of content to the moderation team. POST /safety/report.

api
revolt_post_servers_by_server_channelsWRITE

Create Channel. Create a new Text or Voice channel. POST /servers/{server}/channels.

api
revolt_post_servers_by_target_rolesWRITE

Create Role. Creates a new server role. POST /servers/{target}/roles.

api
revolt_post_servers_createWRITE

Create Server. Create a new server. POST /servers/create. NOT AVAILABLE TO BOT IDENTITIES: Revolt refuses server creation to bot identities: measured 2026-09-17, a valid bot token answers 400 {"type":"IsBot"}. A human account creates the server and invites the bot to it.

api
revolt_post_sync_settings_fetchWRITE

Fetch Settings. Fetch settings from server filtered by keys. This will return an object with the requested keys, each value is a tuple of (timestamp, value), the value is the previously uploaded data. POST /sync/settings/fetch.

api
revolt_post_sync_settings_setWRITE

Set Settings. Upload data to save to settings. POST /sync/settings/set.

api
revolt_post_users_friendWRITE

Send Friend Request. Send a friend request to another user. POST /users/friend.

api
revolt_put_bots_by_bot_id_discoverWRITE

Add bot to Discover. This puts your bot into the Discover request queue. This endpoint is ONLY USEFUL in production on stoat.chat/app. PUT /bots/{bot_id}/discover.

api
revolt_put_channels_by_group_id_recipients_by_member_idWRITE

Add Member to Group. Adds another user to the group. PUT /channels/{group_id}/recipients/{member_id}.

api
revolt_put_channels_by_target_ack_by_messageWRITE

Acknowledge Message. Lets the server and all other clients know that we've seen this message id in this channel. PUT /channels/{target}/ack/{message}.

api
revolt_put_channels_by_target_end_ring_by_target_userWRITE

Stop Ring. Stops ringing a specific user in a dm call. You must be in the call to use this endpoint, returns NotConnected otherwise. Only valid in DM/Group channels, will return NoEffect in servers. Returns NotFound if the user is not in the dm/group channel PUT /channels/{target}/end_ring/{target_user}.

api
revolt_put_channels_by_target_messages_by_msg_reactions_by_emojiWRITE

Add Reaction to Message. React to a given message. PUT /channels/{target}/messages/{msg}/reactions/{emoji}.

api
revolt_put_channels_by_target_permissions_by_role_idWRITE

Set channel role permissions. Sets permissions for the specified role in this channel. Channel must be a TextChannel. PUT /channels/{target}/permissions/{role_id}.

api
revolt_put_channels_by_target_permissions_defaultWRITE

Set default channel permissions. Sets permissions for the default role in this channel. Channel must be a Group or TextChannel. PUT /channels/{target}/permissions/default.

api
revolt_put_custom_emoji_by_emoji_idWRITE

Create New Emoji. Create an emoji by its Autumn upload id. PUT /custom/emoji/{emoji_id}.

api
revolt_put_servers_by_server_bans_by_targetWRITE

Ban User. Ban a user by their id. PUT /servers/{server}/bans/{target}.

api
revolt_put_servers_by_server_discoverWRITE

Add server to Discover. This puts your server into the Discover request queue. This endpoint is ONLY USEFUL in production on stoat.chat/app. PUT /servers/{server}/discover.

api
revolt_put_servers_by_target_ackWRITE

Mark Server As Read. Mark all channels in a server as read. PUT /servers/{target}/ack.

api
revolt_put_servers_by_target_permissions_by_role_idWRITE

Set server role permissions. Sets permissions for the specified role in the server. PUT /servers/{target}/permissions/{role_id}.

api
revolt_put_servers_by_target_permissions_defaultWRITE

Set default server permissions. Sets permissions for the default role in this server. PUT /servers/{target}/permissions/default.

api
revolt_put_users_by_target_blockWRITE

Block User. Block another user by their id. PUT /users/{target}/block.

api
revolt_put_users_by_target_friendWRITE

Accept Friend Request. Accept another user's friend request. PUT /users/{target}/friend.

api

Put Revolt (Stoat) behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.