2025-01-01

Reaction removed

Triggered when a reaction (tapback) is removed from a message.

postWebhookreaction.removed.v2025-01-01

Payload

api_versionstring required

API version for the webhook payload format

webhook_versionstring required

Date-based webhook payload version. Determined by the ?version= query parameter in your webhook subscription URL. If no version parameter is specified, defaults based on subscription creation date.

event_type'message.sent' | 'message.received' | 'message.read' | 'message.delivered' | 'message.failed' | 'message.edited' | 'reaction.added' | 'reaction.removed' | 'poll.received' | 'poll.failed' | 'poll.sent' | 'poll.delivered' | 'poll.read' | 'poll.updated' | 'poll.vote.added' | 'poll.vote.removed' | 'poll.reaction.added' | 'participant.added' | 'participant.removed' | 'chat.created' | 'chat.group_name_updated' | 'chat.group_icon_updated' | 'chat.group_name_update_failed' | 'chat.group_icon_update_failed' | 'chat.background_updated' | 'chat.background_update_failed' | 'chat.typing_indicator.started' | 'chat.typing_indicator.stopped' | 'phone_number.status_updated' | 'phone_number.assigned' | 'phone_number.released' | 'contact_card.received' | 'call.initiated' | 'call.ringing' | 'call.answered' | 'call.ended' | 'call.failed' | 'call.declined' | 'call.no_answer' | 'location.sharing.started' | 'location.sharing.stopped' | 'payment.succeeded' | 'payment.canceled' | 'payment.expired' | 'payment.declined' | 'payment.authorized' | 'connection.created' | 'connection.revoked' | 'zero_day_retention.updated' | 'phone_number.forwarding_updated' | 'environment.line_moved' | 'contact_card.created' | 'contact_card.updated' | 'contact_card.deleted' | 'api_token.created' | 'api_token.renamed' | 'api_token.expiry_scheduled' | 'api_token.expired' | 'api_token.activated' | 'api_token.deleted' | 'environment.created' | 'environment.renamed' | 'environment.deleted' | 'webhook_subscription.created' | 'webhook_subscription.deleted' | 'webhook_subscription.target_url_changed' | 'webhook_subscription.enabled' | 'webhook_subscription.disabled' | 'webhook_subscription.events.updated' | 'webhook_subscription.phone_numbers.updated' | 'webhook_subscription.routing_headers_set' | 'webhook_subscription.routing_headers_cleared' | 'team_member.added' | 'team_member.signed_in' | 'team_member.signed_out' required

Valid webhook event types that can be subscribed to.

Note: message.edited is only delivered to subscriptions using webhook_version: "2026-02-03". Subscribing to this event on a v2025 subscription will not produce any deliveries.

event_idstring uuid required

Unique identifier for this event (for deduplication)

created_atstring date-time required

When the event was created

trace_idstring required

Trace ID for debugging and correlation across systems.

partner_idstring required

Partner identifier. Present on all webhooks for cross-referencing.

Example payload

{
  "api_version": "v3",
  "webhook_version": "2025-01-01",
  "event_id": "550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2025-11-23T17:30:00Z",
  "trace_id": "abc123def456",
  "partner_id": "partner_abc123",
  "data": {
    "reaction_id": "9f8b1c2d-3e4f-5061-7283-94a5b6c7d8e9",
    "chat_id": "550e8400-e29b-41d4-a716-446655440000",
    "from": "+14155559876",
    "from_handle": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "handle": "+15551234567",
      "service": "iMessage",
      "joined_at": "2025-05-21T15:30:00.000-05:00",
      "line_type": "iMessage"
    },
    "message_id": "550e8400-e29b-41d4-a716-446655440001",
    "reaction_type": "love",
    "service": "iMessage",
    "reacted_at": "2025-11-23T17:35:00Z",
    "sticker": {
      "url": "https://cdn.linqapp.com/attachments/a1b2c3d4/sticker.png?signature=...",
      "mime_type": "image/png",
      "width": 420,
      "height": 420,
      "file_name": "sticker.png"
    }
  }
}

Response

Webhook received successfully

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.