Box

Box Comments API

Comments are messages generated users on files, allowing users to collaborate on a file, discussing any feedback they might have on the content.

Operations 5

GET /files/{file_id}/comments List file comments #
GET /comments/{comment_id} Get comment #
PUT /comments/{comment_id} Update comment #
DELETE /comments/{comment_id} Remove comment #
POST /comments Create comment #

Documentation

📖
Documentation
https://developer.box.com/reference/get-authorize
📖
Documentation
https://developer.box.com/reference/post-oauth2-token
📖
Documentation
https://developer.box.com/reference/post-files-id-copy
📖
Documentation
https://developer.box.com/reference/post-file-requests-id-copy
📖
Documentation
https://developer.box.com/reference/post-folders-id-copy
📖
Documentation
https://developer.box.com/reference/post-folder-locks
📖
Documentation
https://developer.box.com/reference/post-metadata-templates-schema
📖
Documentation
https://developer.box.com/reference/post-metadata-cascade-policies
📖
Documentation
https://developer.box.com/reference/post-metadata-queries-execute-read
📖
Documentation
https://developer.box.com/reference/post-comments
📖
Documentation
https://developer.box.com/reference/post-collaborations
📖
Documentation
https://developer.box.com/reference/post-tasks
📖
Documentation
https://developer.box.com/reference/post-task-assignments
📖
Documentation
https://developer.box.com/reference/put-files-id--add-shared-link
📖
Documentation
https://developer.box.com/reference/put-folders-id--add-shared-link
📖
Documentation
https://developer.box.com/reference/post-web-links
📖
Documentation
https://developer.box.com/reference/put-web-links-id--add-shared-link
📖
Documentation
https://developer.box.com/reference/post-users
📖
Documentation
https://developer.box.com/reference/post-invites
📖
Documentation
https://developer.box.com/reference/post-groups
📖
Documentation
https://developer.box.com/reference/post-group-memberships
📖
Documentation
https://developer.box.com/reference/post-webhooks
📖
Documentation
https://developer.box.com/reference/post-files-id-metadata-global-boxSkillsCards
📖
Documentation
https://developer.box.com/reference/options-events
📖
Documentation
https://developer.box.com/reference/get-collections-id
📖
Documentation
https://developer.box.com/reference/get-recent-items
📖
Documentation
https://developer.box.com/reference/post-retention-policies
📖
Documentation
https://developer.box.com/reference/post-retention-policy-assignments
📖
Documentation
https://developer.box.com/reference/post-legal-hold-policies
📖
Documentation
https://developer.box.com/reference/post-legal-hold-policy-assignments
📖
Documentation
https://developer.box.com/reference/get-file-version-retentions-id
📖
Documentation
https://developer.box.com/reference/get-file-version-legal-holds-id
📖
Documentation
https://developer.box.com/reference/post-shield-information-barriers-change-status
📖
Documentation
https://developer.box.com/reference/post-shield-information-barrier-reports
📖
Documentation
https://developer.box.com/reference/post-shield-information-barrier-segments
📖
Documentation
https://developer.box.com/reference/post-shield-information-barrier-segment-members
📖
Documentation
https://developer.box.com/reference/post-shield-information-barrier-segment-restrictions
📖
Documentation
https://developer.box.com/reference/get-device-pinners-id
📖
Documentation
https://developer.box.com/reference/post-terms-of-services
📖
Documentation
https://developer.box.com/reference/post-terms-of-service-user-statuses
📖
Documentation
https://developer.box.com/reference/post-collaboration-whitelist-entries
📖
Documentation
https://developer.box.com/

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/box:box-comments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

box-comments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Box Platform Comments API
  description: Box Platform provides functionality to provide access to content stored within Box. It provides endpoints for basic manipulation of files and folders, management of users within an enterprise, as well as more complex topics such as legal holds and retention policies.
  termsOfService: https://cloud.app.box.com/s/rmwxu64h1ipr41u49w3bbuvbsa29wku9
  contact:
    name: Box, Inc
    url: https://developer.box.com
    email: devrel@box.com
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '2024.0'
  x-box-commit-hash: 53bdced3cd
servers:
- url: https://api.box.com/2.0
  description: Box Platform API server.
