1## CommentBundle
2```json
3{
4 "commentable_meta": [
5 {
6 "id": 407,
7 "title": "Clicking circles linked to increased performance",
8 "type": "news_post",
9 "url": "https://osu.ppy.sh/home"
10 }
11 ],
12 "comments": [
13 {
14 "commentable_id": 407,
15 "commentable_type": "news_post",
16 "created_at": "2019-09-05T06:31:20+00:00",
17 "deleted_at": null,
18 "edited_at": null,
19 "edited_by_id": null,
20 "id": 276,
21 "legacy_name": null,
22 "message": "yes",
23 "message_html": "<div class='osu-md-default'><p class=\"osu-md-default__paragraph\">yes</p>\n</div>",
24 "parent_id": null,
25 "replies_count": 0,
26 "updated_at": "2019-09-05T06:31:20+00:00",
27 "user_id": 1,
28 "votes_count": 1337
29 },
30 {
31 "commentable_id": 407,
32 "commentable_type": "news_post",
33 "created_at": "2019-09-05T07:31:20+00:00",
34 "deleted_at": null,
35 "edited_at": null,
36 "edited_by_id": null,
37 "id": 277,
38 "legacy_name": null,
39 "message": "absolutely",
40 "message_html": "<div class='osu-md-default'><p class=\"osu-md-default__paragraph\">absolutely</p>\n</div>",
41 "parent_id": null,
42 "replies_count": 0,
43 "updated_at": "2019-09-05T07:31:20+00:00",
44 "user_id": 2,
45 "votes_count": 1337
46 }
47 ],
48 "has_more": true,
49 "has_more_id": 276,
50 "included_comments": [],
51 "pinned_comments": [],
52 "sort": "new",
53 "user_follow": false,
54 "user_votes": [277],
55 "users": [
56 {
57 "avatar_url": "https://a.ppy.sh/2?1519081077.png",
58 "country_code": "AU",
59 "default_group": "pippi",
60 "id": 1,
61 "is_active": true,
62 "is_bot": false,
63 "is_online": true,
64 "is_supporter": true,
65 "last_visit": "2025-09-05T08:35:00+00:00",
66 "pm_friends_only": false,
67 "profile_colour": null,
68 "username": "pippi"
69 },
70 {
71 "avatar_url": "https://a.ppy.sh/2?1519081077.png",
72 "country_code": "AU",
73 "default_group": "yuzu",
74 "id": 2,
75 "is_active": true,
76 "is_bot": false,
77 "is_online": false,
78 "is_supporter": true,
79 "last_visit": "2025-09-04T09:28:00+00:00",
80 "pm_friends_only": false,
81 "profile_colour": null,
82 "username": "yuzu"
83 }
84 ]
85}
86```
87
88Comments and related data.
89
90Field | Type | Description
91----------------- | ------------------------------------- | --------------------------------------------------------------
92commentable_meta | [CommentableMeta](#commentablemeta)[] | ID of the object the comment is attached to
93comments | [Comment](#comment)[] | Array of comments ordered according to `sort`;
94cursor | [Cursor](#cursor) |
95has_more | boolean | If there are more comments or replies available
96has_more_id | integer? |
97included_comments | [Comment](#comment)[] | Related comments; e.g. parent comments and nested replies
98pinned_comments | [Comment](#comment)[]? | Pinned comments
99sort | string | one of the [CommentSort](#commentsort) types
100top_level_count | integer? | Number of comments at the top level. Not returned for replies.
101total | integer? | Total number of comments. Not retuned for replies.
102user_follow | boolean | is the current user watching the comment thread?
103user_votes | integer[] | IDs of the comments in the bundle the current user has upvoted
104users | [User](#user)[] | array of users related to the comments