The Comments API manages comments and threaded replies on tasks, comment images, and comment privacy. Comments and replies are rows of fbs_comments; a reply is a comment with type: "reply" and a parent_id. Plugin source: free.
Board members can read comments; members who are not "viewer only" can write. Editing, deleting and changing privacy only works on your own comments.
Creates a comment, or a reply when parent_id is set. The author is always the current user. URLs are auto-linked and mentions are rendered as profile links. Email notifications are queued in the background: for comments, to the task's notification recipients (subject to their preferences); for replies, to the parent comment's author.
http
POST /wp-json/fluent-boards/v2/projects/{board_id}/tasks/{task_id}/comments
1
Parameters
Parameter
Type
Required
Description
comment
string
Yes*
Comment text. Optional when images is sent
comment_type
string
No
comment (default) or reply
parent_id
integer
For replies
Parent comment ID; must be a comment on the same task
images
integer[]
No
IDs returned by Upload a Comment Image. Only your own, not-yet-attached uploads for this board/task are accepted
mentionData
integer[]
No
User IDs to mention. All must be board members, otherwise 403
Updates the text of your own comment. If images is sent as an array it replaces the comment's image set: listed IDs are kept or attached, other images on the comment are deleted. New mentions must be board members.
http
PUT /wp-json/fluent-boards/v2/projects/{board_id}/tasks/comments/{comment_id}
1
Parameters
Parameter
Type
Required
Description
comment
string
Yes*
New text. Optional when images is sent
images
integer[]
No
Full list of image IDs the comment should have
mentionData
integer[]
No
User IDs to mention (merged with existing mentions)
Example Request
bash
curl "https://yourdomain.com/wp-json/fluent-boards/v2/projects/3/tasks/comments/4" \ -X PUT \ -u "USERNAME:APPLICATION_PASSWORD" \ -H "Content-Type: application/json" \ -d '{ "comment": "This is the updated comment content with https://example.com link", "images": [28], "mentionData": [789] }'
1 2 3 4 5 6 7 8 9
Example Response
json
{ "comment": { "id": 4, "board_id": 3, "task_id": 85, "parent_id": null, "type": "comment", "privacy": "private", "description": "This is the updated comment content with <a class=\"fbs_link\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://example.com\">https://example.com</a> link", "created_by": 789, "settings": { "raw_description": "This is the updated comment content with https://example.com link", "mentioned_id": [789] }, "images": [ { "id": 28, "object_id": 4, "object_type": "comment_image", "title": "updated-image.png" } ], "user": { "ID": 789, "display_name": "John Doe" }, "updated_at": "2024-01-15T13:00:00+00:00" }, "message": "Comment has been updated"}
Comments
The Comments API manages comments and threaded replies on tasks, comment images, and comment privacy. Comments and replies are rows of
fbs_comments; a reply is a comment withtype: "reply"and aparent_id. Plugin source: free.Board members can read comments; members who are not "viewer only" can write. Editing, deleting and changing privacy only works on your own comments.
Endpoints
/projects/{board_id}/tasks/{task_id}/comments/projects/{board_id}/tasks/{task_id}/comments/projects/{board_id}/tasks/comments/{comment_id}/projects/{board_id}/tasks/reply/{reply_id}/projects/{board_id}/tasks/comments/{comment_id}/projects/{board_id}/tasks/reply/{reply_id}/projects/{board_id}/tasks/comments/{comment_id}/privacy/projects/{board_id}/tasks/{task_id}/comment-image-uploadComment Object
idboard_id,task_idparent_idtypecommentorreplyprivacyprivateorpublicstatuspublishedauthor_name,author_emaildescriptionsettings.raw_descriptionsettings.mentioned_idcreated_bycreated_at,updated_atResponses often add
user,avatar,imagesand (for top-level comments)replies.List Comments
Returns the top-level comments of a task with their replies and images, 10 per page. Use
filterto change the sort order.Parameters
filteroldestsorts oldest first; any other value (latest,newest, empty) sorts newest firstpageExample Request
2
Example Response
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
The top-level
totalcounts comments and replies on the task;comments.totalcounts only top-level comments.Create a Comment
Creates a comment, or a reply when
parent_idis set. The author is always the current user. URLs are auto-linked and mentions are rendered as profile links. Email notifications are queued in the background: for comments, to the task's notification recipients (subject to their preferences); for replies, to the parent comment's author.Parameters
commentimagesis sentcomment_typecomment(default) orreplyparent_idimagesmentionData403Example Request
2
3
4
5
6
7
8
9
10
Reply to comment
3:2
3
4
5
6
7
8
9
Example Response (
201)2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
repliesis loaded only fortype: "comment".Update a Comment
Updates the text of your own comment. If
imagesis sent as an array it replaces the comment's image set: listed IDs are kept or attached, other images on the comment are deleted. New mentions must be board members.Parameters
commentimagesis sentimagesmentionDataExample Request
2
3
4
5
6
7
8
9
Example Response
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Returns
401"Unauthorized Action" when you are not the author.Update a Reply
Updates the text of your own reply. Images are not handled by this endpoint.
Parameters
commentmentionDataExample Request
2
3
4
5
Example Response
2
3
4
Returns
401"Unauthorized Action" when you are not the author.Delete a Comment
Deletes your own comment, its replies and their images, and updates the task's comment count.
Example Request
2
3
Example Response
2
3
WARNING
If you are not the author nothing is deleted, but the endpoint still returns
200with this message.Delete a Reply
Deletes your own reply and its images.
Example Request
2
3
Example Response
2
3
As with comments, a non-author request returns
200without deleting anything.Toggle Comment Privacy
Switches your own comment between
privateandpublic. There is no body; each call flips the current value.Example Request
2
3
Example Response
2
3
4
5
The stray
"0"key is a side effect of the current controller code. Returns401"Unauthorized Action" when you are not the author.Upload a Comment Image
Uploads one image for later use in Create a Comment or Update a Comment. The image is stored unattached (
object_id: 0) until a comment claims it.Parameters
fileExample Request
2
3
4
Example Response
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
A non-image file fails validation with
422("The file must be a image type.").Error Responses
See Common Error Responses for standard error formats.
Common comment errors:
commentwithout images)