---
title: "Like comment"
method: POST
path: "/v1/inbox/comments/{postId}/{commentId}/like"
tags: ["Comments"]
---

# Like comment

`POST /v1/inbox/comments/{postId}/{commentId}/like`

Like or upvote a comment on a post. Supported platforms: Facebook, X,
Bluesky, Reddit, LinkedIn, and Instagram in limited release (see below). For
Bluesky, the cid (content identifier) is
required in the request body. For LinkedIn, pass the composite comment URN returned
by the comments endpoints as commentId; an optional reactionType picks the reaction
(defaults to LIKE), and accounts connected before the social-feed scopes were
requested get a 403 with code `linkedin_reconnect_required`.

Instagram is in LIMITED RELEASE and not generally available: the call needs
`instagram_manage_engagement`, which Meta has so far granted this app only under
Standard Access, so it works for app admins, developers and testers of our Meta app
and returns a 403 with code `PLATFORM_BETA_RESTRICTED` for every other account.
That restriction lifts when Meta App Review grants Advanced Access; the constraints
below apply once it does.

Instagram covers comments and replies on feed posts, reels and carousels. Only an
account connected through Facebook Login can be granted
`instagram_manage_engagement`: an Instagram Login connection returns a 400 with
code `instagram_likes_require_facebook_login`, and an account whose token predates
the permission returns a 403 with code `reconnect_required`. Content from private
accounts cannot be liked. Instagram also enforces a burst limit of 50 like or
unlike calls per 5 seconds per Instagram account, and exceeding it locks that
account out of the like API for an hour, so pace bulk loops.

## Path parameters

- `postId` string, required
- `commentId` string, required

## Request body

- object
  - `accountId` string, required — The account ID
  - `reactionType` 'LIKE' | 'PRAISE' | 'EMPATHY' | 'INTEREST' | 'APPRECIATION' | 'ENTERTAINMENT' — (LinkedIn only) Reaction to create. Defaults to LIKE; ignored on other platforms.
  - `cid` string — (Bluesky only) Content identifier for the comment

## Response `200`

Comment liked

- object
  - `status` string
  - `commentId` string
  - `liked` boolean
  - `likeUri` string — (Bluesky only) URI to use for unliking
  - `alreadyReacted` boolean — LinkedIn only: the account already had this exact reaction, so nothing was created
  - `reactionType` string — LinkedIn only: the reaction type now in effect
  - `platform` string

## Other responses

- `400` — Platform does not support liking comments
- `401` — Unauthorized
- `403` — Inbox addon required, or the account is missing the platform permission
- `409` — LinkedIn only: the account already holds a different reaction on this target (code invalid_resource_state); remove it before creating another.

## Changes

- **2026-09-10** `e70ed06e7150` — 3 info
  - added the non-success response with the status `409`
  - added the optional property `alreadyReacted` to the response with the `200` status
  - added the optional property `reactionType` to the response with the `200` status
- **2026-08-10** `f81ca70ea6b9` — 1 info
  - added the new optional request property `reactionType`

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/inbox/comments/:postId/:commentId/like/post.md)

---

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