Box · Capability

Box Platform API — Uploads (Chunked)

Box Platform API — Uploads (Chunked). 7 operations. Lead operation: Box Create upload session. Self-contained Naftiko capability covering one Box business surface.

Run with Naftiko BoxUploads (Chunked)

What You Can Do

POST
Postfilesuploadsessions — Box Create upload session
/v1/files/upload-sessions
GET
Getfilesuploadsessionsid — Box Get upload session
/v1/files/upload-sessions/{upload-session-id}
PUT
Putfilesuploadsessionsid — Box Upload part of file
/v1/files/upload-sessions/{upload-session-id}
DELETE
Deletefilesuploadsessionsid — Box Remove upload session
/v1/files/upload-sessions/{upload-session-id}
POST
Postfilesuploadsessionsidcommit — Box Commit upload session
/v1/files/upload-sessions/{upload-session-id}/commit
GET
Getfilesuploadsessionsidparts — Box List parts
/v1/files/upload-sessions/{upload-session-id}/parts
POST
Postfilesiduploadsessions — Box Create upload session for existing file
/v1/files/{file-id}/upload-sessions

MCP Tools

box-create-upload-session

Box Create upload session

box-get-upload-session

Box Get upload session

read-only idempotent
box-upload-part-file

Box Upload part of file

idempotent
box-remove-upload-session

Box Remove upload session

idempotent
box-commit-upload-session

Box Commit upload session

box-list-parts

Box List parts

read-only idempotent
box-create-upload-session-existing

Box Create upload session for existing file

Capability Spec

