Box

Box Tasks API

Tasks allow users to request collaborators on a file to review a file or complete a piece of work. Tasks can be used by developers to create file-centric workflows.

Operations 5

GET /files/{file_id}/tasks List tasks on file #
POST /tasks Create task #
GET /tasks/{task_id} Get task #
PUT /tasks/{task_id} Update task #
DELETE /tasks/{task_id} Remove task #

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-tasks-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-tasks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Box Platform Tasks 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: Tasks
  description: Tasks allow users to request collaborators on a file to review a file or complete a piece of work. Tasks can be used by developers to create file-centric workflows.
  x-box-tag: tasks
paths:
  /files/{file_id}/tasks:
    get:
      operationId: get_files_id_tasks
      summary: List tasks on file
      description: Retrieves a list of all the tasks for a file. This endpoint does not support pagination.
      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'
      responses:
        '200':
          description: 'Returns a list of tasks on a file.


            If there are no tasks on this file an empty collection is returned instead.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tasks'
        '404':
          description: Returns an error when the file could not be found or the user does not have access to the file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '405':
          description: Returns an error when the `file_id` was not provided.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '500':
          description: Returns an error when an attempt was made to retrieve tasks for the file with ID `0`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: tasks
      tags:
      - Tasks
      x-codeSamples:
      - lang: curl
        label: List tasks on file
        source: "curl -i -X GET \"https://api.box.com/2.0/files/12345/tasks\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\""
      - lang: dotnet
        label: List tasks on file
        source: 'await client.Tasks.GetFileTasksAsync(fileId: file.Id);'
      - lang: swift
        label: List tasks on file
        source: 'try await client.tasks.getFileTasks(fileId: file.id)'
      - lang: java
        label: List tasks on file
        source: client.getTasks().getFileTasks(file.getId())
      - lang: node
        label: List tasks on file
        source: await client.tasks.getFileTasks(file.id);
      - lang: python
        label: List tasks on file
        source: client.tasks.get_file_tasks(file.id)
  /tasks:
    post:
      operationId: post_tasks
      summary: Create task
      description: Creates a single task on a file. This task is not assigned to any user and will need to be assigned separately.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                item:
                  description: The file to attach the task to.
                  type: object
                  properties:
                    id:
                      description: The ID of the file.
                      type: string
                      example: '11446498'
                    type:
                      description: The value will always be `file`.
                      type: string
                      example: file
                      enum:
                      - file
                action:
                  description: 'The action the task assignee will be prompted to do. Must be


                    - `review` defines an approval task that can be approved or, rejected

                    - `complete` defines a general task which can be completed.'
                  type: string
                  example: review
                  default: review
                  enum:
                  - review
                  - complete
                message:
                  description: An optional message to include with the task.
                  type: string
                  example: Please review
                  default: ''
                due_at:
                  description: Defines when the task is due. Defaults to `null` if not provided.
                  type: string
                  format: date-time
                  example: '2012-12-12T10:53:43-08:00'
                completion_rule:
                  description: 'Defines which assignees need to complete this task before the task is considered completed.


                    - `all_assignees` (default) requires all assignees to review or approve the task in order for it to be considered completed.

                    - `any_assignee` accepts any one assignee to review or approve the task in order for it to be considered completed.'
                  type: string
                  example: all_assignees
                  default: all_assignees
                  enum:
                  - all_assignees
                  - any_assignee
              required:
              - item
      responses:
        '201':
          description: Returns the newly created task.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '400':
          description: 'Returned if the request parameters or body is not valid.


            - `bad_request` when the body does not contain a valid request. This may be because the `action` or `completion_rule` are not one of the allowed values.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '403':
          description: Returns an error when the user does not have the permission to create a task on the file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '404':
          description: Returns an error when the file could not be found or the user does not have access to the file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: tasks
      tags:
      - Tasks
      x-codeSamples:
      - lang: curl
        label: Create task
        source: "curl -i -X POST \"https://api.box.com/2.0/tasks\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\" \\\n     -H \"content-type: application/json\" \\\n     -d '{\n       \"item\": {\n         \"id\": \"11446498\",\n         \"type\": \"file\"\n       },\n       \"action\": \"review\"\n     }'"
      - lang: dotnet
        label: Create task
        source: 'await client.Tasks.CreateTaskAsync(requestBody: new CreateTaskRequestBody(item: new CreateTaskRequestBodyItemField() { Type = CreateTaskRequestBodyItemTypeField.File, Id = file.Id }) { Message = "test message", DueAt = dateTime, Action = CreateTaskRequestBodyActionField.Review, CompletionRule = CreateTaskRequestBodyCompletionRuleField.AllAssignees });'
      - lang: swift
        label: Create task
        source: 'try await client.tasks.createTask(requestBody: CreateTaskRequestBody(item: CreateTaskRequestBodyItemField(type: CreateTaskRequestBodyItemTypeField.file, id: file.id), message: "test message", dueAt: dateTime, action: CreateTaskRequestBodyActionField.review, completionRule: CreateTaskRequestBodyCompletionRuleField.allAssignees))'
      - lang: java
        label: Create task
        source: client.getTasks().createTask(new CreateTaskRequestBody.Builder(new CreateTaskRequestBodyItemField.Builder().id(file.getId()).type(CreateTaskRequestBodyItemTypeField.FILE).build()).action(CreateTaskRequestBodyActionField.REVIEW).message("test message").dueAt(dateTime).completionRule(CreateTaskRequestBodyCompletionRuleField.ALL_ASSIGNEES).build())
      - lang: node
        label: Create task
        source: "await client.tasks.createTask({\n  item: {\n    type: 'file' as CreateTaskRequestBodyItemTypeField,\n    id: file.id,\n  } satisfies CreateTaskRequestBodyItemField,\n  message: 'test message',\n  dueAt: dateTime,\n  action: 'review' as CreateTaskRequestBodyActionField,\n  completionRule: 'all_assignees' as CreateTaskRequestBodyCompletionRuleField,\n} satisfies CreateTaskRequestBody);"
      - lang: python
        label: Create task
        source: "client.tasks.create_task(\n    CreateTaskItem(type=CreateTaskItemTypeField.FILE, id=file.id),\n    action=CreateTaskAction.REVIEW,\n    message=\"test message\",\n    due_at=date_time,\n    completion_rule=CreateTaskCompletionRule.ALL_ASSIGNEES,\n)"
  /tasks/{task_id}:
    get:
      operationId: get_tasks_id
      summary: Get task
      description: Retrieves information about a specific task.
      parameters:
      - name: task_id
        in: path
        description: The ID of the task.
        required: true
        schema:
          type: string
        example: '12345'
      responses:
        '200':
          description: Returns a task object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '404':
          description: Returns an error when the task could not be found or the user does not have access to the file the task is assigned to.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: tasks
      tags:
      - Tasks
      x-codeSamples:
      - lang: curl
        label: Get task
        source: "curl -i -X GET \"https://api.box.com/2.0/tasks/12345\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\""
      - lang: dotnet
        label: Get task
        source: 'await client.Tasks.GetTaskByIdAsync(taskId: NullableUtils.Unwrap(task.Id));'
      - lang: swift
        label: Get task
        source: 'try await client.tasks.getTaskById(taskId: task.id!)'
      - lang: java
        label: Get task
        source: client.getTasks().getTaskById(task.getId())
      - lang: node
        label: Get task
        source: await client.tasks.getTaskById(task.id!);
      - lang: python
        label: Get task
        source: client.tasks.get_task_by_id(task.id)
    put:
      operationId: put_tasks_id
      summary: Update task
      description: Updates a task. This can be used to update a task's configuration, or to update its completion state.
      parameters:
      - name: task_id
        in: path
        description: The ID of the task.
        required: true
        schema:
          type: string
        example: '12345'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  description: 'The action the task assignee will be prompted to do. Must be


                    - `review` defines an approval task that can be approved or rejected,

                    - `complete` defines a general task which can be completed.'
                  type: string
                  example: review
                  enum:
                  - review
                  - complete
                message:
                  description: The message included with the task.
                  type: string
                  example: Please review
                due_at:
                  description: When the task is due at.
                  type: string
                  format: date-time
                  example: '2012-12-12T10:53:43-08:00'
                completion_rule:
                  description: 'Defines which assignees need to complete this task before the task is considered completed.


                    - `all_assignees` (default) requires all assignees to review or approve the task in order for it to be considered completed.

                    - `any_assignee` accepts any one assignee to review or approve the task in order for it to be considered completed.'
                  type: string
                  example: all_assignees
                  enum:
                  - all_assignees
                  - any_assignee
      responses:
        '200':
          description: Returns the updated task object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Task'
        '400':
          description: 'Returned if the request parameters or body is not valid.


            - `bad_request` when the body does not contain a valid request. This may be because the `action` or `completion_rule` are not one of the allowed values.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '403':
          description: Returns an error when the user does not have the permission to update a task on the file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        '404':
          description: Returns an error when the file could not be found or the user does not have access to the file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: tasks
      tags:
      - Tasks
      x-codeSamples:
      - lang: curl
        label: Update task
        source: "curl -i -X PUT \"https://api.box.com/2.0/tasks/12345\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\" \\\n     -H \"content-type: application/json\" \\\n     -d '{\n       \"action\": \"review\"\n     }'"
      - lang: dotnet
        label: Update task
        source: 'await client.Tasks.UpdateTaskByIdAsync(taskId: NullableUtils.Unwrap(task.Id), requestBody: new UpdateTaskByIdRequestBody() { Message = "updated message" });'
      - lang: swift
        label: Update task
        source: 'try await client.tasks.updateTaskById(taskId: task.id!, requestBody: UpdateTaskByIdRequestBody(message: "updated message"))'
      - lang: java
        label: Update task
        source: client.getTasks().updateTaskById(task.getId(), new UpdateTaskByIdRequestBody.Builder().message("updated message").build())
      - lang: node
        label: Update task
        source: "await client.tasks.updateTaskById(task.id!, {\n  requestBody: {\n    message: 'updated message',\n  } satisfies UpdateTaskByIdRequestBody,\n} satisfies UpdateTaskByIdOptionalsInput);"
      - lang: python
        label: Update task
        source: client.tasks.update_task_by_id(task.id, message="updated message")
    delete:
      operationId: delete_tasks_id
      summary: Remove task
      description: Removes a task from a file.
      parameters:
      - name: task_id
        in: path
        description: The ID of the task.
        required: true
        schema:
          type: string
        example: '12345'
      responses:
        '204':
          description: Returns an empty response when the task was successfully deleted.
        '404':
          description: Returns an error when the task could not be found or the user does not have access to the file the task is assigned to.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
        default:
          description: An unexpected client error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientError'
      x-box-tag: tasks
      tags:
      - Tasks
      x-codeSamples:
      - lang: curl
        label: Remove task
        source: "curl -i -X DELETE \"https://api.box.com/2.0/tasks/12345\" \\\n     -H \"authorization: Bearer <ACCESS_TOKEN>\""
      - lang: dotnet
        label: Remove task
        source: 'await client.Tasks.DeleteTaskByIdAsync(taskId: NullableUtils.Unwrap(task.Id));'
      - lang: swift
        label: Remove task
        source: 'try await client.tasks.deleteTaskById(taskId: task.id!)'
      - lang: java
        label: Remove task
        source: client.getTasks().deleteTaskById(task.getId())
      - lang: node
        label: Remove task
        source: await client.tasks.deleteTaskById(task.id!);
      - lang: python
        label: Remove task
        source: client.tasks.delete_task_by_id(task.id)
