---
title: "Chat Reaction Created"
method: POST
path: "chat.reaction.created"
tags: ["Reactions"]
---

# Chat Reaction Created

`POST chat.reaction.created` (webhook)

Sent when a chat event is created

Required permissions:
 - `webhook_receive:chat`

## Headers

- `webhook-id` string, required — A unique identifier for this webhook request
- `webhook-signature` string, required — The signature of the webhook request with the webhook version prepended
- `webhook-timestamp` string, required — The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

## Payload

- object
  - `api_version` 'v1', required — The API version for this webhook
  - `api_version_date` string, nullable, required — The dated API version (Api-Version-Date) the payload is serialized to
  - `company_id` string, nullable — The account ID that this webhook event is associated with
  - `data` object, required
    - `audience` object, required
      - `type` 'channel' | 'users', required
      - `user_ids` string[], nullable
    - `channel` object, required
      - `experience_id` string, nullable
      - `id` string, required
      - `type` 'chat' | 'direct_message' | 'support', required
    - `message` Message, required — A message sent within an experience chat, direct message, or group chat.
      - `content` string, nullable, required — The message content formatted as Markdown. Null if the message has no text content.
      - `created_at` string, date-time, required — The timestamp when this message was originally created.
      - `id` string, required — Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"VXNlci0xMA=="`) or integer (such as `4`) input value will be accepted as an ID.
      - `is_edited` boolean, required — Whether the message content has been edited after it was originally sent.
      - `is_pinned` boolean, required — Whether this message is pinned to the top of the channel for easy access.
      - `mentions` string[], required — A list of user IDs that are explicitly mentioned in this message.
      - `mentions_everyone` boolean, required — Whether the message includes an @everyone mention that notifies all channel members.
      - `message_type` 'regular' | 'system' | 'automated', required — The types of post
      - `poll` object, nullable, required — A poll attached to this message. Null if the message does not contain a poll.
        - `options` object[], nullable, required — The options for the poll
          - `id` string, required — The unique identifier for the poll option.
          - `text` string, required — The text of the poll option
      - `poll_votes` object[], required — Aggregated reaction counts on this message, filtered to a specific reaction type.
        - `count` integer, required — The number of users who reacted
        - `option_id` string, nullable, required — The reaction that was used
      - `reaction_counts` object[], required — Aggregated reaction counts on this message, filtered to a specific reaction type.
        - `count` integer, required — The number of users who reacted
        - `emoji` string, nullable, required — The emoji that was used in shortcode format (:heart:)
      - `replying_to_message_id` string, nullable, required — The unique identifier of the message this post is replying to. Null if this is not a reply.
      - `updated_at` string, date-time, required — The timestamp when this message was last modified.
      - `user` object, required — The user who authored this message.
        - `id` string, required — The unique identifier for the user.
        - `name` string, nullable, required — The user's display name shown on their public profile.
        - `username` string, required — The user's unique username shown on their public profile.
      - `view_count` integer, nullable, required — The number of unique views this message has received. Null if view tracking is not enabled for this channel.
    - `reaction` Reaction, required — A single reaction left by a user on a feed post, such as a like or emoji.
      - `emoji` string, nullable, required — The emoji used for this reaction in shortcode format. Null if the reaction type is not emoji.
      - `id` string, required — The unique identifier for the entity
      - `resource_id` string, required — The unique identifier of the post this reaction was left on.
      - `user` object, required — The user who left this reaction on the post.
        - `id` string, required — The unique identifier for the user.
        - `name` string, nullable, required — The user's display name shown on their public profile.
        - `username` string, required — The user's unique username shown on their public profile.
    - `reason` string, required
  - `id` string, required — A unique ID for every single webhook request
  - `timestamp` string, date-time, required — The timestamp in ISO 8601 format that the webhook was sent at on the server
  - `type` 'chat.reaction.created', required — The webhook event type

## Acknowledgement `200`

Return a 200 status to indicate that the data was received successfully

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/db0883548bc5/schema)