box-uploads-chunked.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Box Platform API — Uploads (Chunked)
  description: 'Box Platform API — Uploads (Chunked). 7 operations. Lead operation: Box Create upload session. Self-contained
    Naftiko capability covering one Box business surface.'
  tags:
  - Box
  - Uploads (Chunked)
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    BOX_API_KEY: BOX_API_KEY
capability:
  consumes:
  - type: http
    namespace: box-uploads-chunked
    baseUri: https://api.box.com/2.0
    description: Box Platform API — Uploads (Chunked) business capability. Self-contained, no shared references.
    resources:
    - name: files-upload_sessions
      path: /files/upload_sessions
      operations:
      - name: postfilesuploadsessions
        method: POST
        description: Box Create upload session
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files-upload_sessions-upload_session_id
      path: /files/upload_sessions/{upload_session_id}
      operations:
      - name: getfilesuploadsessionsid
        method: GET
        description: Box Get upload session
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: upload_session_id
          in: path
          type: string
          description: The ID of the upload session.
          required: true
      - name: putfilesuploadsessionsid
        method: PUT
        description: Box Upload part of file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: upload_session_id
          in: path
          type: string
          description: The ID of the upload session.
          required: true
        - name: digest
          in: header
          type: string
          description: The [RFC3230][1] message digest of the chunk uploaded.
          required: true
        - name: content-range
          in: header
          type: string
          description: The byte range of the chunk.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deletefilesuploadsessionsid
        method: DELETE
        description: Box Remove upload session
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: upload_session_id
          in: path
          type: string
          description: The ID of the upload session.
          required: true
    - name: files-upload_sessions-upload_session_id-commit
      path: /files/upload_sessions/{upload_session_id}/commit
      operations:
      - name: postfilesuploadsessionsidcommit
        method: POST
        description: Box Commit upload session
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: upload_session_id
          in: path
          type: string
          description: The ID of the upload session.
          required: true
        - name: digest
          in: header
          type: string
          description: The [RFC3230][1] message digest of the whole file.
          required: true
        - name: if-match
          in: header
          type: string
          description: Ensures this item hasn't recently changed before
        - name: if-none-match
          in: header
          type: string
          description: Ensures an item is only returned if it has changed.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: files-upload_sessions-upload_session_id-parts
      path: /files/upload_sessions/{upload_session_id}/parts
      operations:
      - name: getfilesuploadsessionsidparts
        method: GET
        description: Box List parts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: upload_session_id
          in: path
          type: string
          description: The ID of the upload session.
          required: true
        - name: offset
          in: query
          type: integer
          description: The offset of the item at which to begin the response.
        - name: limit
          in: query
          type: integer
          description: The maximum number of items to return per page.
    - name: files-file_id-upload_sessions
      path: /files/{file_id}/upload_sessions
      operations:
      - name: postfilesiduploadsessions
        method: POST
        description: Box Create upload session for existing file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: file_id
          in: path
          type: string
          description: The unique identifier that represents a file.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.BOX_API_KEY}}'
  exposes:
  - type: rest
    namespace: box-uploads-chunked-rest
    port: 8080
    description: REST adapter for Box Platform API — Uploads (Chunked). One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/files/upload-sessions
      name: files-upload-sessions
      description: REST surface for files-upload_sessions.
      operations:
      - method: POST
        name: postfilesuploadsessions
        description: Box Create upload session
        call: box-uploads-chunked.postfilesuploadsessions
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files/upload-sessions/{upload-session-id}
      name: files-upload-sessions-upload-session-id
      description: REST surface for files-upload_sessions-upload_session_id.
      operations:
      - method: GET
        name: getfilesuploadsessionsid
        description: Box Get upload session
        call: box-uploads-chunked.getfilesuploadsessionsid
        with:
          upload_session_id: rest.upload_session_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: putfilesuploadsessionsid
        description: Box Upload part of file
        call: box-uploads-chunked.putfilesuploadsessionsid
        with:
          upload_session_id: rest.upload_session_id
          digest: rest.digest
          content-range: rest.content-range
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletefilesuploadsessionsid
        description: Box Remove upload session
        call: box-uploads-chunked.deletefilesuploadsessionsid
        with:
          upload_session_id: rest.upload_session_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files/upload-sessions/{upload-session-id}/commit
      name: files-upload-sessions-upload-session-id-commit
      description: REST surface for files-upload_sessions-upload_session_id-commit.
      operations:
      - method: POST
        name: postfilesuploadsessionsidcommit
        description: Box Commit upload session
        call: box-uploads-chunked.postfilesuploadsessionsidcommit
        with:
          upload_session_id: rest.upload_session_id
          digest: rest.digest
          if-match: rest.if-match
          if-none-match: rest.if-none-match
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files/upload-sessions/{upload-session-id}/parts
      name: files-upload-sessions-upload-session-id-parts
      description: REST surface for files-upload_sessions-upload_session_id-parts.
      operations:
      - method: GET
        name: getfilesuploadsessionsidparts
        description: Box List parts
        call: box-uploads-chunked.getfilesuploadsessionsidparts
        with:
          upload_session_id: rest.upload_session_id
          offset: rest.offset
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/files/{file-id}/upload-sessions
      name: files-file-id-upload-sessions
      description: REST surface for files-file_id-upload_sessions.
      operations:
      - method: POST
        name: postfilesiduploadsessions
        description: Box Create upload session for existing file
        call: box-uploads-chunked.postfilesiduploadsessions
        with:
          file_id: rest.file_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: box-uploads-chunked-mcp
    port: 9090
    transport: http
    description: MCP adapter for Box Platform API — Uploads (Chunked). One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: box-create-upload-session
      description: Box Create upload session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: box-uploads-chunked.postfilesuploadsessions
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: box-get-upload-session
      description: Box Get upload session
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: box-uploads-chunked.getfilesuploadsessionsid
      with:
        upload_session_id: tools.upload_session_id
      outputParameters:
      - type: object
        mapping: $.
    - name: box-upload-part-file
      description: Box Upload part of file
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: box-uploads-chunked.putfilesuploadsessionsid
      with:
        upload_session_id: tools.upload_session_id
        digest: tools.digest
        content-range: tools.content-range
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: box-remove-upload-session
      description: Box Remove upload session
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: box-uploads-chunked.deletefilesuploadsessionsid
      with:
        upload_session_id: tools.upload_session_id
      outputParameters:
      - type: object
        mapping: $.
    - name: box-commit-upload-session
      description: Box Commit upload session
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: box-uploads-chunked.postfilesuploadsessionsidcommit
      with:
        upload_session_id: tools.upload_session_id
        digest: tools.digest
        if-match: tools.if-match
        if-none-match: tools.if-none-match
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: box-list-parts
      description: Box List parts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: box-uploads-chunked.getfilesuploadsessionsidparts
      with:
        upload_session_id: tools.upload_session_id
        offset: tools.offset
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: box-create-upload-session-existing
      description: Box Create upload session for existing file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: box-uploads-chunked.postfilesiduploadsessions
      with:
        file_id: tools.file_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.