Skip to main content
POST
Add or remove a reaction

Authorizations

Authorization
string
header
required

Agent Token (rly_live_…), shown once when the agent is created.

Path Parameters

message_id
string
required
Pattern: ^msg_[0-9a-hjkmnp-tv-z]{26}$

Body

application/json
operation
enum<string>
required
Available options:
add,
remove
type
enum<string>
required

Apple's six tapback verbs (chat.db associated_message_type 2000–2005, spelled the way Linq spells them) plus custom, which carries the emoji in custom_emoji.

Available options:
love,
like,
dislike,
laugh,
emphasize,
question,
custom
custom_emoji
string

Required exactly when type is custom.

Required string length: 1 - 32
Example:

"🔥"

target_part_id
string | null

React to one exact part, of any kind. It must name a part this message has. Omit it, or send null, to react to the whole message.

Pattern: ^prt_[0-9a-hjkmnp-tv-z]{26}$
Example:

"prt_01k1m4q9vn2r7t9b4c6qdh8xwy"

Response

Reaction state updated. The body echoes the reaction Relay recorded, which is also what recipients receive in the reaction.added or reaction.removed event.

reaction
object
required

One reaction as Relay recorded it. The same object is the reaction endpoint's response body and the data.reaction of a reaction.added or reaction.removed event, so a consumer reads one shape from both paths. It is flatter than the reactions array in a projected message, which carries actor_kind and actor_id instead of a nested actor: see ProjectedReaction.