Skip to content
Developers
Menu

API reference

Reactions

Message reactions with Unicode emoji, behind the reactions flag. Paths take the emoji URL-encoded. Reacting shares nothing with notifications: nobody is pinged.

Every path is relative to https://api.palloo.app/v1. Send a bot token as Authorization: Bearer palloo_bot_... unless the operation says otherwise; see Authentication.

On this page

Remove all reactions

DELETE /channels/{id}/messages/{messageID}/reactions Bot token: Call it with a bot token (people can call it too).

Remove every reaction from a message. Requires Manage Messages (in a community) and Read Message History.

Sends message_reaction_remove_all. Not recorded in the moderation log, as on Discord. In a DM nobody can remove the other participant's reactions. A message without reactions answers 204. Works while the reactions flag is off for the server, so moderators can clear stored reactions. Shares the reaction rate limit.

Required permissions

Requires Manage Messages (in a community) and Read Message History.

Parameters

Parameters of Remove all reactions
Name In Type Description
id Required path string

Channel ID.

messageID Required path string

Message ID. The message must be in the channel.

Responses

204

Removed, or there was nothing to remove.

400

system_message: system messages have no reactions.

Body: Error

401

unauthenticated: the bearer token is missing, invalid or expired.

Body: Error

WWW-Authenticate header.

403

missing_permission (no Add Reactions for an emoji nobody has used on the message yet, no Read Message History, or no Manage Messages to remove other people's reactions; in a DM, another participant's reactions can never be removed), timed_out, thread_locked (adding in a locked thread without Manage Threads), moderation_mfa_required, reactions_disabled (the reactions flag is off for this server, or in a DM not on for everyone), or dm_not_allowed: the other participant of the DM does not accept messages from the caller.

Body: Error

404

channel_not_found: no such channel, or the caller cannot view it. message_not_found: the message does not exist in this channel.

Body: Error

409

channel_not_text: a voice channel or category.

Body: Error

429

rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).

Body: Error

Retry-After header.

500

internal: an unexpected server error. Details are only in server logs.

Body: Error

List reaction users

GET /channels/{id}/messages/{messageID}/reactions/{emoji} Bot token: Call it with a bot token (people can call it too).

Who reacted to a message with one emoji, in the order they reacted. Requires View Channel and Read Message History.

Pages with after (the last user ID of the previous page) and limit. Anyone who can read the message can list who reacted, as on Discord. A user who no longer exists is shown as "Deleted User". Rate limited per account (reaction_list_per_user: 30 at once, then 1 per second).

Required permissions

Requires View Channel and Read Message History.

Parameters

Parameters of List reaction users
Name In Type Description
id Required path string

Channel ID.

messageID Required path string

Message ID. The message must be in the channel.

emoji Required path string

One Unicode emoji, URL-encoded (%F0%9F%91%8D for 👍): an RGI emoji from Unicode's emoji-test.txt (Emoji 18.0), in its fully qualified, minimally qualified or unqualified form. The server stores the fully qualified form, so ❤ and ❤️, or ❤‍🔥 and ❤️‍🔥, are one reaction. Other symbols, ZWJ sequences outside the list and regional indicator pairs that are not flags answer invalid_emoji. Events and summaries carry the fully qualified form. Custom emoji are not supported yet.

at least 1 characters; at most 256 characters

after query ID

A user ID from the previous page; only users who reacted after them.

pattern ^[0-9A-HJKMNP-TV-Z]{26}$

limit query integer

Users per page, 1 to 100 (default 25).

at least 1; at most 100

Responses

200

One page of users.

Body: ReactionUserList

Example response (200)
{
  "users": [
    {
      "id": "01J9ZQ3V5K8M2N4P6R8T0W2Y4A",
      "username": "string",
      "display_name": "string",
      "kind": "user",
      "avatar": "string",
      "avatar_dark": "string"
    }
  ]
}
400

invalid_emoji: not one Unicode emoji, or invalid_query: after is not a user ID or limit is not 1 to 100.

Body: Error

401

unauthenticated: the bearer token is missing, invalid or expired.

Body: Error

WWW-Authenticate header.

403

missing_permission (no Add Reactions for an emoji nobody has used on the message yet, no Read Message History, or no Manage Messages to remove other people's reactions; in a DM, another participant's reactions can never be removed), timed_out, thread_locked (adding in a locked thread without Manage Threads), moderation_mfa_required, reactions_disabled (the reactions flag is off for this server, or in a DM not on for everyone), or dm_not_allowed: the other participant of the DM does not accept messages from the caller.

Body: Error

404

channel_not_found: no such channel, or the caller cannot view it. message_not_found: the message does not exist in this channel.

Body: Error

409

channel_not_text: a voice channel or category.

Body: Error

429

rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).

Body: Error

Retry-After header.

500

internal: an unexpected server error. Details are only in server logs.

Body: Error

Remove emoji reactions

DELETE /channels/{id}/messages/{messageID}/reactions/{emoji} Bot token: Call it with a bot token (people can call it too).

