Skip to main content
To upload a new version of a file to Box via direct upload, make an API call to the API with the content of the file, the desired file name, and the folder ID.
curl -i -X POST "https://upload.box.com/api/2.0/files/12345/content" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: multipart/form-data" \
     -F attributes='{"name":"Contract.pdf", "parent":{"id":"11446498"}}' \
     -F file=@<FILE_NAME>
Preflight checkTo prevent wasting time and bandwidth uploading a file that is going to be rejected it is recommended to perform a before uploading the file.

Request Format

The request body of this API uses a content type of multipart/form-data. This is used to transmit two parts, namely the file attributes and the file’s actual content. The first part is called attributes and contains a JSON object with information about the file, including the name of the file and the id of the parent folder. The following is an example a test.txt being uploaded to the root folder of the user.
POST /api/2.0/files/123/content HTTP/1.1
Host: upload.box.com
Authorization: Bearer [ACCESS_TOKEN]
content-length: 343
content-type: multipart/form-data; boundary=------------------------9fd09388d840fef1

--------------------------9fd09388d840fef1
content-disposition: form-data; name="attributes"

{"name":"test.txt", "parent":{"id":"0"}}
--------------------------9fd09388d840fef1
content-disposition: form-data; name="file"; filename="test.txt"
content-type: text/plain

Test file text.

--------------------------9fd09388d840fef1--
The attributes JSON part of the multi-part body must come before the file part of the multipart form data. When out of order, the API will return a HTTP 400 status code with an error code of metadata_after_file_contents.

Options

To learn more about all the parameters available when uploading files, head over to the . These parameters include a content-md5 that can be set to ensure a file is not corrupted in transit, and the ability to explicitly specify the file creation time at a different time than the upload time. For file versions an additional can be passed along to prevent overwriting a file that has already been updated since the application last inspected the content.

Restrictions

Direct uploads are limited to a maximum file size of 50MB. For larger files, please use the . Upload limits are dictated by the type of account of the authenticated user. More information can be found in our community article on this topic.