Add the power of the Box AI API to your custom apps at Content Cloud Summit on May 15

Learn more and register!

Create Comment

Create Comment

To create a comment, call the POST /comments API with the message of the comment, as well as the ID of the file to leave the comment on.

cURL
curl -i -X POST "https://api.box.com/2.0/comments" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "message": "Review completed!",
       "item": {
         "type": "file",
         "id": 426436
       }
     }'
.NET
var requestParams = new BoxCommentRequest()
{
    Item = new BoxRequestEntity()
    {
        Type = BoxType.File,
        Id = "12345"
    },
    Message = "Great work!"
};
BoxComment comment = await client.CommentsManager.AddCommentAsync(requestParams);
Java
BoxFile file = new BoxFile(api, "id");
file.addComment("This file is pretty cool.");
Python
comment = client.file(file_id='11111').add_comment('When should I have this done by?')
Node
client.comments.create('33333', 'Is this the latest version?')
    .then(comment => {
        /* comment -> {
            type: 'comment',
            id: '11111',
            is_reply_comment: false,
            message: 'Is this the latest version?',
            created_by: 
            { type: 'user',
                id: '22222',
                name: 'Example User',
                login: 'user@example.com' },
            created_at: '2012-12-12T11:25:01-08:00',
            item: { id: '33333', type: 'file' },
            modified_at: '2012-12-12T11:25:01-08:00' }
        */
    });
iOS
client.comments.create(
    itemId: "11111",
    itemType: "file",
    message: "Thanks!"
) { (result: Result<Comment, BoxSDKError>) in
    guard case let .success(comment) = result else {
        print("Error creating comment")
        return
    }

    print("Added comment to \(comment.item.name): \"\(comment.message)\"")
}
TypeScript (Beta)
await client.comments.createComment({
  message: message,
  item: {
    id: newComment.id!,
    type: 'comment' as CreateCommentRequestBodyItemTypeField,
  } satisfies CreateCommentRequestBodyItemField,
} satisfies CreateCommentRequestBody);
Python (Beta)
client.comments.create_comment(message, CreateCommentItem(id=new_comment.id, type=CreateCommentItemTypeField.COMMENT.value))
.NET (Beta)
await client.Comments.CreateCommentAsync(requestBody: new CreateCommentRequestBody(message: message, item: new CreateCommentRequestBodyItemField(id: NullableUtils.Unwrap(newComment.Id), type: CreateCommentRequestBodyItemTypeField.Comment)));

A comment's message can also mentions users using the @ sign. To do so, add the string @[userid:name] anywhere within the message. The user_id is the target user's ID, where the name can be any custom phrase. In the Box UI this name will link to the user's profile.

Then, pass this string as the tagged_message instead of the message.

cURL
curl -i -X POST "https://api.box.com/2.0/comments" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "tagged_message": "What do you think @[1234:John]?",
       "item": {
         "type": "file",
         "id": 123
       }
     }
Java
BoxFile file = new BoxFile(api, "id");
file.addComment("Message mentioning @[1234:user@box.com].");
Python
comment = client.file(file_id='11111').add_comment('Hey @[44444:boss], when should I have this done by?')
Node
client.comments.createTaggedComment('33333', '@[23560:Bob] Is this the latest version?')
    .then(comment => {
        /* comment -> {
            type: 'comment',
            id: '11111',
            is_reply_comment: false,
            tagged_message: '@[23560:Bob] Is this the latest version?',
            created_by: 
            { type: 'user',
                id: '22222',
                name: 'Example User',
                login: 'user@example.com' },
            created_at: '2012-12-12T11:25:01-08:00',
            item: { id: '33333', type: 'file' },
            modified_at: '2012-12-12T11:25:01-08:00' }
        */
    });