eToro Feeds API

The Feeds API from eToro — 10 operation(s) for feeds.

OpenAPI Specification

etoro-feeds-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Deprecated eToro Public API operations Agent Portfolios Feeds API
  version: v1.158.0
  description: Snapshot of API operations that existed in the previous docs OpenAPI file and are no longer present in the current upstream Swagger.
tags:
- name: Feeds
paths:
  /api/v1/feeds/following:
    get:
      tags:
      - Feeds
      summary: Get following feed
      description: Returns a chronological feed of posts from users the authenticated user follows. Requires authentication.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 158efe60-6508-4de3-8696-6215352f5924
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: take
        in: query
        description: Number of posts to return (1–100, default 20)
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 100
        example: 20
      - name: offset
        in: query
        description: Number of posts to skip for pagination
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: reactionsPageSize
        in: query
        description: Number of inline reactions to include per post (1–50, default 10)
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 50
        example: 10
      - name: badgesExperimentIsEnabled
        in: query
        description: Include user badges in the response
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Following feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getFollowingFeed
  /api/v1/feeds/for-you:
    get:
      tags:
      - Feeds
      summary: Get personalised For You feed
      description: Returns a personalised feed for the authenticated user ranked by followed users, followed instruments, prior engagement, and freshness. Ranking method is resolved via A/B experiment (Optimizely) and per-user overrides. Requires authentication — this feed is intrinsically personal.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 9335832f-4a83-46ac-99f8-21e5e2c31e2b
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: take
        in: query
        description: Number of posts to return (1–100, default 20)
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 100
        example: 20
      - name: offset
        in: query
        description: Number of posts to skip for pagination
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: reactionsPageSize
        in: query
        description: Number of inline reactions to include per post (1–50, default 10)
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 50
        example: 10
      - name: badgesExperimentIsEnabled
        in: query
        description: Include user badges in the response
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Personalised feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getPersonalisedForYouFeed
  /api/v1/feeds/instrument/{marketId}:
    get:
      tags:
      - Feeds
      summary: Get instrument feed posts
      description: Retrieves feed posts associated with a specific financial instrument. The feed includes discussions, analyses, and other content related to the instrument.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 7ed04791-ec01-447c-8918-bdadd273398e
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: marketId
        in: path
        description: Unique identifier of the financial instrument/market to retrieve feed posts for
        required: true
        schema:
          type: string
        example: '123456'
      - name: requesterUserId
        in: query
        description: ID of the user making the request. Used for personalization and permission checks.
        schema:
          type: string
        example: '7890'
      - name: take
        in: query
        description: Number of feed posts to retrieve. Used for pagination.
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
        example: 20
      - name: badgesExperimentIsEnabled
        in: query
        description: Flag indicating whether to include user badges in the response. Part of badges feature experiment.
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Number of feed posts to skip. Used for pagination in combination with take parameter.
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - name: reactionsPageSize
        in: query
        description: Number of reactions to include per post. Controls the pagination of post reactions.
        schema:
          type: integer
          format: int32
          default: 10
          minimum: 1
          maximum: 50
      responses:
        '200':
          description: Successfully retrieved instrument feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
      operationId: getInstrumentFeedPosts
  /api/v1/feeds/markets/{marketId}:
    get:
      tags:
      - Feeds
      summary: Get instrument feed posts
      description: Retrieves feed posts associated with a specific financial instrument. The feed includes discussions, analyses, and other content related to the instrument.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 03b3f65e-99f5-4225-8d35-6e7c3309854b
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: marketId
        in: path
        description: Unique identifier of the financial instrument/market to retrieve feed posts for
        required: true
        schema:
          type: string
        example: '123456'
      - name: take
        in: query
        description: Number of feed posts to retrieve. Used for pagination.
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
        example: 20
      - name: badgesExperimentIsEnabled
        in: query
        description: Flag indicating whether to include user badges in the response. Part of badges feature experiment.
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Number of feed posts to skip. Used for pagination in combination with take parameter.
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - name: reactionsPageSize
        in: query
        description: Number of reactions to include per post. Controls the pagination of post reactions.
        schema:
          type: integer
          format: int32
          default: 10
          minimum: 1
          maximum: 50
      responses:
        '200':
          description: Successfully retrieved instrument feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getInstrumentFeedPosts2
  /api/v1/feeds/news:
    get:
      tags:
      - Feeds
      summary: Get news feed
      description: Returns a ranked news feed for the authenticated user. Ranking method is resolved via A/B experiment and a configurable default.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 83493b17-6f29-488f-9f15-3a481b5a4a67
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: take
        in: query
        description: Number of posts to return (1–100, default 20)
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 100
        example: 20
      - name: offset
        in: query
        description: Number of posts to skip for pagination
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: reactionsPageSize
        in: query
        description: Number of inline reactions to include per post (1–50, default 10)
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 50
        example: 10
      - name: badgesExperimentIsEnabled
        in: query
        description: Include user badges in the response
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: News feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getNewsFeed
  /api/v1/feeds/post:
    post:
      tags:
      - Feeds
      summary: Create a new discussion post
      description: Creates a new discussion post in the feed system. This endpoint allows users to create posts that can be associated with instruments, users, or general discussions.
      requestBody:
        description: Discussion post creation details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscussionCreateRequest'
      responses:
        '201':
          description: Post accepted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Post'
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 9e0c08a1-afcd-4234-87b8-47de3438bda5
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      operationId: createANewDiscussionPost
  /api/v1/feeds/saved:
    get:
      tags:
      - Feeds
      summary: Get saved feed
      description: Returns a list of posts the authenticated user has bookmarked. Only the requesting user can see their own saved feed. Requires authentication.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 02b69c47-fca4-4bb1-9920-65e5ab3dc85d
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: take
        in: query
        description: Number of posts to return (1–100, default 20)
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 100
        example: 20
      - name: offset
        in: query
        description: Number of posts to skip for pagination
        schema:
          type: integer
          default: 0
          minimum: 0
        example: 0
      - name: reactionsPageSize
        in: query
        description: Number of inline reactions to include per post (1–50, default 10)
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 50
        example: 10
      - name: badgesExperimentIsEnabled
        in: query
        description: Include user badges in the response
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Saved feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getSavedFeed
  /api/v1/feeds/user/{userId}:
    get:
      tags:
      - Feeds
      summary: Get user feed posts
      description: Retrieves feed posts associated with a specific user. The feed includes the user's discussions, analyses, and other content they have posted.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 2206c17f-7068-4ab1-a27c-3854e6350918
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: userId
        in: path
        description: ID of the user whose feed posts should be retrieved
        required: true
        schema:
          type: string
        example: '7890'
      - name: requesterUserId
        in: query
        description: ID of the user making the request. Used for personalization and permission checks.
        schema:
          type: string
        example: '1111'
      - name: take
        in: query
        description: Number of feed posts to retrieve. Used for pagination.
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: badgesExperimentIsEnabled
        in: query
        description: Flag indicating whether to include user badges in the response. Part of badges feature experiment.
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Number of feed posts to skip. Used for pagination in combination with take parameter.
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - name: reactionsPageSize
        in: query
        description: Number of reactions to include per post. Controls the pagination of post reactions.
        schema:
          type: integer
          format: int32
          default: 10
          minimum: 1
          maximum: 50
      responses:
        '200':
          description: Successfully retrieved user feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
      operationId: getUserFeedPosts
  /api/v1/feeds/users/{userId}:
    get:
      tags:
      - Feeds
      summary: Get user feed posts
      description: Retrieves feed posts associated with a specific user. The feed includes the user's discussions, analyses, and other content they have posted.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: 7de756b6-e69a-4342-b510-a39a935510eb
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: userId
        in: path
        description: ID of the user whose feed posts should be retrieved
        required: true
        schema:
          type: string
        example: '7890'
      - name: take
        in: query
        description: Number of feed posts to retrieve. Used for pagination.
        schema:
          type: integer
          format: int32
          default: 20
          minimum: 1
          maximum: 100
      - name: badgesExperimentIsEnabled
        in: query
        description: Flag indicating whether to include user badges in the response. Part of badges feature experiment.
        schema:
          type: boolean
          default: false
      - name: offset
        in: query
        description: Number of feed posts to skip. Used for pagination in combination with take parameter.
        schema:
          type: integer
          format: int32
          default: 0
          minimum: 0
      - name: reactionsPageSize
        in: query
        description: Number of reactions to include per post. Controls the pagination of post reactions.
        schema:
          type: integer
          format: int32
          default: 10
          minimum: 1
          maximum: 50
      responses:
        '200':
          description: Successfully retrieved user feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getUserFeedPosts2
  /api/v1/feeds/users/{userId}/pinned:
    get:
      tags:
      - Feeds
      summary: Get user pinned feed posts
      description: Retrieves the posts that the specified user has pinned to the top of their profile feed. The pinned feed surfaces highlighted content the user has explicitly chosen to feature, ordered by pin time.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: e01c33d4-e7db-4a2a-b8b5-b99acb166fce
        description: A unique request identifier.
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: lhgfaslk21490FAScVPkdsb53F9dNkfHG4faZSG5vfjndfcfgdssdgsdHF4663
        description: API key for authentication.
      - name: x-user-key
        in: header
        required: true
        schema:
          type: string
          format: password
          example: eyJlYW4iOiJVbnJlZ2lzdGVyZWRBcHBsaWNhdGlvbiIsImVrIjoiOE5sZ2cwcW5EUVdROUFNWGpXT2lmOWktZnpidG5KcUlqWGJ3WHJZZkpZcldrbG90ZEhvLVBjSWhQaU8xU1ZtMW84aU1WZGZqN2xWNzFjLXFxLmcybXE1dnh4Q1hUT25xaWRUaTFlcEhmVk1fIn0_
        description: User-specific authentication key.
      - name: userId
        in: path
        description: ID of the user whose pinned posts should be retrieved
        required: true
        schema:
          type: string
        example: '7890'
      - name: badgesExperimentIsEnabled
        in: query
        description: Flag indicating whether to include user badges in the response. Part of badges feature experiment.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Successfully retrieved user pinned feed posts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscussionsResponse'
        '401':
          description: Authentication required
      operationId: getUserPinnedFeedPosts
