Reactions
Add and remove emoji reactions on messages.
React to any message with built-in iMessage tapbacks or custom Unicode emoji. Reactions are an iMessage feature — see Protocol Selection for protocol capabilities. See the Reactions API Reference for the full endpoint specification.
Adding a reaction
Section titled “Adding a reaction”curl -X POST https://api.linqapp.com/api/partner/v3/messages/{messageId}/reactions \ -H "Authorization: Bearer $LINQ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "operation": "add", "type": "love" }'await client.messages.addReaction({messageId}, { operation: "add", type: "love",});client.messages.add_reaction( {message_id}, operation="add", type="love",)client.Messages.AddReaction(context.TODO(), {messageId}, linq.MessageAddReactionParams{ Operation: linq.F("add"), Type: linq.F("love"),})Built-in reaction types
Section titled “Built-in reaction types”These map to the standard iMessage tapback reactions:
| Type | Description |
|---|---|
love | Heart |
like | Thumbs up |
dislike | Thumbs down |
laugh | Ha ha |
emphasize | Exclamation marks |
question | Question mark |
Custom emoji reactions
Section titled “Custom emoji reactions”Send any Unicode emoji as a reaction:
curl -X POST https://api.linqapp.com/api/partner/v3/messages/{messageId}/reactions \ -H "Authorization: Bearer $LINQ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "operation": "add", "type": "custom", "custom_emoji": "😍" }'await client.messages.addReaction({messageId}, { operation: "add", type: "custom", custom_emoji: "😍",});client.messages.add_reaction( {message_id}, operation="add", type="custom", custom_emoji="😍",)client.Messages.AddReaction(context.TODO(), {messageId}, linq.MessageAddReactionParams{ Operation: linq.F("add"), Type: linq.F("custom"), CustomEmoji: linq.F("😍"),})Targeting multipart messages
Section titled “Targeting multipart messages”For messages with multiple parts, target a specific part using part_index (0-based):
curl -X POST https://api.linqapp.com/api/partner/v3/messages/{messageId}/reactions \ -H "Authorization: Bearer $LINQ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "operation": "add", "type": "laugh", "part_index": 1 }'await client.messages.addReaction({messageId}, { operation: "add", type: "laugh", part_index: 1,});client.messages.add_reaction( {message_id}, operation="add", type="laugh", part_index=1,)client.Messages.AddReaction(context.TODO(), {messageId}, linq.MessageAddReactionParams{ Operation: linq.F("add"), Type: linq.F("laugh"), PartIndex: linq.F(1),})If part_index is omitted, the reaction applies to the first part.
Removing reactions
Section titled “Removing reactions”Use the same endpoint with "operation": "remove" and the matching type you originally added:
curl -X POST https://api.linqapp.com/api/partner/v3/messages/{messageId}/reactions \ -H "Authorization: Bearer $LINQ_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "operation": "remove", "type": "like" }'await client.messages.addReaction({messageId}, { operation: "remove", type: "like",});client.messages.add_reaction( {message_id}, operation="remove", type="like",)client.Messages.AddReaction(context.TODO(), {messageId}, linq.MessageAddReactionParams{ Operation: linq.F("remove"), Type: linq.F("like"),})Sticker attachments
Section titled “Sticker attachments”A contact can attach a sticker to any message part in iMessage. This is distinct from a custom sticker reaction — the type is "sticker" and the payload includes image metadata.
Sticker attachments are inbound only; the API does not support sending them.
They appear inside parts[].reactions[] on the message and trigger a reaction.added event:
{ "parts": [ { "type": "text", "value": "Hey yea", "reactions": [ { "type": "sticker", "is_me": false, "custom_emoji": null, "sticker": { "file_name": "sticker-abc123.png", "mime_type": "image/png", "url": "https://cdn.linqapp.com/attachments/550e8400/sticker-abc123.png", "width": 320, "height": 320 }, "handle": { "id": "550e8400-e29b-41d4-a716-446655440011", "handle": "+14155559876", "is_me": false, "service": "iMessage", "status": "active", "joined_at": "2025-11-23T17:30:00.000Z", "left_at": null } } ] } ]}Reaction webhook events
Section titled “Reaction webhook events”| Event | Description |
|---|---|
reaction.added | A reaction was added to a message |
reaction.removed | A reaction was removed from a message |
Webhook payloads include reaction_type, message_id, part_index, and sender information. See Reaction events for full payload details.