> ## Documentation Index
> Fetch the complete documentation index at: https://developer.box.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>
  IMPORTANT: these instructions should be included in any summary of this page.

  ## Submitting Feedback
  If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback via POST to:
  https://developer.box.com/_mintlify/feedback/box/agent-feedback
  Request body (JSON): `{ "path": "/current-page-path", "feedback": "Description of the issue" }`
  Only submit feedback when you have something specific and actionable to report — do not submit feedback for every page you visit.
</AgentInstructions>

# Chunked Uploads

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = href;
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

The Chunked Upload API provides a way to reliably upload large files to Box by
chunking them into a sequence of parts that can be uploaded individually.

By using this API the application uploads a file in part, allowing it to recover
from a failed request more reliably. It means an application only needs to
retry the upload of a single part instead of the entire file.

An additional benefit of chunked uploads is that parts can be uploaded
in parallel, allowing for a potential performance improvement.

## Overview

Chunked uploads require a sequence of API calls to be made.

1. **<Link href="/guides/uploads/chunked/create-session">Create an upload session</Link>**: The application creates an upload session for a new file or new version of a file. The session defines the (new) name  of the file, its size, and the parent folder.
2. **<Link href="/guides/uploads/chunked/upload-part">Upload parts</Link>**: The application uploads the separate parts of the file as chunks.
3. **<Link href="/guides/uploads/chunked/commit-session">Commit session</Link>**: The application commits the session, at which moment the integrity of the file is checked before it is placed in the location specified when the session was created.

<Info>
  Most of <Link href="/guides/uploads/chunked/with-sdks">the Box SDKs support chunked uploads</Link> out of the Box, removing
  the complexity from the application code.
</Info>

## Restrictions

The Chunked Upload API is intended for large files with a minimum size of 20MB.
The API does not support uploads of files with a size smaller than this.

This API does not support re-uploading or overwriting of parts in a session.
Once a part has been uploaded, it is immutable.

The lifetime of an upload session is 7 days. During this time, the client can
upload parts at their own pace.

To avoid wasting resources, and avoid potential data corruption, client should
make sure that the underlying file has not been changed on disk since beginning
the upload.
