Skip to main content
Auth. HMAC v1 or bearer token — see Authentication. Status. Live · Idempotent: No (each call posts a fresh tapback).
Sends a tapback reaction to a message in the chat. The six valid values map to the standard iMessage tapbacks (love ❤, like 👍, dislike 👎, laugh 😂, emphasize ‼, question ❓). The reaction is sent from the same line the original message was sent from, so the recipient sees the tapback attached to the right bubble.

Which id goes in the URL

This is a message-scoped route: {id} is a message_id, not a chat_id. Prefer the Chert-issued message_id returned by POST /api/v1/send, or the message.id returned by POST /api/v1/chats and POST /api/v1/chats/{id}/messages. Chert resolves that id to the underlying iMessage identifier internally before sending the tapback.
For inbound messages and history rows, the id from GET /api/v1/chats/{id}/messages and inbound message.received webhooks is also accepted.

Request

POST /api/v1/messages/{id}/react

Response

Path parameters

string
required
The Chert message_id returned by a send endpoint, or the message id surfaced on chat-message listings and inbound message.received webhook payloads.

Body

enum
required
One of: love | like | dislike | laugh | emphasize | question. Maps to the six standard iMessage tapbacks.

Response fields

string
Always "sent" on success.
string
The Chert message_id the reaction was attached to.
enum
Echoed-back normalized reaction value.

Errors

See the full error code reference.

See also