Skip to main content

Overview

Reactions allow users to respond to content and chat messages with emoji. The platform supports 15 emoji types that can be applied to both content items (posts) and chat messages (comments/replies).

Supported Emoji

IdentifierEmoji
grinning😀
crying😭
heart_eyes😍
party🥳
angry😡
exploding_head🤯
rocket🚀
star_eyes🤩
sunglasses😎
hugging🤗
heart❤️
praying🙏
raising_hands🙌
fire🔥
thumbs_up👍

Reaction Targets

Reactions can be applied to two types of objects:

  1. Content items (posts) — via /api/content/:id/react
  2. Chat messages (comments and replies) — via /api/chat/:id/reactions

How Reactions Are Returned

Reaction data is returned in two ways:

Inline on list/detail endpoints

When you fetch posts or chat messages, reaction data is already included in each item:

  • Posts (GET /api/posts, GET /api/posts/:id) include:

    • reactionCounts — array of { emoji, count } objects
    • myReactions — array of emoji identifiers the authenticated user has used
  • Chat messages (GET /api/chat, GET /api/replies) include:

    • reactions — array of { emoji, count } objects
    • myReactions — array of emoji identifiers the authenticated user has used

Dedicated endpoints

  • GET /api/content/:id/reactions — returns aggregated counts for a specific content item, with optional filtering by emoji to get the list of reactor users (id, name, photoUrl).
  • GET /api/chat/:id/reactions — same pattern for chat messages.

Uniqueness

Each user can only react once per emoji per target. Attempting to add a duplicate reaction on content returns 200 with alreadyExists: true. On chat messages, the toggle endpoint automatically removes an existing reaction.

Error Handling

Status CodeDescription
400Missing or invalid emoji parameter
401Authentication required (write endpoints)
403User does not have access to the content item
404Content item or chat message not found