eToro Comments API

The Comments API from eToro — 1 operation(s) for comments.

OpenAPI Specification

etoro-comments-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Deprecated eToro Public API operations Agent Portfolios Comments 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: Comments
paths:
  /api/v1/reactions/{postId}/comment:
    post:
      tags:
      - Comments
      summary: Create a comment on a post
      description: Creates a new comment on a specific discussion post. Comments can include text, mentions, tags, and attachments.
      parameters:
      - name: x-request-id
        in: header
        required: true
        schema:
          type: string
          format: uuid
          example: c8c54f0a-3535-4a31-bed5-7f025f527d17
        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: postId
        in: path
        description: ID of the post to comment on
        required: true
        schema:
          type: string
        example: '12345'
      requestBody:
        description: Comment creation details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentCreateRequest'
      responses:
        '201':
          description: Comment created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
      operationId: createACommentOnAPost2
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
    Attachment:
      type: object
      description: Media or link attachment
      properties:
        url:
          type: string
          description: Full URL of the attachment
          example: https://cdn.etoro.com/rich-media/images/johndoe/abc-2025-01-15.jpg
        title:
          type: string
          description: Title of the attachment
          example: Tesla Q4 Earnings Chart
        host:
          type: string
          description: Host domain of the attachment
          example: cdn.etoro.com
        description:
          type: string
          description: Short description of the attachment
          example: Tesla quarterly earnings breakdown
        mediaType:
          type: string
          enum:
          - None
          - Link
          - Image
          - Video
          description: Type of media
          example: Image
        media:
          type: object
          description: Media content details
          properties:
            image:
              type: object
              description: Image dimensions and URL
              properties:
                width:
                  type: integer
                  description: Width in pixels
                  example: 1200
                height:
                  type: integer
                  description: Height in pixels
                  example: 630
                url:
                  type: string
                  description: Image URL
                  example: https://cdn.etoro.com/rich-media/images/johndoe/abc-2025-01-15.jpg
            video:
              type: object
              description: Video source details
              properties:
                videoSourceId:
                  type: string
                  description: External video ID
                  example: dQw4w9WgXcQ
                videoSource:
                  type: string
                  enum:
                  - None
                  - YouTube
                  - Vimeo
                  description: Video provider
                  example: YouTube
                image:
                  type: object
                  description: Video thumbnail
                  properties:
                    width:
                      type: integer
                      description: Thumbnail width in pixels
                      example: 1280
                    height:
                      type: integer
                      description: Thumbnail height in pixels
                      example: 720
                    url:
                      type: string
                      description: Thumbnail URL
                      example: https://img.youtube.com/vi/dQw4w9WgXcQ/hqdefault.jpg
    CommentCreateRequest:
      type: object
      description: Request body for creating a comment or reply
      required:
      - message
      properties:
        message:
          type: string
          description: Comment text (max 500 chars)
          example: Great analysis! I agree — the fundamentals are solid.
        attachments:
          $ref: '#/components/schemas/Attachments'
    Market:
      type: object
      description: Financial instrument / market
      properties:
        id:
          type: string
          description: Market identifier
          example: TSLA
        symbolName:
          type: string
          description: Ticker symbol
          example: TSLA
        displayName:
          type: string
          description: Human-readable name
          example: Tesla
        updated:
          type: string
          format: date-time
          nullable: true
          description: Last update timestamp
          example: '2025-01-15T00:00:00Z'
        assetType:
          type: string
          enum:
          - Stocks
          - Bonds
          - ETF
          - Index
          - Warrants
          - Options
          - Futures
          - CFD
          - TRS
          - FOREX
          - CommodityMetals
          - CommodityEnergyAgriculture
          - CryptoCoin
          - NFT
          description: Asset class
          example: Stocks
        internalId:
          type: integer
          description: Internal numeric market ID
          example: 59114
        avatar:
          type: object
          description: Market logo images
          properties:
            small:
              type: string
              description: Small logo URL (32 px)
              example: https://cdn.etoro.com/assets/img/markets/TSLA/small.png
            medium:
              type: string
              description: Medium logo URL (64 px)
              example: https://cdn.etoro.com/assets/img/markets/TSLA/medium.png
            large:
              type: string
              description: Large logo URL (128 px)
              example: https://cdn.etoro.com/assets/img/markets/TSLA/large.png
            svg:
              type: object
              nullable: true
              description: SVG logo with brand colours
              properties:
                url:
                  type: string
                  description: SVG URL
                  example: https://cdn.etoro.com/assets/img/markets/TSLA/logo.svg
                backgroundColor:
                  type: string
                  description: Brand background colour (hex)
                  example: '#CC0000'
                textColor:
                  type: string
                  description: Brand text colour (hex)
                  example: '#FFFFFF'
        application:
          type: string
          enum:
          - eToro
          - Delta
          - Gatsby
          description: Source application
          example: eToro
        metadata:
          type: string
          description: Opaque JSON metadata string
          example: '{}'
        assetTypeId:
          type: integer
          description: Numeric asset type ID
          example: 10
        assetTypeSubCategoryId:
          type: integer
          description: Numeric asset sub-category ID
          example: 101
    Attachments:
      type: array
      description: List of attachments for a post or comment (request body format)
      items:
        type: object
        description: Media or link attachment
        properties:
          url:
            type: string
            description: Full URL of the attachment
            example: https://cdn.etoro.com/rich-media/images/johndoe/abc-2025-01-15.jpg
          title:
            type: string
            description: Title of the attachment
            example: Tesla Q4 Earnings Chart
          host:
            type: string
            description: Host domain of the attachment
            example: cdn.etoro.com
          description:
            type: string
            description: Short description of the attachment
            example: Tesla quarterly earnings breakdown
          mediaType:
            type: string
            enum:
            - None
            - Link
            - Image
            description: Type of media (video not supported for upload)
            example: Image
          media:
            type: object
            description: Media content details (images only)
            properties:
              image:
                type: object
                description: Image dimensions and URL
                properties:
                  width:
                    type: integer
                    description: Width in pixels
                    example: 1200
                  height:
                    type: integer
                    description: Height in pixels
                    example: 630
                  url:
                    type: string
                    description: Image URL
                    example: https://cdn.etoro.com/rich-media/images/johndoe/abc-2025-01-15.jpg
    Comment:
      type: object
      description: A comment (or reply) on a post, wrapped with interaction data
      properties:
        entity:
          type: object
          description: Core comment data
          properties:
            id:
              type: string
              description: Comment ID
              example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
            owner:
              $ref: '#/components/schemas/User'
            obsoleteId:
              type: string
              description: Legacy numeric comment ID
              example: '98765'
            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-15T11:00:00Z'
            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
            attachments:
              type: array
              items:
                $ref: '#/components/schemas/Attachment'
            mentions:
              type: array
              items:
                type: object
                properties:
                  user:
                    $ref: '#/components/schemas/User'
                  isDirect:
                    type: boolean
                    description: Direct @-mention
                    example: true
            tags:
              type: array
              items:
                type: object
                properties:
                  market:
                    $ref: '#/components/schemas/Market'
            isSpam:
              type: boolean
              description: True when classified as spam
              example: false
            editStatus:
              type: string
              enum:
              - None
              - Edited
              - Moderated
              description: Edit lifecycle status
              example: None
            parent:
              type: object
              description: Parent entity reference
              properties:
                id:
                  type: string
                  description: Parent entity ID
                  example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
                obsoleteId:
                  type: string
                  description: Legacy parent ID
                  example: '12345'
                type:
                  type: string
                  enum:
                  - Unknown
                  - Post
                  - Comment
                  - Reply
                  description: Parent entity type
                  example: Post
        repliesCount:
          type: integer
          description: Number of direct replies to this comment
          example: 2
        replies:
          type: array
          description: Inline reply preview. Each entry has the same shape as Comment; nested `replies` arrays are not populated at this level.
          items:
            $ref: '#/components/schemas/Comment'
        emotionsData:
          type: object
          description: Aggregated emotions (likes) on an entity
          properties:
            like:
              type: object
              properties:
                paging:
                  type: object
                  description: Pagination cursor info
                  properties:
                    totalCount:
                      type: integer
                      description: Total number of items
                      example: 42
                    offsetEntityId:
                      type: string
                      description: Opaque cursor for next page
                      example: b2c3d4e5-f6a7-4890-bcde-f23456789012
                    next:
                      type: string
                      description: URL to next page
                      example: /api/v1/reactions/3fa85f64-5717-4562-b3fc-2c963f66afa6/emotions?offset=10&take=10
                emotions:
                  type: array
                  items:
                    $ref: '#/components/schemas/Emotion'
        requesterContext:
          type: object
          description: Requester's relationship state with the comment
          properties:
            isOwner:
              type: boolean
              description: Requester is the comment owner
              example: false
            isFlaggingAsSpam:
              type: boolean
              description: Requester flagged this as spam
              example: false
            isSubscribed:
              type: boolean
              description: Requester is subscribed to notifications
              example: false
            isLiking:
              type: boolean
              description: Requester has liked this comment
              example: false
            isSaved:
              type: boolean
              description: Requester has saved this comment
              example: false
            isPinned:
              type: boolean
              description: Comment is pinned
              example: false
            isRequesterBlocking:
              type: boolean
              description: Requester is blocking the comment owner
              example: false
            isInteractionRestricted:
              type: boolean
              description: Owner has blocked the requester
              example: false
    Emotion:
      type: object
      description: A like reaction on a post or comment
      properties:
        type:
          type: string
          enum:
          - Like
          description: Emotion type (currently only Like is supported)
          example: Like
        id:
          type: string
          description: Emotion ID
          example: b2c3d4e5-f6a7-4890-bcde-f23456789012
        owner:
          $ref: '#/components/schemas/User'
        obsoleteId:
          type: string
          description: Legacy numeric emotion ID
          example: '54321'
        parent:
          type: object
          description: Parent entity reference
          properties:
            id:
              type: string
              description: Parent entity ID
              example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
            obsoleteId:
              type: string
              description: Legacy parent ID
              example: '12345'
            type:
              type: string
              enum:
              - Unknown
              - Post
              - Comment
              - Reply
              description: Parent entity type
              example: Post
        created:
          type: string
          format: date-time
          description: When the like was created
          example: '2025-01-15T10:30:00Z'