---
title: "Get posts a profile has reacted to"
method: GET
path: "/api/v1/profile/reactions"
---

# Get posts a profile has reacted to

`GET /api/v1/profile/reactions`

## Request

- Base URL: `https://api.fetchin.io`
- URL: `https://api.fetchin.io/api/v1/profile/reactions`
- Auth: API key in header `X-API-Key`

Fetch posts that a professional profile has reacted to (liked, loved, etc.) with the reaction type, when the profile reacted (`createdAt`) and full post details. The `post` object in each reaction has the same shape as items returned by `GET /api/v1/posts`, attributed to its own author and dated by its own publication.

## Query parameters

- `profileUrlOrUrn` string, required
- `count` integer
- `start` integer
- `paginationToken` string

## Response `200`

Successfully fetched profile reactions

- object
  - `reactions` object[]
    - `reactionType` 'LIKE' | 'EMPATHY' | 'ENTERTAINMENT' | 'INTEREST' | 'PRAISE' | 'APPRECIATION': The type of reaction: LIKE (Like), EMPATHY (Love), ENTERTAINMENT (Funny), INTEREST (Insightful), PRAISE (Celebrate), APPRECIATION (Support)
    - `createdAt` string, date-time: When the profile reacted.
    - `activityUrn` string: The reaction's own activity URN, i.e. the reaction itself as it appears in the profile's activity. Not the post's: that is `post.id`.
    - `post` object: The post that was reacted to. Same shape as items from GET /api/v1/posts.
      - `id` string: URN of the post that was reacted to: its activity URN (`urn:li:activity:…`) when the source provides it, otherwise its content URN (`urn:li:ugcPost:…`, the same value as `shareUrn`). Always the post itself, never the reaction. To match a post returned by `GET /api/v1/posts`, compare `shareUrn`, which is the same on both. Either form is accepted by `GET /api/v1/post/comments` and `GET /api/v1/post/reactions`.
      - `shareUrn` string: Content URN of the post (`urn:li:share:…` or `urn:li:ugcPost:…`). The same value as on `GET /api/v1/posts`, so it is the key to join the two.
      - `content` string
      - `date` string, date-time: When the post was published, decoded from its own id. The reaction's time is `createdAt` on the reaction.
      - `reactionCount` integer
      - `commentCount` integer
      - `sharesCount` integer: Number of times the post was reshared.
      - `imageUrl` string
      - `videoUrl` string
      - `carouselPdfUrl` string
      - `profile` object
        - `urn` string, required: URN of the post author: `urn:li:fsd_profile:<profile id>` for a person, `urn:li:fsd_company:<company id>` for an organization page.
        - `name` string, required
        - `headline` string, required
        - `url` string, required
        - `imageUrl` string, required
      - `postType` 'text' | 'image' | 'document' | 'article' | 'linkedinVideo' | 'job' | 'event' | 'celebration': Kind of content attached to the post, as on `GET /api/v1/posts`.
      - `author` object: Who published the post, person or organization page (company, showcase or school), as on `GET /api/v1/posts`.
        - `type` 'profile' | 'company'
        - `id` string: The profile id (`ACoAA...`) for a person, the numeric company id for a page.
        - `name` string
        - `url` string
        - `info` string: The headline for a person, the follower line for a page.
        - `publicIdentifier` string: Persons only: profile slug.
        - `universalName` string: Pages only: page slug.
        - `numericId` string: Numeric member or company id, when the source carries it.
      - `authorType` 'Person' | 'Company': Whether a member or an organization page published the post.
      - `authorProfileId` string: Persons only: the author's profile id, the same value as the `profileId` returned by `/profile`. Absent when a page published the post: read `author.id`.
      - `resharedPostUrn` string: Set when the post reshares another post with its own commentary: the URN of the quoted post, also returned in full as `resharedPost`. Absent on an original post.
      - `shareUrl` string: Public permalink to the post.
      - `reactionsByType` object: Reaction counts by type: only the types the post received, summing to `reactionCount`, as on `GET /api/v1/posts`.
  - `paginationToken` string: Token for fetching the next page
  - `hasMore` boolean: Whether more reactions are available

## Other responses

- `400`: Bad request - a required parameter is missing or a value is invalid.
- `401`: Unauthorized - the X-API-Key header is missing or invalid.
- `402`: Payment required - you are out of credits (QUOTA_EXHAUSTED): the plan allowance for the current period is spent AND no pay-as-you-go credits are left. Buy pay-as-you-go credits (self-serve, https://fetchin.io/credits), upgrade your plan, or wait for renewal; retrying will not help and no Retry-After is sent. Distinct from the per-second rate limit, which is a 429 (RATE_LIMITED).
- `404`: Not found - the request was served successfully but the requested professional entity does not exist.
- `429`: Too many requests - your per-second rate limit (RATE_LIMITED) was exceeded. Back off and retry, honoring the Retry-After header. (Running out of credits is a separate 402 PaymentRequired / QUOTA_EXHAUSTED, and buying credits never raises this per-second limit.)
- `500`: Internal server error - an unexpected error occurred in our API. Safe to retry; contact support if it persists.
- `503`: Service unavailable - our API is temporarily unable to serve this request (capacity exhausted or overloaded). This is on our side, not yours and not an upstream service outage. Retry with backoff, honoring the Retry-After header.

---

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