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: 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)