Skip to main content
Add a tapback, like a heart or a thumbs up, or any emoji to a message in an iMessage chat, and remove it again. Reactions go out from the Blujay phone number in the message’s chat.

Add a reaction

Send the reaction type for a message.
Blujay answers 202 Accepted. The full response is in the API reference.

Reaction types

React with an emoji

Send type: "custom" with exactly one emoji in emoji.
curl
  • Skin tones, flags and families count as one emoji.
  • People on iOS 17 or earlier see it as the text “Reacted 😍 to …”.

React to part of a message

A message with several parts, like a text and two photos, takes a reaction on each part. Set part_index to pick one; it defaults to 0, the first part.
curl

Remove a reaction

Name the reaction in the path. Add ?part_index= if it isn’t on the first part.
It also removes reactions added in the Blujay app. To remove an emoji reaction, use custom and pass the emoji, URL-encoded:
curl

Confirm with webhooks

reactor tells you who reacted: one of your numbers, or the contact’s phone or email. See the full payload on Webhook events.

Emoji and stickers you receive

  • Emoji reactions arrive as type: "custom" with emoji.
  • Stickers a contact puts on a message arrive as type: "sticker" with sticker: the image’s attachment_id, file details and download_url.
  • Webhooks: payload version 2026-10-30 sends both as reaction.added and reaction.removed. Earlier versions get them as message.received. See Payload versions.
  • Message reads: GET /v1/messages/{message_id} lists the message’s current reactions, emoji and stickers included.

Good to know

  • iMessage only. The message must be sent; one that is still sending, failed or was unsent can’t take a reaction.
  • One reaction per person per part. A new reaction replaces your old one. Sending one you already have, or removing one you don’t, returns 202 and sends nothing.
  • 202 means accepted, not delivered. Wait for reaction.added. Retrying is safe: a reaction you already have sends nothing.
  • No stickers. You can’t send or remove a sticker (400 VALIDATION_ERROR).
  • Not messages. Reactions never appear as messages in lists. Each message read carries its current reactions; message webhooks don’t.
  • Errors. Each one links to its fix from the API reference and error codes.

Next steps

Receive messages

How your contacts’ reactions reach you.

Threaded replies

Reply to a specific message in its iMessage thread.