---
title: "Get comments a profile has written"
method: GET
path: "/api/v1/profile/comments"
---

# Get comments a profile has written

`GET /api/v1/profile/comments`

## Request

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

Fetch the comments a member has made, in the order the feed returns them, each paired with the full context of the post it was written on (text, author, media and engagement counts). This is the inverse of `GET /api/v1/post/comments`, which takes a post and returns the comments left on it. `count` is a ceiling, not a promise: a page can come back with fewer items while more remain, so page while `hasMore` is true rather than stopping on a short page.

## Query parameters

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

## Response `200`

Successfully fetched the comments the profile has written

- object
  - `comments` object[]: Comments the profile wrote, in the order the feed returns them.
    - `commentText` string: Text of the comment.
    - `commentUrn` string: Unique identifier of the comment.
    - `activityUrn` string: The comment's own activity URN, i.e. the comment as it appears in the profile's activity. Not the post's: that is `post.id`.
    - `commentLink` string: Permalink to the comment.
    - `isPinned` boolean: Whether the post's author pinned this comment to the top of the thread.
    - `createdAt` string, date-time: When the comment was written.
    - `stats` object: Engagement on the comment itself.
      - `totalReactions` integer: Total reactions the comment received.
      - `comments` integer: Number of replies to this comment.
      - `reactions` object: Per-type breakdown of the comment's reactions.
        - `like` integer
        - `appreciation` integer
        - `empathy` integer
        - `interest` integer
        - `praise` integer
    - `commenter` object: Who wrote the comment - the profile that was requested.
      - `name` string
      - `subtitle` string: The line shown under the commenter's name, usually their headline.
      - `url` string
      - `profilePictureUrl` string
      - `profileId` string: The commenter's profile id, the same value as the `profileId` returned by `/profile`.
    - `post` object: The post the comment was written on.
      - `id` string: URN of the post the comment was written on: 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 comment. 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.
      - `postText` string: Text of the post.
      - `postUrl` string: Public permalink to the post.
      - `postUrn` string: The bare numeric id of `id`, without any URN prefix: the post's activity id when the source provides it, otherwise the id of its content URN.
      - `date` string, date-time: When the post was published, decoded from its own id. The comment's time is `createdAt` on the comment.
      - `postType` 'text' | 'image' | 'document' | 'article' | 'linkedinVideo' | 'job' | 'event' | 'celebration': Kind of content attached to the post, as on `GET /api/v1/posts`.
      - `resharedPostUrn` string: Set when the post reshares another post with its own commentary: the URN of the quoted post. Absent on an original post.
      - `author` object: Who published the post.
        - `name` string
        - `headline` string
        - `url` string
        - `profilePictureUrl` string, nullable: Profile picture URL of the post author, or null when they have none.
        - `id` string: The profile id (`ACoAA...`) for a person, the numeric company id for an organization page.
        - `type` 'profile' | 'company'
        - `publicIdentifier` string: Persons only: profile slug.
        - `universalName` string: Organization pages only (company, showcase or school): page slug.
      - `stats` object: Engagement on the post.
        - `totalReactions` integer
        - `comments` integer
        - `reposts` integer: Number of times the post was reshared.
        - `reactions` object: Per-type breakdown of the post's reactions.
          - `like` integer
          - `appreciation` integer
          - `empathy` integer
          - `interest` integer
          - `praise` integer
      - `images` object[]: Images attached to the post. Absent on posts without images.
        - `url` string
        - `width` integer
        - `height` integer
      - `video` object, nullable: Video attached to the post. Absent or null on posts without a video.
        - `url` string
        - `duration` integer: Duration in milliseconds.
        - `thumbnail` string
  - `paginationToken` string: Token for fetching the next page. Only present when more comments are available.
  - `hasMore` boolean: Whether more comments 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/19a0b5d0320f?raw)
