> ## Documentation Index
> Fetch the complete documentation index at: https://api-portal.etoro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a reply

> **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.

---

Edits the authenticated user's own reply in-place. Same semantics as updating a comment.



## OpenAPI

````yaml /api-reference/openapi.json put /api/v1/posts/{postId}/comments/{commentId}/replies/{replyId}
openapi: 3.0.1
info:
  title: eToro Api
  version: v1.311.0
  description: >-
    eToro’s public API provides access to real-time financial data, trading
    insights, and account management features, allowing developers to integrate
    eToro’s services into their applications. With access to market prices,
    historical data, and social trading information, the API empowers users to
    enhance their trading strategies. Designed for security and scalability, the
    eToro API ensures smooth and reliable integration for a variety of financial
    applications.


    For more details on integrating with eToro's public WebSocket service,
    please refer to the dedicated [WebSocket
    documentation](./websocket/websocket-doc.html).
servers:
  - url: https://public-api.etoro.com
    description: eToro Public API
security: []
tags:
  - name: Agent Portfolios
  - name: Social Feeds
  - name: Balances
  - name: Clubs
  - name: Watchlists
  - name: Top Assets
  - name: Market Data
  - name: Identity
  - name: Cash Accounts
  - name: Transfer
  - name: Notifications
  - name: PI Data
  - name: PortfolioSearch
  - name: Price Alerts
  - name: SSO - Applications
  - name: SSO - Scopes
  - name: Sub-Accounts - eToro Trading
  - name: Sub-Accounts
  - name: Trading - Demo
  - name: Trading - Real
  - name: Users Info
  - name: Rankings
  - name: User Stats
  - name: Deprecated
paths:
  /api/v1/posts/{postId}/comments/{commentId}/replies/{replyId}:
    put:
      tags:
        - Social Feeds
      summary: Update a reply
      description: >-
        **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.


        ---


        Edits the authenticated user's own reply in-place. Same semantics as
        updating a comment.
      operationId: putPostsByPostIdCommentsByCommentIdRepliesByReplyId
      parameters:
        - name: x-request-id
          in: header
          required: true
          schema:
            type: string
            format: uuid
            example: 49fe91e4-2516-4895-a36d-59c6cd809e87
          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 parent post (UUID)
          schema:
            type: string
            format: uuid
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
          required: true
        - name: commentId
          in: path
          description: ID of the comment (UUID)
          schema:
            type: string
            format: uuid
          example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
          required: true
        - name: replyId
          in: path
          description: ID of the reply (UUID)
          schema:
            type: string
            format: uuid
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          required: true
      requestBody:
        description: Updated reply content
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentUpdateRequest'
      responses:
        '200':
          description: Updated reply
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          headers:
            RateLimit-Limit:
              description: >-
                Maximum number of requests allowed per window. This is the
                default shared pool used by every endpoint without a dedicated
                limit, so it is NOT per-endpoint — requests across those
                endpoints all draw from this one budget.
              schema:
                type: integer
              example: 60
            RateLimit-Remaining:
              description: Requests remaining in the current window for this quota.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
            RateLimit-Policy:
              description: Quota policy in the form `<limit>;w=<window-seconds>`.
              schema:
                type: string
              example: 60;w=60
        '401':
          description: Authentication required
        '403':
          description: Requester is not the reply owner
        '404':
          description: Post, comment, or reply not found
        '422':
          description: >-
            Validation failed — missing message body or spam classification
            rejected the content
        '429':
          description: >-
            Too Many Requests — the shared rate limit (60 requests / 60s) was
            exceeded.
          headers:
            RateLimit-Limit:
              description: >-
                Maximum number of requests allowed per window. This is the
                default shared pool used by every endpoint without a dedicated
                limit, so it is NOT per-endpoint — requests across those
                endpoints all draw from this one budget.
              schema:
                type: integer
              example: 60
            RateLimit-Remaining:
              description: Requests remaining in the current window for this quota.
              schema:
                type: integer
            RateLimit-Reset:
              description: Seconds until the current window resets.
              schema:
                type: integer
            RateLimit-Policy:
              description: Quota policy in the form `<limit>;w=<window-seconds>`.
              schema:
                type: string
              example: 60;w=60
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
              example: 60
      security:
        - oauth2:
            - etoro-public:feed:write
