## Reactions (Tapbacks) `POST /send-reaction` React to a specific message with one of the six standard iMessage tapbacks. Pass the `message_handle` from `/get-messages-api` or `/get-message-api` as `messageHandle`. > **iMessage only** > > Tapbacks only work on iMessage. SMS or RCS targets return `status: "ERROR"` with `Reactions are only supported on iMessage`. Reactions on outbound messages are not supported yet. ### Request body - `messageHandle` (string, required) — Opaque message handle from GET /get-messages-api or GET /get-message-api (message_handle). Identifies the message to react to. - `reaction` ("love" | "like" | "dislike" | "laugh" | "emphasize" | "question", required) — One of the six standard iMessage tapbacks. - `remove` (boolean) — When true, retracts a previous reaction of the same type on this message. Defaults to false. - `partIndex` (integer (>= 0)) — Which part of a multi-part message to react to. Defaults to 0. Valid `reaction` values: `love`, `like`, `dislike`, `laugh`, `emphasize`, `question`. Set `remove` to `true` to retract a previous reaction of the same type. A typical pattern is acknowledging an inbound message with `like` or `love` instead of (or before) a text reply. ### Response On success the endpoint returns HTTP `200` with `{ status: "SENT" | "ERROR", messageHandle, reaction, remove, error_message }`. Auth and request-validation failures still use standard 4xx bodies with an `error` field. **Request — Like** ```bash curl -X POST https://api.tryprojectblue.com/send-reaction \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "messageHandle": "pbm_outk6dawyUgbl-EjXCZk-g5mZnmwmSbilbaX-fvceChASMVXv1v26ONS0XENe2ggdJ82j9TMpw", "reaction": "like" }' ``` **Request — Remove** Retracts a previous reaction of the same type. ```bash curl -X POST https://api.tryprojectblue.com/send-reaction \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "messageHandle": "pbm_outk6dawyUgbl-EjXCZk-g5mZnmwmSbilbaX-fvceChASMVXv1v26ONS0XENe2ggdJ82j9TMpw", "reaction": "like", "remove": true }' ``` **Response — SENT** ```json { "status": "SENT", "messageHandle": "pbm_outk6dawyUgbl-EjXCZk-g5mZnmwmSbilbaX-fvceChASMVXv1v26ONS0XENe2ggdJ82j9TMpw", "reaction": "like", "remove": false, "error_message": null } ``` **Response — ERROR** Device-level failure. Auth and validation failures use 4xx with an error field. ```json { "status": "ERROR", "messageHandle": "pbm_outk6dawyUgbl-EjXCZk-g5mZnmwmSbilbaX-fvceChASMVXv1v26ONS0XENe2ggdJ82j9TMpw", "reaction": "like", "error_message": "Reactions are only supported on iMessage" } ```