security:
- OAuth2Security: []
tags:
- name: Comments
  description: Comments are messages generated users on files, allowing users to collaborate on a file, discussing any feedback they might have on the content.
  x-box-tag: comments
paths:
  /files/{file_id}/comments:
    get:
      operationId: get_files_id_comments
      summary: List file comments
      description: Retrieves a list of comments for a file.
      parameters:
      - name: file_id
        in: path
        description: 'The unique identifier that represents a file.


          The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`.'
        required: true
        schema:
          type: string
        example: '12345'
      - name: fields
        in: query
        description: 'A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response.


          Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.'
        required: false
        schema:
          type: array
          items:
            type: string
        example:
        - id
        - type
        - name
        explode: false
      - name: limit
        in: query
        description: The maximum number of items to return per page.
        required: false
        schema:
          type: integer
          format: int64
          maximum: 1000
        example: 1000
      - name: offset
        in: query
        description: 'The offset of the item at which to begin the response.


          Queries with offset parameter value exceeding 10000 will be rejected with a 400 response.'
        required: false
        schema:
          type: integer
          format: int64
          default: 0
        example: 1000
      responses:
        '200':
          description: Returns a collection of comment objects. If there are no comments on this file an empty collection will be returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comments'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: comments
      tags:
      - Comments
      x-codeSamples:
      - lang: curl
        label: List file comments
        source: "curl -i -X GET \"https://api.box.com/2.0/files/12345/comments\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\""
      - lang: dotnet
        label: List file comments
        source: 'await client.Comments.GetFileCommentsAsync(fileId: fileId);'
      - lang: swift
        label: List file comments
        source: 'try await client.comments.getFileComments(fileId: fileId)'
      - lang: java
        label: List file comments
        source: client.getComments().getFileComments(fileId)
      - lang: node
        label: List file comments
        source: await client.comments.getFileComments(fileId);
      - lang: python
        label: List file comments
        source: client.comments.get_file_comments(file_id)
  /comments/{comment_id}:
    get:
      operationId: get_comments_id
      summary: Get comment
      description: Retrieves the message and metadata for a specific comment, as well as information on the user who created the comment.
      parameters:
      - name: comment_id
        in: path
        description: The ID of the comment.
        required: true
        schema:
          type: string
        example: '12345'
      - name: fields
        in: query
        description: 'A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response.


          Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.'
        required: false
        schema:
          type: array
          items:
            type: string
        example:
        - id
        - type
        - name
        explode: false
      responses:
        '200':
          description: Returns a full comment object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment--Full'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: comments
      tags:
      - Comments
      x-codeSamples:
      - lang: curl
        label: Get comment
        source: "curl -i -X GET \"https://api.box.com/2.0/comments/12345\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\""
      - lang: dotnet
        label: Get comment
        source: 'await client.Comments.GetCommentByIdAsync(commentId: NullableUtils.Unwrap(newComment.Id));'
      - lang: swift
        label: Get comment
        source: 'try await client.comments.getCommentById(commentId: newComment.id!)'
      - lang: java
        label: Get comment
        source: client.getComments().getCommentById(newComment.getId())
      - lang: node
        label: Get comment
        source: await client.comments.getCommentById(newComment.id!);
      - lang: python
        label: Get comment
        source: client.comments.get_comment_by_id(new_comment.id)
    put:
      operationId: put_comments_id
      summary: Update comment
      description: Update the message of a comment.
      parameters:
      - name: comment_id
        in: path
        description: The ID of the comment.
        required: true
        schema:
          type: string
        example: '12345'
      - name: fields
        in: query
        description: 'A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response.


          Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.'
        required: false
        schema:
          type: array
          items:
            type: string
        example:
        - id
        - type
        - name
        explode: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  description: The text of the comment to update.
                  type: string
                  example: Review completed!
      responses:
        '200':
          description: Returns the updated comment object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment--Full'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: comments
      tags:
      - Comments
      x-codeSamples:
      - lang: curl
        label: Update comment
        source: "curl -i -X PUT \"https://api.box.com/2.0/comments/12345\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\" \\\n     -H \"content-type: application/json\" \\\n     -d '{\n       \"message\": \"My New Message\"\n     }'"
      - lang: dotnet
        label: Update comment
        source: 'await client.Comments.UpdateCommentByIdAsync(commentId: NullableUtils.Unwrap(newReplyComment.Id), requestBody: new UpdateCommentByIdRequestBody() { Message = newMessage });'
      - lang: swift
        label: Update comment
        source: 'try await client.comments.updateCommentById(commentId: newReplyComment.id!, requestBody: UpdateCommentByIdRequestBody(message: newMessage))'
      - lang: java
        label: Update comment
        source: client.getComments().updateCommentById(newReplyComment.getId(), new UpdateCommentByIdRequestBody.Builder().message(newMessage).build())
      - lang: node
        label: Update comment
        source: "await client.comments.updateCommentById(newReplyComment.id!, {\n  requestBody: { message: newMessage } satisfies UpdateCommentByIdRequestBody,\n} satisfies UpdateCommentByIdOptionalsInput);"
      - lang: python
        label: Update comment
        source: client.comments.update_comment_by_id(new_reply_comment.id, message=new_message)
    delete:
      operationId: delete_comments_id
      summary: Remove comment
      description: Permanently deletes a comment.
      parameters:
      - name: comment_id
        in: path
        description: The ID of the comment.
        required: true
        schema:
          type: string
        example: '12345'
      responses:
        '204':
          description: Returns an empty response when the comment has been deleted.
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: comments
      tags:
      - Comments
      x-codeSamples:
      - lang: curl
        label: Remove comment
        source: "curl -i -X DELETE \"https://api.box.com/2.0/comments/12345\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\""
      - lang: dotnet
        label: Remove comment
        source: 'await client.Comments.DeleteCommentByIdAsync(commentId: NullableUtils.Unwrap(newComment.Id));'
      - lang: swift
        label: Remove comment
        source: 'try await client.comments.deleteCommentById(commentId: newComment.id!)'
      - lang: java
        label: Remove comment
        source: client.getComments().deleteCommentById(newComment.getId())
      - lang: node
        label: Remove comment
        source: await client.comments.deleteCommentById(newComment.id!);
      - lang: python
        label: Remove comment
        source: client.comments.delete_comment_by_id(new_comment.id)
  /comments:
    post:
      operationId: post_comments
      summary: Create comment
      description: Adds a comment by the user to a specific file, or as a reply to an other comment.
      parameters:
      - name: fields
        in: query
        description: 'A comma-separated list of attributes to include in the response. This can be used to request fields that are not normally returned in a standard response.


          Be aware that specifying this parameter will have the effect that none of the standard fields are returned in the response unless explicitly specified, instead only fields for the mini representation are returned, additional to the fields requested.'
        required: false
        schema:
          type: array
          items:
            type: string
        example:
        - id
        - type
        - name
        explode: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  description: 'The text of the comment.


                    To mention a user, use the `tagged_message` parameter instead.'
                  type: string
                  example: Review completed!
                tagged_message:
                  description: 'The text of the comment, including `@[user_id:name]` somewhere in the message to mention another user, which will send them an email notification, letting them know they have been mentioned.


                    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.


                    If you are not mentioning another user, use `message` instead.'
                  type: string
                  example: '@[1234:John] Review completed!'
                item:
                  description: The item to attach the comment to.
                  type: object
                  properties:
                    id:
                      description: The ID of the item.
                      type: string
                      example: '11446498'
                    type:
                      description: The type of the item that this comment will be placed on.
                      type: string
                      example: file
                      enum:
                      - file
                      - comment
                  required:
                  - id
                  - type
              required:
              - message
              - item
      responses:
        '201':
          description: 'Returns the newly created comment object.


            Not all available fields are returned by default. Use the [fields](#parameter-fields) query parameter to explicitly request any specific fields.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment--Full'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: comments
      tags:
      - Comments
      x-box-enable-explorer: false
      x-codeSamples:
      - lang: curl
        label: Create comment
        source: "curl -i -X POST \"https://api.box.com/2.0/comments\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\" \\\n     -H \"content-type: application/json\" \\\n     -d '{\n       \"message\": \"Review completed!\",\n       \"item\": {\n         \"type\": \"file\",\n         \"id\": 426436\n       }\n     }'"
      - lang: dotnet
        label: Create comment
        source: 'await client.Comments.CreateCommentAsync(requestBody: new CreateCommentRequestBody(message: message, item: new CreateCommentRequestBodyItemField(id: fileId, type: CreateCommentRequestBodyItemTypeField.File)));'
      - lang: swift
        label: Create comment
        source: 'try await client.comments.createComment(requestBody: CreateCommentRequestBody(message: message, item: CreateCommentRequestBodyItemField(id: fileId, type: CreateCommentRequestBodyItemTypeField.file)))'
      - lang: java
        label: Create comment
        source: client.getComments().createComment(new CreateCommentRequestBody(message, new CreateCommentRequestBodyItemField(fileId, CreateCommentRequestBodyItemTypeField.FILE)))
      - lang: node
        label: Create comment
        source: "await client.comments.createComment({\n  message: message,\n  item: {\n    id: fileId,\n    type: 'file' as CreateCommentRequestBodyItemTypeField,\n  } satisfies CreateCommentRequestBodyItemField,\n} satisfies CreateCommentRequestBody);"
      - lang: python
        label: Create comment
        source: "client.comments.create_comment(\n    message, CreateCommentItem(id=file_id, type=CreateCommentItemTypeField.FILE)\n)"
components:
  schemas:
    Comments:
      description: A list of comments.
      type: object
      allOf:
      - type: object
        description: The part of an API response that describes pagination.
        properties:
          total_count:
            description: 'One greater than the offset of the last entry in the entire collection. The total number of entries in the collection may be less than `total_count`.


              This field is only returned for calls that use offset-based pagination. For marker-based paginated APIs, this field will be omitted.'
            type: integer
            format: int64
            example: 5000
          limit:
            description: The limit that was used for these entries. This will be the same as the `limit` query parameter unless that value exceeded the maximum value allowed. The maximum value varies by API.
            type: integer
            format: int64
            example: 1000
          offset:
            description: 'The 0-based offset of the first entry in this set. This will be the same as the `offset` query parameter.


              This field is only returned for calls that use offset-based pagination. For marker-based paginated APIs, this field will be omitted.'
            type: integer
            format: int64
            example: 2000
          order:
            description: 'The order by which items are returned.


              This field is only returned for calls that use offset-based pagination. For marker-based paginated APIs, this field will be omitted.'
            type: array
            items:
              type: object
              description: The order in which a pagination is ordered.
              properties:
                by:
                  description: The field to order by.
                  type: string
                  example: type
                direction:
                  description: The direction to order by, either ascending or descending.
                  type: string
                  example: ASC
                  enum:
                  - ASC
                  - DESC
      - properties:
          entries:
            description: A list of comments.
            type: array
            items:
              $ref: '#/components/schemas/Comment--Full'
      title: Comments
      x-box-resource-id: comments
      x-box-tag: comments
    ClientError:
      description: A generic error.
      type: object
      properties:
        type:
          description: The value will always be `error`.
          type: string
          example: error
          enum:
          - error
        status:
          description: The HTTP status of the response.
          type: integer
          format: int32
          example: 400
        code:
          description: A Box-specific error code.
          type: string
          example: item_name_invalid
          enum:
          - created
          - accepted
          - no_content
          - redirect
          - not_modified
          - bad_request
          - unauthorized
          - forbidden
          - not_found
          - method_not_allowed
          - conflict
          - precondition_failed
          - unprocessable_entity
          - too_many_requests
          - internal_server_error
          - unavailable
          - item_name_invalid
          - insufficient_scope
        message:
          description: A short message describing the error.
          type: string
          example: Method Not Allowed
        context_info:
          description: A free-form object that contains additional context about the error. The possible fields are defined on a per-endpoint basis. `message` is only one example.
          type:
          - object
          - 'null'
          example:
            message: Something went wrong
          additionalProperties: {}
        help_url:
          description: A URL that links to more information about why this error occurred.
          type: string
          example: https://developer.box.com/guides/api-calls/permissions-and-errors/common-errors/
        request_id:
          description: A unique identifier for this response, which can be used when contacting Box support.
          type: string
          example: abcdef123456
      title: Client error
      x-box-resource-id: client_error
    User--Mini:
      description: A mini representation of a user, as can be returned when nested within other resources.
      type: object
      allOf:
      - $ref: '#/components/schemas/User--Base'
      - properties:
          name:
            description: The display name of this user.
            type: string
            example: Aaron Levie
            maxLength: 50
          login:
            description: The primary email address of this user.
            type: string
            format: email
            example: ceo@example.com
      title: User (Mini)
      x-box-resource-id: user--mini
      x-box-tag: users
      x-box-variant: mini
    Comment:
      description: Standard representation of a comment.
      type: object
      allOf:
      - $ref: '#/components/schemas/Comment--Base'
      - properties:
          is_reply_comment:
            description: Whether or not this comment is a reply to another comment.
            type: boolean
            example: true
          message:
            description: The text of the comment, as provided by the user.
            type: string
            example: '@Aaron Levie these tigers are cool!'
          created_by:
            allOf:
            - $ref: '#/components/schemas/User--Mini'
            - description: A mini user object representing the author of the comment.
          created_at:
            description: The time this comment was created.
            type: string
            format: date-time
            example: '2012-12-12T10:53:43-08:00'
          modified_at:
            description: The time this comment was last modified.
            type: string
            format: date-time
            example: '2012-12-12T10:53:43-08:00'
          item:
            allOf:
            - title: Reference
              description: The bare basic reference for an object.
              type: object
              properties:
                id:
                  description: The unique identifier for this object.
                  type: string
                  example: '11446498'
                type:
                  description: The type for this object.
                  type: string
                  example: file
            - description: The file this comment was placed on.
      title: Comment
      x-box-resource-id: comment
      x-box-tag: comments
      x-box-variant: standard
    Comment--Full:
      description: Comments are messages created on files. Comments can be made independently or created as responses to other comments.
      type: object
      allOf:
      - $ref: '#/components/schemas/Comment'
      - properties:
          tagged_message:
            description: The string representing the comment text with @mentions included. @mention format is @[id:username] where `id` is user's Box ID and `username` is their display name.
            type: string
            example: '@[1234567:Aaron Levie] these tigers are cool!'
      title: Comment (Full)
      x-box-resource-id: comment--full
      x-box-tag: comments
      x-box-variant: full
    Comment--Base:
      description: Base representation of a comment.
      type: object
      properties:
        id:
          description: The unique identifier for this comment.
          type: string
          example: '11446498'
        type:
          description: The value will always be `comment`.
          type: string
          example: comment
          enum:
          - comment
      title: Comment (Base)
      x-box-resource-id: comment--base
      x-box-tag: comments
      x-box-variant: base
      x-box-variants:
      - base
      - standard
      - full
    User--Base:
      description: A mini representation of a user, used when nested within another resource.
      type: object
      properties:
        id:
          description: The unique identifier for this user.
          type: string
          example: '11446498'
        type:
          description: The value will always be `user`.
          type: string
          example: user
          enum:
          - user
      required:
      - type
      - id
      title: User (Base)
      x-box-resource-id: user--base
      x-box-tag: users
      x-box-variant: base
      x-box-variants:
      - base
      - mini
      - standard
      - full
  securitySchemes:
    OAuth2Security:
      type: oauth2
      description: The access token received from the authorization server in the OAuth 2.0 flow.
      flows:
        authorizationCode:
          authorizationUrl: https://account.box.com/api/oauth2/authorize
          tokenUrl: https://api.box.com/oauth2/token
          scopes:
            root_readonly: Read all files and folders stored in Box
            root_readwrite: Read and write all files and folders stored in Box
            manage_app_users: Provision and manage app users
            manage_managed_users: Provision and manage managed users
            manage_groups: Manage an enterprise's groups
            manage_webhook: Create webhooks programmatically through the API
            manage_enterprise_properties: Manage enterprise properties
            manage_data_retention: Manage data retention polices
            manage_legal_hold: Manage Legal Holds
externalDocs:
  description: Box Developer Documentation.
  url: https://developer.box.com
x-mint:
  mcp:
    enabled: true
x-provenance:
  method: harvested
  publisher: Box
  source: https://developer.box.com/box-openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)