components:
  schemas:
    CommentUpdateRequest:
      type: object
      description: >-
        Request body for updating a comment or reply. Owner is derived from the
        auth token — do not supply it.
      properties:
        message:
          type: string
          description: Updated text content
          example: Great point, I updated my view after reading more.
        attachments:
          $ref: '#/components/schemas/Attachments'
    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
    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
    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
    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
    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'
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        eToro OAuth2. Each operation lists the scopes that grant access as
        separate `security` requirements (OpenAPI OR semantics): the caller's
        token only needs ONE of them — you do NOT need all of them. The same
        scopes back the x-api-key/x-user-key credential pair.
      flows:
        authorizationCode:
          authorizationUrl: ''
          tokenUrl: ''
          scopes:
            etoro-public:agent-portfolio:read: Grants access to the 'etoro-public:agent-portfolio:read' scope.
            etoro-public:agent-portfolio:write: Grants access to the 'etoro-public:agent-portfolio:write' scope.
            etoro-public:club:read: Grants access to the 'etoro-public:club:read' scope.
            etoro-public:demo:read: Grants access to the 'etoro-public:demo:read' scope.
            etoro-public:demo:write: Grants access to the 'etoro-public:demo:write' scope.
            etoro-public:feed:read: Grants access to the 'etoro-public:feed:read' scope.
            etoro-public:feed:write: Grants access to the 'etoro-public:feed:write' scope.
            etoro-public:market-data:read: Grants access to the 'etoro-public:market-data:read' scope.
            etoro-public:money.balance:read: Grants access to the 'etoro-public:money.balance:read' scope.
            etoro-public:money.cash-transactions:read: >-
              Grants access to the 'etoro-public:money.cash-transactions:read'
              scope.
            etoro-public:money.transfer:read: Grants access to the 'etoro-public:money.transfer:read' scope.
            etoro-public:money.transfer:write: Grants access to the 'etoro-public:money.transfer:write' scope.
            etoro-public:money:transfer: Grants access to the 'etoro-public:money:transfer' scope.
            etoro-public:notifications:read: Grants access to the 'etoro-public:notifications:read' scope.
            etoro-public:notifications:write: Grants access to the 'etoro-public:notifications:write' scope.
            etoro-public:pi-data:read: Grants access to the 'etoro-public:pi-data:read' scope.
            etoro-public:price-alerts:read: Grants access to the 'etoro-public:price-alerts:read' scope.
            etoro-public:price-alerts:write: Grants access to the 'etoro-public:price-alerts:write' scope.
            etoro-public:real:read: Grants access to the 'etoro-public:real:read' scope.
            etoro-public:real:write: Grants access to the 'etoro-public:real:write' scope.
            etoro-public:sso-applications:read: Grants access to the 'etoro-public:sso-applications:read' scope.
            etoro-public:sso-applications:write: Grants access to the 'etoro-public:sso-applications:write' scope.
            etoro-public:sso-scopes:read: Grants access to the 'etoro-public:sso-scopes:read' scope.
            etoro-public:sso-scopes:write: Grants access to the 'etoro-public:sso-scopes:write' scope.
            etoro-public:sub-accounts:read: Grants access to the 'etoro-public:sub-accounts:read' scope.
            etoro-public:sub-accounts:write: Grants access to the 'etoro-public:sub-accounts:write' scope.
            etoro-public:trade.demo:read: Grants access to the 'etoro-public:trade.demo:read' scope.
            etoro-public:trade.demo:write: Grants access to the 'etoro-public:trade.demo:write' scope.
            etoro-public:trade.real:read: Grants access to the 'etoro-public:trade.real:read' scope.
            etoro-public:trade.real:write: Grants access to the 'etoro-public:trade.real:write' scope.
            etoro-public:user-info:read: Grants access to the 'etoro-public:user-info:read' scope.
            etoro-public:watchlist:read: Grants access to the 'etoro-public:watchlist:read' scope.
            etoro-public:watchlist:write: Grants access to the 'etoro-public:watchlist:write' scope.

````