eToro Comments API
The Comments API from eToro — 1 operation(s) for comments.
The Comments API from eToro — 1 operation(s) for comments.
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'