Remove every reaction with one emoji from a message. Requires Manage Messages (in a community) and Read Message History.

Sends message_reaction_remove_emoji. Not recorded in the moderation log. Answers 204 when nobody reacted with that emoji. Works while the reactions flag is off for the server. Shares the reaction rate limit.

Required permissions

Requires Manage Messages (in a community) and Read Message History.

Parameters

Parameters of Remove emoji reactions
Name In Type Description
id Required path string

Channel ID.

messageID Required path string

Message ID. The message must be in the channel.

emoji Required path string

One Unicode emoji, URL-encoded (%F0%9F%91%8D for 👍): an RGI emoji from Unicode's emoji-test.txt (Emoji 18.0), in its fully qualified, minimally qualified or unqualified form. The server stores the fully qualified form, so ❤ and ❤️, or ❤‍🔥 and ❤️‍🔥, are one reaction. Other symbols, ZWJ sequences outside the list and regional indicator pairs that are not flags answer invalid_emoji. Events and summaries carry the fully qualified form. Custom emoji are not supported yet.

at least 1 characters; at most 256 characters

Responses

204

Removed, or there was nothing to remove.

400

invalid_emoji: not one Unicode emoji, or system_message.

Body: Error

401

unauthenticated: the bearer token is missing, invalid or expired.

Body: Error

WWW-Authenticate header.

403

missing_permission (no Add Reactions for an emoji nobody has used on the message yet, no Read Message History, or no Manage Messages to remove other people's reactions; in a DM, another participant's reactions can never be removed), timed_out, thread_locked (adding in a locked thread without Manage Threads), moderation_mfa_required, reactions_disabled (the reactions flag is off for this server, or in a DM not on for everyone), or dm_not_allowed: the other participant of the DM does not accept messages from the caller.

Body: Error

404

channel_not_found: no such channel, or the caller cannot view it. message_not_found: the message does not exist in this channel.

Body: Error

409

channel_not_text: a voice channel or category.

Body: Error

429

rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).

Body: Error

Retry-After header.

500

internal: an unexpected server error. Details are only in server logs.

Body: Error

Add reaction

PUT /channels/{id}/messages/{messageID}/reactions/{emoji}/@me Bot token: Call it with a bot token (people can call it too).

React to a message. Requires View Channel and Read Message History, and Add Reactions when nobody has reacted with this emoji yet, as on Discord.

Anyone who can read the message can add to an existing reaction; starting a new one needs Add Reactions. A message holds at most 20 different emoji. A timed-out member cannot react. In a DM the caller must still be allowed to message the other participant (a block either way stops reactions). Bots can react; webhooks cannot. Reacting again with the same emoji changes nothing and answers 204. In a locked thread, starting or joining a reaction needs Manage Threads, as sending does. Sends message_reaction_add. Reactions send no notification, as on Discord. Rate limited per account (reaction_per_user, or reaction_per_bot) and per message across every account (reaction_per_message: 50 at once, then 50 per second, shared with removing your own reaction). When the message is too busy to take the reaction within a second, answers 429 with Retry-After.

Required permissions

Requires View Channel and Read Message History, and Add Reactions when nobody has reacted with this emoji yet, as on Discord.

Parameters

Parameters of Add reaction
Name In Type Description
id Required path string

Channel ID.

messageID Required path string

Message ID. The message must be in the channel.

emoji Required path string

One Unicode emoji, URL-encoded (%F0%9F%91%8D for 👍): an RGI emoji from Unicode's emoji-test.txt (Emoji 18.0), in its fully qualified, minimally qualified or unqualified form. The server stores the fully qualified form, so ❤ and ❤️, or ❤‍🔥 and ❤️‍🔥, are one reaction. Other symbols, ZWJ sequences outside the list and regional indicator pairs that are not flags answer invalid_emoji. Events and summaries carry the fully qualified form. Custom emoji are not supported yet.

at least 1 characters; at most 256 characters

Responses

204

Reacted, or had already reacted with this emoji.

400

invalid_emoji: not one Unicode emoji (custom emoji are not supported yet), or system_message: system messages cannot have reactions.

Body: Error

401

unauthenticated: the bearer token is missing, invalid or expired.

Body: Error

WWW-Authenticate header.

403

missing_permission (no Add Reactions for an emoji nobody has used on the message yet, no Read Message History, or no Manage Messages to remove other people's reactions; in a DM, another participant's reactions can never be removed), timed_out, thread_locked (adding in a locked thread without Manage Threads), moderation_mfa_required, reactions_disabled (the reactions flag is off for this server, or in a DM not on for everyone), or dm_not_allowed: the other participant of the DM does not accept messages from the caller.

Body: Error

404

channel_not_found: no such channel, or the caller cannot view it. message_not_found: the message does not exist in this channel.

Body: Error

409

reaction_limit_reached: the message already has 20 different emoji, channel_not_text: a voice channel or category, thread_archived: the thread is archived, or blocking_user: the caller blocked the other participant of the DM.

Body: Error

429

rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).

Body: Error

Retry-After header.

500

