Commit Upload Session

Commit Upload Session

The final step in a chunked upload is to commit the session.

To commit a file upload session, call the POST /files/upload_sessions/:id/commit with a list of uploaded parts to commit.

curl -i -X POST "" \
     -H "Authorization: Bearer <ACCESS_TOKEN>" \
     -H "Digest: sha=fpRyg5eVQletdZqEKaFlqwBXJzM=" \
     -H "Content-Type: application/json" \
     -d '{
       "parts": [
           "part_id": "BFDF5379",
           "offset": 0,
           "size": 8388608,
	     "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc"
           "part_id": "E8A3ED8E",
           "offset": 8388608,
           "size": 1611392,
	     "sha1": "234b65934ed521fcfe3424b7d814ab8ded5185dc"
       "attributes": {
         "content_modified_at": "2017-04-08T00:58:08Z"
//Creates the file hash
byte[] digestBytes = digest.digest();
//Base64 encoding of the hash
String digestStr = Base64.encode(digestBytes);

//Commit the upload session. If there is a failure, abort the commit.
BoxFile.Info fileInfo = session.commit(digestStr, parts, null, null, null);
import hashlib

sha1 = hashlib.sha1()
# sha1 should have been updated with all the bytes of the file

file_atributes = {
    'description': 'A file uploaded via Chunked Upload',

upload_session = client.upload_session('11493C07ED3EABB6E59874D3A1EF3581')
uploaded_file = upload_session.commit(sha1.digest(), file_atributes=file_atributes)
print('Successfully uploaded file {0} with description {1}'.format(, uploaded_file.description))
// Finalize upload session 93D9A837B45F
	{description: 'A file I uploaded in chunks!'},

Additionally, any file attributes can be passed along with the parts to further add information to the file. See the POST /files/content API for more details.


When successful, the API returns a HTTP 201 Created status code with a File object.

In some cases, creating the parts might not be ready yet and the API will return a 202 Accepted status code instead. In this case the application should check the retry-after header and retry committing after the number of seconds specified.