Skip to main content
GET
/
api
/
v1
/
post
/
engagement
Get Post Engagement
curl --request GET \
  --url https://api.fetchin.io/api/v1/post/engagement \
  --header 'X-API-Key: <api-key>'
{
  "post": "urn:li:activity:7287782484287606784",
  "comments": [
    {
      "urn": "urn:li:comment:(ugcPost:7287782484287606784,7287957733851484162)",
      "text": "Great post!",
      "createdAt": "2024-01-22T14:22:07.458Z",
      "reactionCount": 5,
      "author": {
        "id": "urn:li:fsd_profile:ACoAABCDEFG",
        "name": "Jane Doe",
        "headline": "Software Engineer",
        "profileUrl": "https://www.linkedin.com/in/janedoe"
      },
      "replies": []
    }
  ],
  "commentsPaginationToken": "MTAtMTcwNjAwMDAwMDAwMA==",
  "commentsHasMore": true,
  "reactions": [
    {
      "reactionType": "LIKE",
      "actor": {
        "urn": "urn:li:fsd_profile:ACoAABBfDXAB9eK9V6vEHbzfQXZ-wcjke_QuT7g",
        "name": "Kevin Piacentini",
        "headline": "Lead Engineer",
        "profileUrl": "https://www.linkedin.com/in/ACoAABBfDXAB9eK9V6vEHbzfQXZ-wcjke_QuT7g",
        "profilePictureUrl": "https://media.licdn.com/dms/image/..."
      }
    }
  ],
  "reactionsHasMore": false
}

Endpoint

GET /api/v1/post/engagement
Returns both the comments and the reactions of a professional post in one request. Use this instead of calling /post/comments and /post/reactions separately when you need both.
This endpoint bills 2 credits and counts as 2 units against your per-second rate limit. It is all-or-nothing: if either half cannot be fetched, the whole request returns an error and 0 credits are charged. Because it costs 2 rate-limit units, your plan’s per-second limit must be at least 2 to call it.

Authentication

X-API-Key: your-api-key-here

Parameters

postUrlOrUrn
string
required
Professional post URL or URN.Examples:
  • https://www.linkedin.com/posts/username_some-post-slug-1234567890-abcd
  • urn:li:activity:7287782484287606784
  • urn:li:ugcPost:7287782484287606784
commentCount
integer
default:"100"
Number of comments to fetch (1–100).
commentStart
integer
default:"0"
Comments offset (kept for parity; comments primarily paginate by token).
commentPaginationToken
string
Token from a previous response used to fetch the next page of comments.
reactionCount
integer
default:"100"
Number of reactions to fetch (1–100).
reactionStart
integer
default:"0"
Reactions offset for pagination.

Response

post
string
The resolved post identifier you passed in.
comments
array
Array of comments (same object shape as Get Post Comments).
commentsPaginationToken
string
Token to fetch the next page of comments. Absent when there are no more.
commentsHasMore
boolean
Whether more comments are available.
reactions
array
Array of reactions (same object shape as Get Post Reactions).
reactionsHasMore
boolean
Whether more reactions are available.

Example Request

curl -X GET "https://api.fetchin.io/api/v1/post/engagement?postUrlOrUrn=urn:li:activity:7287782484287606784" \
  -H "X-API-Key: your-api-key-here"

Example Response

{
  "post": "urn:li:activity:7287782484287606784",
  "comments": [
    {
      "urn": "urn:li:comment:(ugcPost:7287782484287606784,7287957733851484162)",
      "text": "Great post!",
      "createdAt": "2024-01-22T14:22:07.458Z",
      "reactionCount": 5,
      "author": {
        "id": "urn:li:fsd_profile:ACoAABCDEFG",
        "name": "Jane Doe",
        "headline": "Software Engineer",
        "profileUrl": "https://www.linkedin.com/in/janedoe"
      },
      "replies": []
    }
  ],
  "commentsPaginationToken": "MTAtMTcwNjAwMDAwMDAwMA==",
  "commentsHasMore": true,
  "reactions": [
    {
      "reactionType": "LIKE",
      "actor": {
        "urn": "urn:li:fsd_profile:ACoAABBfDXAB9eK9V6vEHbzfQXZ-wcjke_QuT7g",
        "name": "Kevin Piacentini",
        "headline": "Lead Engineer",
        "profileUrl": "https://www.linkedin.com/in/ACoAABBfDXAB9eK9V6vEHbzfQXZ-wcjke_QuT7g",
        "profilePictureUrl": "https://media.licdn.com/dms/image/..."
      }
    }
  ],
  "reactionsHasMore": false
}

Errors

See Error Handling for the full list of error codes and recommended handling.
  • 400MISSING_PARAMETER, INVALID_URN
  • 401INVALID_API_KEY
  • 404POST_NOT_FOUND
  • 402QUOTA_EXHAUSTED
  • 429RATE_LIMITED (also returned when the endpoint’s 2-unit cost exceeds your per-second limit)
  • 500INTERNAL_ERROR
  • 503SERVICE_UNAVAILABLE

Pagination

The two lists paginate independently:
  • Comments paginate by token: pass commentPaginationToken from the previous response, and stop when commentsHasMore is false.
  • Reactions paginate by offset: increment reactionStart by reactionCount, and stop when reactionsHasMore is false.
Every call to /post/engagement bills 2 credits and 2 rate-limit units, so if you only need to deep-paginate one of the two lists, use the dedicated /post/comments or /post/reactions endpoint (1 credit each) instead.

Notes

Billing is all-or-nothing: 2 credits when both lists are returned, 0 credits if the request errors. There is no partial result.

Authorizations

X-API-Key
string
header
required

Query Parameters

postUrlOrUrn
string
required

Professional post URL or URN

commentCount
integer
default:100

Number of comments to fetch (1-100)

commentStart
integer
default:0

Comments offset

commentPaginationToken
string

Token for the next page of comments

reactionCount
integer
default:100

Number of reactions to fetch (1-100)

reactionStart
integer
default:0

Reactions offset

Response

Combined comments and reactions

post
string

The resolved post identifier

comments
object[]

Comments (same shape as GET /post/comments)

commentsPaginationToken
string

Token for the next page of comments (absent when none)

commentsHasMore
boolean
reactions
object[]
reactionsHasMore
boolean