components:
  schemas:
    File--Mini:
      description: A mini representation of a file, used when nested under another resource.
      type:
      - object
      - 'null'
      allOf:
      - $ref: '#/components/schemas/File--Base'
      - properties:
          sequence_id:
            allOf:
            - type:
              - string
              - 'null'
              example: '3'
              description: 'A numeric identifier that represents the most recent user event that has been applied to this item.


                This can be used in combination with the `GET /events`-endpoint to filter out user events that would have occurred before this identifier was read.


                An example would be where a Box Drive-like application would fetch an item via the API, and then listen to incoming user events for changes to the item. The application would ignore any user events where the `sequence_id` in the event is smaller than or equal to the `sequence_id` in the originally fetched resource.'
            - {}
          name:
            description: The name of the file.
            type: string
            example: Contract.pdf
          sha1:
            description: The SHA1 hash of the file. This can be used to compare the contents of a file on Box with a local file.
            type: string
            format: digest
            example: 85136C79CBF9FE36BB9D05D0639C70C265C18D37
          file_version:
            allOf:
            - $ref: '#/components/schemas/FileVersion--Mini'
            - description: The information about the current version of the file.
      title: File (Mini)
      x-box-resource-id: file--mini
      x-box-tag: files
      x-box-variant: mini
    Tasks:
      description: A list of tasks.
      type: object
      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`.
          type: integer
          format: int64
          example: 5000
        entries:
          description: A list of tasks.
          type: array
          items:
            $ref: '#/components/schemas/Task'
      title: Tasks
      x-box-resource-id: tasks
      x-box-tag: tasks
    TaskAssignment:
      description: A task assignment defines which task is assigned to which user to complete.
      type: object
      properties:
        id:
          description: The unique identifier for this task assignment.
          type: string
          example: '11446498'
        type:
          description: The value will always be `task_assignment`.
          type: string
          example: task_assignment
          enum:
          - task_assignment
        item:
          allOf:
          - $ref: '#/components/schemas/File--Mini'
          - description: The file that the task has been assigned to.
        assigned_to:
          allOf:
          - $ref: '#/components/schemas/User--Mini'
          - description: The user that the task has been assigned to.
        message:
          description: A message that will is included with the task assignment. This is visible to the assigned user in the web and mobile UI.
          type: string
          example: Please review
        completed_at:
          description: The date at which this task assignment was completed. This will be `null` if the task is not completed yet.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
        assigned_at:
          description: The date at which this task was assigned to the user.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
        reminded_at:
          description: The date at which the assigned user was reminded of this task assignment.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
        resolution_state:
          description: The current state of the assignment. The available states depend on the `action` value of the task object.
          type: string
          example: incomplete
          enum:
          - completed
          - incomplete
          - approved
          - rejected
        assigned_by:
          allOf:
          - $ref: '#/components/schemas/User--Mini'
          - description: The user who assigned this task.
      title: Task assignment
      x-box-resource-id: task_assignment
      x-box-tag: task_assignments
    TaskAssignments:
      description: A list of task assignments.
      type: object
      properties:
        total_count:
          description: The total number of items in this collection.
          type: integer
          format: int64
          example: 100
        entries:
          description: A list of task assignments.
          type: array
          items:
            $ref: '#/components/schemas/TaskAssignment'
      title: Task assignments
      x-box-resource-id: task_assignments
      x-box-tag: task_assignments
    FileVersion--Base:
      description: The bare basic representation of a file version, the minimal amount of fields returned when using the `fields` query parameter.
      type: object
      properties:
        id:
          description: The unique identifier that represent a file version.
          type: string
          example: '12345'
        type:
          description: The value will always be `file_version`.
          type: string
          example: file_version
          enum:
          - file_version
      required:
      - id
      - type
      title: File version (Base)
      x-box-resource-id: file_version--base
      x-box-variant: base
      x-box-variants:
      - base
      - mini
      - standard
      - full
    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
    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
    Task:
      description: A task allows for file-centric workflows within Box. Users can create tasks on files and assign them to other users for them to complete the tasks.
      type: object
      properties:
        id:
          description: The unique identifier for this task.
          type: string
          example: '11446498'
        type:
          description: The value will always be `task`.
          type: string
          example: task
          enum:
          - task
        item:
          allOf:
          - $ref: '#/components/schemas/File--Mini'
          - description: The file associated with the task.
        due_at:
          description: When the task is due.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
        action:
          description: The type of task the task assignee will be prompted to perform.
          type: string
          example: review
          enum:
          - review
          - complete
        message:
          description: A message that will be included with the task.
          type: string
          example: Legal review
        task_assignment_collection:
          allOf:
          - $ref: '#/components/schemas/TaskAssignments'
          - description: A collection of task assignment objects associated with the task.
        is_completed:
          description: Whether the task has been completed.
          type: boolean
          example: true
        created_by:
          allOf:
          - $ref: '#/components/schemas/User--Mini'
          - description: The user who created the task.
        created_at:
          description: When the task object was created.
          type: string
          format: date-time
          example: '2012-12-12T10:53:43-08:00'
        completion_rule:
          description: 'Defines which assignees need to complete this task before the task is considered completed.


            - `all_assignees` requires all assignees to review or approve the task in order for it to be considered completed.

            - `any_assignee` accepts any one assignee to review or approve the task in order for it to be considered completed.'
          type: string
          example: all_assignees
          enum:
          - all_assignees
          - any_assignee
      title: Task
      x-box-resource-id: task
      x-box-tag: tasks
    FileVersion--Mini:
      description: A mini representation of a file version, used when nested within another resource.
      type: object
      allOf:
      - $ref: '#/components/schemas/FileVersion--Base'
      - properties:
          sha1:
            description: The SHA1 hash of this version of the file.
            type: string
            example: 134b65991ed521fcfe4724b7d814ab8ded5185dc
      title: File version (Mini)
      x-box-resource-id: file_version--mini
      x-box-variant: mini
    File--Base:
      description: The bare basic representation of a file, the minimal amount of fields returned when using the `fields` query parameter.
      type:
      - object
      - 'null'
      properties:
        id:
          description: 'The unique identifier that represent 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`.'
          type: string
          example: '12345'
        etag:
          description: The HTTP `etag` of this file. This can be used within some API endpoints in the `If-Match` and `If-None-Match` headers to only perform changes on the file if (no) changes have happened.
          type:
          - string
          - 'null'
          example: '1'
        type:
          description: The value will always be `file`.
          type: string
          example: file
          enum:
          - file
      required:
      - id
      - type
      title: File (Base)
      x-box-resource-id: file--base
      x-box-tag: files
      x-box-variant: base
      x-box-variants:
      - base
      - mini
      - 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)