---
title: "POST /v2/social/reactions"
method: POST
path: "/v2/social/reactions"
tags: ["Social Community"]
---

# POST /v2/social/reactions

`POST /v2/social/reactions`

## Request

- Base URL: `https://api.arbital.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.arbital.xyz/v2/social/reactions`
- Auth: HTTP bearer

Adds or removes the viewer's emoji reaction on any supported target in one command. Replaces the per-kind `PUT`/`DELETE .../reactions/{emoji}` paths. Adding requires an unrestricted account and a target visible to the viewer with no block either way; removing is always allowed for the viewer's own reaction. Returns the updated summary.

## Query parameters

- `contract` '2'

## Headers

- `Idempotency-Key` string, uuid
- `If-Match` string

## Request body

- SocialReactionCommand: Sets whether the viewer's reaction with `emoji` is present on `target`. Idempotent: repeating the command never counts twice and removing an absent reaction succeeds.
  - `target` SocialReactionTargetInput, required: Addresses the thing being reacted to. `id` is the post, comment, thesis event or trade event UUID, or the numeric X post id for `x_post`. `chain_id` and `address` are required for `asset_comment` and rejected otherwise.
    - `kind` 'post' | 'asset_comment' | 'thesis' | 'trade' | 'x_post', required
    - `id` string, required
    - `chain_id` string: Token comment chain, for example `eip155:8453` or `solana:mainnet-beta`.
    - `address` string: Token address on `chain_id`.
  - `emoji` string, required: One emoji: a pictograph with optional skin tone, presentation selector or ZWJ sequence, a flag pair, or a keycap.
  - `present` boolean, required: `true` adds the reaction, `false` removes it.

## Response `200`

Reaction summary for the target

- union
  - SocialReactionSummary: CALLD reactions on one target, most used first. External-platform likes or counts are never merged in; source says so explicitly.
    - `reactions` SocialReactionCount[], required
      - `count` integer, required: Reactions with this emoji by active CALLD accounts.
      - `emoji` string, required
      - `viewer_reacted` boolean, required: Whether the signed-in viewer has this reaction; always false for anonymous readers.
    - `source` 'calld', required
    - `target` object, required
      - `id` string, uuid, required
      - `kind` 'post' | 'asset_comment' | 'thesis' | 'trade' | 'x_post', required
  - SocialReactionSummaryV2: CALLD reactions on one target, most used first. External-platform likes or counts are never merged in; source says so explicitly.
    - `reactions` SocialReactionCount[], required
      - `count` integer, required: Reactions with this emoji by active CALLD accounts.
      - `emoji` string, required
      - `viewer_reacted` boolean, required: Whether the signed-in viewer has this reaction; always false for anonymous readers.
    - `source` 'calld', required
    - `target` object, required
      - `id` string, uuid, required
      - `kind` 'post' | 'asset_comment' | 'thesis' | 'trade' | 'x_post', required
    - `contract` 2, required
    - `aggregate_revision` string, required
    - `edge_versions` object[], required
      - `emoji` string, required
      - `revision` string, required
      - `present` boolean, required
    - `transition_id` string, uuid, nullable

## Other responses

- `400`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `401`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `403`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `404`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `409`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `412`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `429`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `503`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.

---

[API](https://skmtc.dev/arbital/apis/arbital-api.md) - [All operations](https://skmtc.dev/arbital/apis/arbital-api/llms.txt) - [OpenAPI document](https://skmtc.dev/arbital/apis/arbital-api/revisions/bb0185edf43a?raw)
