---
title: "List reactions on a LinkedIn post"
method: GET
path: "/v1/posts/{postId}/reactions"
tags: ["Posts"]
---

# List reactions on a LinkedIn post

`GET /v1/posts/{postId}/reactions`

## Request

- Base URL: `https://api.postzen.dev`
- URL: `https://api.postzen.dev/v1/posts/{postId}/reactions`
- Auth: HTTP bearer

Returns the individual reactions LinkedIn holds for a post published through PostZen, plus a per-type count of the returned page. LinkedIn only, and organization (company page) posts only. The post's LinkedIn connection must hold `r_organization_social_feed`, which LinkedIn ships with its Community Management API product. Not available yet: company-page posting is waiting on LinkedIn's approval of PostZen's Community Management API access, and until then this endpoint returns `403 orgScopesDisabled`. A personal (member) post always returns `403 personalPostUnsupported`: reading a member's own comments and reactions needs `r_member_social_feed`, which LinkedIn grants to select developers only. Read-only and read-write API keys are accepted.

## Query parameters

- `accountId` string
- `cursor` string
- `limit` integer

## Response `200`

Reactions returned.

- LinkedInReactionsResponse
  - `reactions` LinkedInReaction[], required
    - `reactionType` string, required: LinkedIn reaction type, such as `LIKE`, `PRAISE`, `EMPATHY`, `INTEREST`, `APPRECIATION`, or `ENTERTAINMENT`. Treat this as an open set — LinkedIn adds reaction types over time.
    - `actorUrn` string, required: URN of the member or organization that reacted.
    - `createdAt` string, date-time: When the reaction was recorded, when LinkedIn returns a timestamp.
  - `totalsByType` object, required: Reaction count keyed by reaction type, tallied from the reactions in this response. Sum the pages yourself for a whole-post total.
  - `nextCursor` string: Present when more reactions are available. Pass it back as `cursor` to fetch the next page.

## Other responses

- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `403`: The post was authored by a member rather than a company page (`personalPostUnsupported`), the API key cannot access every profile the post targets (`forbidden`), organization engagement reads are disabled on the deployment (`orgScopesDisabled`), or the connection is missing `r_organization_social_feed` (`platformCapabilityMissing`).
- `404`: No post exists with the given id, it is not visible to this API key, or it has no LinkedIn target.
- `409`: The post's LinkedIn target has not published yet, so it has no URN to read engagement for.
- `424`: The LinkedIn account behind the post is no longer connected.
- `429`: LinkedIn rate limited the upstream request. PostZen's own per-account rate limiter also returns `429`, with `{"error":"rate_limited"}` and a `Retry-After` header.
- `500`: Unexpected server error.
- `502`: LinkedIn could not answer the request.

---

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