internal: an unexpected server error. Details are only in server logs.

Body: Error

Remove own reaction

DELETE /channels/{id}/messages/{messageID}/reactions/{emoji}/@me Bot token: Call it with a bot token (people can call it too).

Remove your own reaction. Requires View Channel.

Allowed while timed out, after a block and in a locked thread, as on Discord. Answers 204 when the caller had not reacted with this emoji. Sends message_reaction_remove. Shares the reaction rate limit and the per-message limit.

Required permissions

Requires View Channel.

Parameters

Parameters of Remove own reaction
Name In Type Description
id Required path string

Channel ID.

messageID Required path string

Message ID. The message must be in the channel.

emoji Required path string

One Unicode emoji, URL-encoded (%F0%9F%91%8D for 👍): an RGI emoji from Unicode's emoji-test.txt (Emoji 18.0), in its fully qualified, minimally qualified or unqualified form. The server stores the fully qualified form, so ❤ and ❤️, or ❤‍🔥 and ❤️‍🔥, are one reaction. Other symbols, ZWJ sequences outside the list and regional indicator pairs that are not flags answer invalid_emoji. Events and summaries carry the fully qualified form. Custom emoji are not supported yet.

at least 1 characters; at most 256 characters

Responses

204

Removed, or was not there.

400

invalid_emoji: not one Unicode emoji, or system_message.

Body: Error

401

unauthenticated: the bearer token is missing, invalid or expired.

Body: Error

WWW-Authenticate header.

403

missing_permission (no Add Reactions for an emoji nobody has used on the message yet, no Read Message History, or no Manage Messages to remove other people's reactions; in a DM, another participant's reactions can never be removed), timed_out, thread_locked (adding in a locked thread without Manage Threads), moderation_mfa_required, reactions_disabled (the reactions flag is off for this server, or in a DM not on for everyone), or dm_not_allowed: the other participant of the DM does not accept messages from the caller.

Body: Error

404

channel_not_found: no such channel, or the caller cannot view it. message_not_found: the message does not exist in this channel.

Body: Error

409

channel_not_text: a voice channel or category, or thread_archived.

Body: Error

429

rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).

Body: Error

Retry-After header.

500

internal: an unexpected server error. Details are only in server logs.

Body: Error

Remove user reaction

DELETE /channels/{id}/messages/{messageID}/reactions/{emoji}/{userID} Bot token: Call it with a bot token (people can call it too).

Remove someone's reaction. Requires Manage Messages (in a community) and Read Message History; your own user ID works like @me.

Sends message_reaction_remove. Not recorded in the moderation log, as on Discord. In a DM only your own reaction can be removed. Answers 204 when that user had not reacted with this emoji. Removing someone else's reaction works while the reactions flag is off for the server. Shares the reaction rate limit.

Required permissions

Requires Manage Messages (in a community) and Read Message History; your own user ID works like `@me`.

Parameters

Parameters of Remove user reaction
Name In Type Description
id Required path string

Channel ID.

messageID Required path string

Message ID. The message must be in the channel.

emoji Required path string

One Unicode emoji, URL-encoded (%F0%9F%91%8D for 👍): an RGI emoji from Unicode's emoji-test.txt (Emoji 18.0), in its fully qualified, minimally qualified or unqualified form. The server stores the fully qualified form, so ❤ and ❤️, or ❤‍🔥 and ❤️‍🔥, are one reaction. Other symbols, ZWJ sequences outside the list and regional indicator pairs that are not flags answer invalid_emoji. Events and summaries carry the fully qualified form. Custom emoji are not supported yet.

at least 1 characters; at most 256 characters

userID Required path string

The member's user ID.

Responses

204

Removed, or was not there.

400

invalid_emoji: not one Unicode emoji, or system_message.

Body: Error

401

unauthenticated: the bearer token is missing, invalid or expired.

Body: Error

WWW-Authenticate header.

403

missing_permission (no Add Reactions for an emoji nobody has used on the message yet, no Read Message History, or no Manage Messages to remove other people's reactions; in a DM, another participant's reactions can never be removed), timed_out, thread_locked (adding in a locked thread without Manage Threads), moderation_mfa_required, reactions_disabled (the reactions flag is off for this server, or in a DM not on for everyone), or dm_not_allowed: the other participant of the DM does not accept messages from the caller.

Body: Error

404

channel_not_found: no such channel, or the caller cannot view it. message_not_found: the message does not exist in this channel.

Body: Error

409

channel_not_text: a voice channel or category.

Body: Error

429

rate_limited: too many attempts. Every operation a bot calls is also limited per bot (50 at once, then 50 per second), so any authenticated operation can answer this to a bot. Changes to a community's structure (creating or changing the community, channels, roles, member roles, overwrites, invites, kicks, bans, timeouts, report updates and actions, and bots) are also limited per caller (30 at once, then 1 per second) and per community (60 at once, then 1 per second), and creating communities per caller (10 at once, then 1 every 5 minutes).

Body: Error

Retry-After header.

500

internal: an unexpected server error. Details are only in server logs.

Body: Error