## CommentBundle
```json
{
"commentable_meta": [
{
"id": 407,
"title": "Clicking circles linked to increased performance",
"type": "news_post",
"url": "https://osu.ppy.sh/home"
}
],
"comments": [
{
"commentable_id": 407,
"commentable_type": "news_post",
"created_at": "2019-09-05T06:31:20+00:00",
"deleted_at": null,
"edited_at": null,
"edited_by_id": null,
"id": 276,
"legacy_name": null,
"message": "yes",
"message_html": "
",
"parent_id": null,
"replies_count": 0,
"updated_at": "2019-09-05T06:31:20+00:00",
"user_id": 1,
"votes_count": 1337
},
{
"commentable_id": 407,
"commentable_type": "news_post",
"created_at": "2019-09-05T07:31:20+00:00",
"deleted_at": null,
"edited_at": null,
"edited_by_id": null,
"id": 277,
"legacy_name": null,
"message": "absolutely",
"message_html": "",
"parent_id": null,
"replies_count": 0,
"updated_at": "2019-09-05T07:31:20+00:00",
"user_id": 2,
"votes_count": 1337
}
],
"has_more": true,
"has_more_id": 276,
"included_comments": [],
"pinned_comments": [],
"sort": "new",
"user_follow": false,
"user_votes": [277],
"users": [
{
"avatar_url": "https://a.ppy.sh/2?1519081077.png",
"country_code": "AU",
"default_group": "pippi",
"id": 1,
"is_active": true,
"is_bot": false,
"is_online": true,
"is_supporter": true,
"last_visit": "2025-09-05T08:35:00+00:00",
"pm_friends_only": false,
"profile_colour": null,
"username": "pippi"
},
{
"avatar_url": "https://a.ppy.sh/2?1519081077.png",
"country_code": "AU",
"default_group": "yuzu",
"id": 2,
"is_active": true,
"is_bot": false,
"is_online": false,
"is_supporter": true,
"last_visit": "2025-09-04T09:28:00+00:00",
"pm_friends_only": false,
"profile_colour": null,
"username": "yuzu"
}
]
}
```
Comments and related data.
Field | Type | Description
----------------- | ------------------------------------- | --------------------------------------------------------------
commentable_meta | [CommentableMeta](#commentablemeta)[] | ID of the object the comment is attached to
comments | [Comment](#comment)[] | Array of comments ordered according to `sort`;
cursor | [Cursor](#cursor) |
has_more | boolean | If there are more comments or replies available
has_more_id | integer? |
included_comments | [Comment](#comment)[] | Related comments; e.g. parent comments and nested replies
pinned_comments | [Comment](#comment)[]? | Pinned comments
sort | string | one of the [CommentSort](#commentsort) types
top_level_count | integer? | Number of comments at the top level. Not returned for replies.
total | integer? | Total number of comments. Not retuned for replies.
user_follow | boolean | is the current user watching the comment thread?
user_votes | integer[] | IDs of the comments in the bundle the current user has upvoted
users | [User](#user)[] | array of users related to the comments