components:
  schemas:
    User:
      type: object
      description: eToro user profile (slim projection)
      properties:
        id:
          type: string
          description: User's GCID (string form)
          example: '7890'
        username:
          type: string
          description: Unique username
          example: johndoe
        firstName:
          type: string
          description: First name
          example: John
        lastName:
          type: string
          description: Last name
          example: Doe
        avatar:
          type: object
          description: Profile picture URLs
          properties:
            small:
              type: string
              description: 32 px avatar URL
              example: https://etoro-cdn.etorostatic.com/avatars/150X150/johndoe.jpg
            medium:
              type: string
              description: 64 px avatar URL
              example: https://etoro-cdn.etorostatic.com/avatars/200X200/johndoe.jpg
            large:
              type: string
              description: 128 px avatar URL
              example: https://etoro-cdn.etorostatic.com/avatars/300X300/johndoe.jpg
            svg:
              type: object
              nullable: true
              description: SVG avatar with brand colours (null when not available)
              properties:
                url:
                  type: string
                  description: SVG URL
                  example: https://etoro-cdn.etorostatic.com/avatars/svg/johndoe.svg
                backgroundColor:
                  type: string
                  description: Background colour hex
                  example: '#2196F3'
                textColor:
                  type: string
                  description: Text colour hex
                  example: '#FFFFFF'
        roles:
          type: array
          description: User roles
          items:
            type: string
            enum:
            - Regular
            - PI
            - Moderator
            - Anonymous
            - eToroTeam
            - eTorian
            - CopyPortfolio
            - Depositor
            - Admin
            - Verified
            - Analyst
          example:
          - Regular
        isBlocked:
          type: boolean
          description: Owner has blocked the requester
          example: false
        isPrivate:
          type: boolean
          description: User's profile is private
          example: false
        countryCode:
          type: integer
          description: ISO numeric country code
          example: 840
        piLevel:
          type: integer
          description: Popular Investor level (0 = not PI)
          example: 0
    DiscussionsPost:
      type: object
      description: Post data embedded inside a Discussion feed item
      properties:
        id:
          type: string
          description: Post ID
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        owner:
          $ref: '#/components/schemas/User'
        obsoleteId:
          type: string
          description: Legacy numeric post ID
          example: '12345'
        message:
          type: object
          description: Post/comment text content
          properties:
            text:
              type: string
              description: Text content
              example: Excited about $TSLA earnings next week!
            languageCode:
              type: string
              description: BCP-47 language code
              example: en
        created:
          type: string
          format: date-time
          description: Creation timestamp
          example: '2025-01-15T10:30:00Z'
        updated:
          type: string
          format: date-time
          nullable: true
          description: Last-edited timestamp
          example: '2025-01-16T08:00:00Z'
        type:
          type: string
          enum:
          - Default
          - Share
          - MarketEvent
          - Trade
          - Order
          - Copy
          - Poll
          - Article
          description: Post type
          example: Default
        isDeleted:
          type: boolean
          description: True when soft-deleted
          example: false
        isSpam:
          type: boolean
          description: True when classified as spam
          example: false
        editStatus:
          type: string
          enum:
          - None
          - Edited
          - Moderated
          description: Edit lifecycle status
          example: None
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        tags:
          type: array
          items:
            type: object
            properties:
              market:
                $ref: '#/components/schemas/Market'
        mentions:
          type: array
          items:
            type: object
            properties:
              user:
                $ref: '#/components/schemas/User'
              isDirect:
                type: boolean
                description: Direct @-mention
                example: true
        metadata:
          type: object
          description: Post type–specific metadata — only the relevant key is populated
          properties:
            share:
              type: object
              description: Share metadata — present when type is Share
              properties:
                sharedPost:
                  $ref: '#/components/schemas/DiscussionsPost'
                sharedOriginPost:
                  $ref: '#/components/schemas/DiscussionsPost'
            marketEvent:
              type: object
              description: Market event metadata — present when type is MarketEvent
              properties:
                earningReportId:
                  type: integer
                  description: Earnings report ID
                  example: 1042
                market:
                  $ref: '#/components/schemas/Market'
                stocksIndustryId:
                  type: integer
                  description: Industry sector ID
                  example: 15
                earningsDate:
                  type: string
                  format: date-time
                  description: Earnings announcement date
                  example: '2025-01-15T10:30:00Z'
                isBeforeMarketOpen:
                  type: boolean
                  description: Event occurs before market open
                  example: true
                earningsYear:
                  type: integer
                  description: Fiscal year of earnings
                  example: 2025
                earningsQuarter:
                  type: integer
                  description: Fiscal quarter (1–4)
                  example: 1
                verified:
                  type: boolean
                  description: Whether the event data is verified
                  example: true
                marketCap:
                  type: number
                  format: double
                  description: Market capitalisation in USD
                  example: 800000000000
                estimatedEps:
                  type: number
                  format: double
                  description: Estimated earnings per share
                  example: 1.42
                estimatedSales:
                  type: number
                  format: double
                  description: Estimated revenue in USD
                  example: 25000000000
                tagName:
                  type: string
                  enum:
                  - Reports
                  - Dividends
                  - Split
                  - ReverseSplit
              

# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/etoro/refs/heads/main/openapi/etoro-feeds-api-openapi.yml