---
title: "Get user feed posts"
method: GET
path: "/api/v1/feeds/user/{userId}"
tags: ["Social Feeds"]
deprecated: true
---

# Get user feed posts

`GET /api/v1/feeds/user/{userId}`

> **Deprecated.**

**Rate limit:** 60 requests per 60 seconds. This is a **shared quota** — the same budget is consumed by a group of related endpoints, so calling any of them reduces what is left for the others (you cannot call each at the full rate independently). Endpoints sharing this quota:
- `GET /api/v1/feeds/following`
- `GET /api/v1/feeds/for-you`
- `GET /api/v1/feeds/instrument/{marketId}`
- `GET /api/v1/feeds/markets/{marketId}`
- `GET /api/v1/feeds/news`
- `GET /api/v1/feeds/saved`
- `GET /api/v1/feeds/users/{userId}`
- `GET /api/v1/feeds/users/{userId}/pinned`

---

[DEPRECATED — use GET /api/v1/feeds/users/{userId} instead] Retrieves feed posts associated with a specific user. The feed includes the user's discussions, analyses, and other content they have posted.

## Path parameters

- `userId` string, required

## Query parameters

- `requesterUserId` string
- `take` integer
- `badgesExperimentIsEnabled` boolean
- `offset` integer
- `reactionsPageSize` integer

## Headers

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

## Response `200`

Successfully retrieved user feed posts

- DiscussionsResponse — Paginated feed response containing a list of discussions
  - `discussions` Discussion[]
    - `id` string — Discussion wrapper ID (same as post ID)
    - `post` DiscussionsPost — Post data embedded inside a Discussion feed item
      - `id` string — Post 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 post ID
      - `message` object — Post/comment text content
        - `text` string — Text content
        - `languageCode` string — BCP-47 language code
      - `created` string, date-time — Creation timestamp
      - `updated` string, date-time, nullable — Last-edited timestamp
      - `type` 'Default' | 'Share' | 'MarketEvent' | 'Trade' | 'Order' | 'Copy' | 'Poll' | 'Article' — Post type
      - `isDeleted` boolean — True when soft-deleted
      - `isSpam` boolean — True when classified as spam
      - `editStatus` 'None' | 'Edited' | 'Moderated' — Edit lifecycle status
      - `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
              - …
      - `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
      - `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
      - `metadata` object — Post type–specific metadata — only the relevant key is populated
        - `share` object — Share metadata — present when type is Share
          - `sharedPost` DiscussionsPost — recursive
          - `sharedOriginPost` DiscussionsPost — recursive
        - `marketEvent` object — Market event metadata — present when type is MarketEvent
          - `earningReportId` integer — Earnings report ID
          - `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
              - …
            - `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
          - `stocksIndustryId` integer — Industry sector ID
          - `earningsDate` string, date-time — Earnings announcement date
          - `isBeforeMarketOpen` boolean — Event occurs before market open
          - `earningsYear` integer — Fiscal year of earnings
          - `earningsQuarter` integer — Fiscal quarter (1–4)
          - `verified` boolean — Whether the event data is verified
          - `marketCap` number, double — Market capitalisation in USD
          - `estimatedEps` number, double — Estimated earnings per share
          - `estimatedSales` number, double — Estimated revenue in USD
          - `tagName` 'Reports' | 'Dividends' | 'Split' | 'ReverseSplit' — Event tag
          - `textKey` integer — Localisation key for event label
        - `trade` object — Trade metadata — present when type is Trade
          - `type` 'Open' | 'Close' — Trade lifecycle stage
          - `positionId` integer — Internal position ID
          - `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
              - …
            - `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
          - `gain` number, float — P&L gain/loss percentage
          - `rate` number, float — Entry/exit rate
          - `direction` 'Long' | 'Short' — Trade direction
        - `order` object — Order metadata — present when type is Order
          - `type` 'Open' | 'Close' — Order lifecycle stage
          - `orderId` integer — Internal order ID
          - `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
              - …
            - `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
          - `rate` number, float — Limit/entry rate
          - `direction` 'Long' | 'Short' — Order direction
        - `copy` object — Copy metadata — present when type is Copy
          - `type` 'Start' | 'Stop' — Copy event type
          - `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
              - …
            - `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)
        - `poll` object — Poll metadata — present when type is Poll
          - `id` integer — Poll ID
          - `title` string — Poll question
          - `gcid` integer — Poll creator GCID
          - `options` object[]
            - `id` integer — Option ID
            - `index` integer — Display order (1-based, matches the index supplied at poll creation)
            - `text` string — Option label
            - `isUserVoted` boolean — Requester voted for this option
            - `votesCount` integer — Total votes for this option
        - `article` object — Article metadata — present when post type is Article
          - `id` integer — Article ID
          - `title` string — Article title
          - `url` string — Canonical article URL
          - `rating` 'Bearish' | 'Bullish', nullable — Analyst rating
          - `featuredImage` Attachment — Media or link 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
              - …
          - `body` string — Full article HTML body
          - `bodyPreview` string — Plain-text preview (≈200 chars)
          - `aiSummary` string — AI-generated summary
          - `languageCode` string — BCP-47 language code
          - `status` 'Draft' | 'Published' | 'Deleted' — Publication status
          - `editStatus` 'None' | 'Edited' | 'Moderated' — Edit status
          - `ownerId` integer — Author's internal user ID
          - `created` string, date-time — When the article was created
          - `updated` string, date-time, nullable — Last edit timestamp
          - `published` string, date-time, nullable — Publication timestamp
          - `readingTimeMinutes` number, float — Estimated reading time
          - `wordCount` integer — Word count
    - `commentsData` object — Inline comments preview
      - `reactionPaging` object
        - `totalCount` integer — Total comment count on this post
      - `comments` Comment[]
        - `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
              - …
            - `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
              - …
          - `mentions` object[]
            - `user` User — eToro user profile (slim projection)
              - …
            - `isDirect` boolean — Direct @-mention
          - `tags` object[]
            - `market` Market — Financial instrument / market
              - …
          - `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
              - …
            - `emotions` Emotion[]
              - …
        - `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
    - `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 post
      - `isOwner` boolean — Requester is the post owner
      - `isFlaggingAsSpam` boolean — Requester flagged this as spam
      - `isSubscribed` boolean — Requester is subscribed to notifications
      - `isLiking` boolean — Requester has liked this post
      - `isSaved` boolean — Requester has saved this post
      - `isPinned` boolean — Post is pinned for the requester
      - `isRequesterBlocking` boolean — Requester is blocking the post owner
      - `isInteractionRestricted` boolean — Owner has blocked the requester
      - `isFollowing` boolean — Requester is following this post
    - `summary` object — Post-level engagement counters
      - `totalCommentsAndReplies` integer — Sum of all comments and replies
      - `sharedCount` integer — Number of times this post has been shared
    - `reason` unknown
  - `paging` object — Pagination info
    - `next` string — URL to fetch the next page
    - `offSet` integer — Current page offset
    - `take` integer — Page size used for this response
    - `version` string — API version string
  - `metadata` object — Feed-level metadata for analytics
    - `experimentName` string — Active A/B experiment name
    - `streamType` string — Actual stream/ranking type served
    - `designatedStreamType` string — Intended stream type (may differ during A/B)

## Other responses

- `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)
