---
title: "List comments on a post"
method: GET
path: "/api/v1/posts/{postId}/comments"
tags: ["Social Feeds"]
---

# List comments on a post

`GET /api/v1/posts/{postId}/comments`

**Rate limit:** 60 requests per 60 seconds. This is the **default shared quota** — it is shared with every other endpoint that has no dedicated limit, so requests across those endpoints all draw from the same budget.

---

Returns a paginated list of top-level comments on a post. Soft-deleted comments are included with isDeleted=true and blanked content so reply trees remain navigable. Authentication is optional — unauthenticated requests omit requesterContext.

## Path parameters

- `postId` string, uuid, required

## Query parameters

- `take` integer
- `offsetEntityId` string
- `order` 'Asc' | 'Desc'
- `badgesExperimentIsEnabled` boolean

## Headers

- `x-request-id` string, uuid, required
- `x-api-key` string, password, required
- `x-user-key` string, password, required

## Response `200`

Paginated comment list

- CommentsResponse — Paginated list of comments or replies on a parent entity
  - `reactionPaging` object — Pagination info
    - `totalCount` integer — Total number of comments/replies
    - `offsetEntityId` string — Opaque cursor for next page
    - `next` string — URL to fetch the next page
  - `comments` Comment[] — List of comment/reply items
    - `entity` object — Core comment data
      - `id` string — Comment ID
      - `owner` User — eToro user profile (slim projection)
        - `id` string — User's GCID (string form)
        - `username` string — Unique username
        - `firstName` string — First name
        - `lastName` string — Last name
        - `avatar` object — Profile picture URLs
          - `small` string — 32 px avatar URL
          - `medium` string — 64 px avatar URL
          - `large` string — 128 px avatar URL
          - `svg` object, nullable — SVG avatar with brand colours (null when not available)
            - `url` string — SVG URL
            - `backgroundColor` string — Background colour hex
            - `textColor` string — Text colour hex
        - `roles` string[] — User roles
        - `isBlocked` boolean — Owner has blocked the requester
        - `isPrivate` boolean — User's profile is private
        - `countryCode` integer — ISO numeric country code
        - `piLevel` integer — Popular Investor level (0 = not PI)
      - `obsoleteId` string — Legacy numeric comment ID
      - `created` string, date-time — Creation timestamp
      - `updated` string, date-time, nullable — Last-edited timestamp
      - `message` object — Post/comment text content
        - `text` string — Text content
        - `languageCode` string — BCP-47 language code
      - `attachments` Attachment[]
        - `url` string — Full URL of the attachment
        - `title` string — Title of the attachment
        - `host` string — Host domain of the attachment
        - `description` string — Short description of the attachment
        - `mediaType` 'None' | 'Link' | 'Image' | 'Video' — Type of media
        - `media` object — Media content details
          - `image` object — Image dimensions and URL
            - `width` integer — Width in pixels
            - `height` integer — Height in pixels
            - `url` string — Image URL
          - `video` object — Video source details
            - `videoSourceId` string — External video ID
            - `videoSource` 'None' | 'YouTube' | 'Vimeo' — Video provider
            - `image` object — Video thumbnail
              - …
      - `mentions` object[]
        - `user` User — eToro user profile (slim projection)
          - `id` string — User's GCID (string form)
          - `username` string — Unique username
          - `firstName` string — First name
          - `lastName` string — Last name
          - `avatar` object — Profile picture URLs
            - `small` string — 32 px avatar URL
            - `medium` string — 64 px avatar URL
            - `large` string — 128 px avatar URL
            - `svg` object, nullable — SVG avatar with brand colours (null when not available)
              - …
          - `roles` string[] — User roles
          - `isBlocked` boolean — Owner has blocked the requester
          - `isPrivate` boolean — User's profile is private
          - `countryCode` integer — ISO numeric country code
          - `piLevel` integer — Popular Investor level (0 = not PI)
        - `isDirect` boolean — Direct @-mention
      - `tags` object[]
        - `market` Market — Financial instrument / market
          - `id` string — Market identifier
          - `symbolName` string — Ticker symbol
          - `displayName` string — Human-readable name
          - `updated` string, date-time, nullable — Last update timestamp
          - `assetType` 'Stocks' | 'Bonds' | 'ETF' | 'Index' | 'Warrants' | 'Options' | 'Futures' | 'CFD' | 'TRS' | 'FOREX' | 'CommodityMetals' | 'CommodityEnergyAgriculture' | 'CryptoCoin' | 'NFT' — Asset class
          - `internalId` integer — Internal numeric market ID
          - `avatar` object — Market logo images
            - `small` string — Small logo URL (32 px)
            - `medium` string — Medium logo URL (64 px)
            - `large` string — Large logo URL (128 px)
            - `svg` object, nullable — SVG logo with brand colours
              - …
          - `application` 'eToro' | 'Delta' | 'Gatsby' — Source application
          - `metadata` string — Opaque JSON metadata string
          - `assetTypeId` integer — Numeric asset type ID
          - `assetTypeSubCategoryId` integer — Numeric asset sub-category ID
      - `isSpam` boolean — True when classified as spam
      - `editStatus` 'None' | 'Edited' | 'Moderated' — Edit lifecycle status
      - `parent` object — Parent entity reference
        - `id` string — Parent entity ID
        - `obsoleteId` string — Legacy parent ID
        - `type` 'Unknown' | 'Post' | 'Comment' | 'Reply' — Parent entity type
    - `repliesCount` integer — Number of direct replies to this comment
    - `replies` Comment[] — Inline reply preview. Each entry has the same shape as Comment; nested `replies` arrays are not populated at this level.
    - `emotionsData` object — Aggregated emotions (likes) on an entity
      - `like` object
        - `paging` object — Pagination cursor info
          - `totalCount` integer — Total number of items
          - `offsetEntityId` string — Opaque cursor for next page
          - `next` string — URL to next page
        - `emotions` Emotion[]
          - `type` 'Like' — Emotion type (currently only Like is supported)
          - `id` string — Emotion ID
          - `owner` User — eToro user profile (slim projection)
            - `id` string — User's GCID (string form)
            - `username` string — Unique username
            - `firstName` string — First name
            - `lastName` string — Last name
            - `avatar` object — Profile picture URLs
              - …
            - `roles` string[] — User roles
            - `isBlocked` boolean — Owner has blocked the requester
            - `isPrivate` boolean — User's profile is private
            - `countryCode` integer — ISO numeric country code
            - `piLevel` integer — Popular Investor level (0 = not PI)
          - `obsoleteId` string — Legacy numeric emotion ID
          - `parent` object — Parent entity reference
            - `id` string — Parent entity ID
            - `obsoleteId` string — Legacy parent ID
            - `type` 'Unknown' | 'Post' | 'Comment' | 'Reply' — Parent entity type
          - `created` string, date-time — When the like was created
    - `requesterContext` object — Requester's relationship state with the comment
      - `isOwner` boolean — Requester is the comment owner
      - `isFlaggingAsSpam` boolean — Requester flagged this as spam
      - `isSubscribed` boolean — Requester is subscribed to notifications
      - `isLiking` boolean — Requester has liked this comment
      - `isSaved` boolean — Requester has saved this comment
      - `isPinned` boolean — Comment is pinned
      - `isRequesterBlocking` boolean — Requester is blocking the comment owner
      - `isInteractionRestricted` boolean — Owner has blocked the requester

## Other responses

- `404` — Post not found
- `429` — Too Many Requests — the shared rate limit (60 requests / 60s) was exceeded.

---

[API](https://skmtc.net/etoro/apis/etoro-api.md) · [All operations](https://skmtc.net/etoro/apis/etoro-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/etoro/etoro-api/revisions/69c1fb266c35/schema)
