Download zip archive


Returns the contents of a zip archive in binary format. This URL does not require any form of authentication and could be used in a user's browser to download the archive to a user's device.

By default, this URL is only valid for a few seconds from the creation of the request for this archive. Once a download has started it can not be stopped and resumed, instead a new request for a zip archive would need to be created.

The URL of this endpoint should not be considered as fixed. Instead, use the Create zip download API to request to create a zip archive, and then follow the download_url field in the response to this endpoint.



Path Parameters

stringin pathrequired

The unique identifier that represent this zip archive.



Returns the content of the items requested for this download, formatted as a stream of files and folders in a zip archive.

application/jsonClient error

Returns an error if the ID of this download request is not valid. This error can also be returned if this URL has been called before. To re-download this archive, please create a new request for a zip download.

application/jsonClient error

Returns an error if the number of concurrent zip downloads has been reached for either the user or the enterprise.

  • user_too_many_concurrent_downloads - the maximum of 5 parallel downloads of zip archives per user has been met.
  • enterprise_too_many_concurrent_downloads - the maximum of 10 parallel downloads of zip archives per enterprise has been met.
application/jsonClient error

An unexpected client error.

Download zip archive
You can now try out some of our APIs live, right here in the documentation.
Log in

Request Example

curl -L GET "" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
TypeScript Gen
await client.zipDownloads.getZipDownloadContent(zipDownload.downloadUrl!);
Python Gen
.NET Gen (Beta)
await client.ZipDownloads.GetZipDownloadContentAsync(downloadUrl: NullableUtils.Unwrap(zipDownload.DownloadUrl));
name = 'test'
file = mock_client.file('466239504569')
folder = mock_client.folder('466239504580')
items = [file, folder]
output_file = open('', 'wb')
status = client.download_zip(name, items, output_file)
print(f'The status of the zip download is {status["state"]}')
BoxZipRequest request = new BoxZipRequest();
request.Name = "test";
request.Items = new List<BoxZipItemRequest>();

var file = new BoxZipRequestItem()
    Id = "466239504569",
    Type = BoxZipItemType.file
var folder = new BoxZipRequestItem()
    Id = "466239504580",
    Type = BoxZipItemType.folder
Stream fs = new FileStream(@"c:\temp\");

BoxZipDownloadStatus status = await _filesManager.DownloadZip(request, fs);
ArrayList<BoxZipItem> items = new ArrayList<BoxZipItem>();
BoxZipItem file = new BoxZipItem("file", "12345");
BoxZipItem folder = new BoxZipItem("folder", "156472");
BoxZip zip = new BoxZip(api);
FileOutputStream stream = new FileOutputStream();
BoxZipDownloadStatus zipDownloadStatus ="Another Awesome Zip File", items, stream);
if (zipDownloadStatus.getState() == BoxZipDownloadStatus.State.SUCCEEDED) {
    System.out.println("Zip downloaded successfully");
var name = 'test',
items = [
		type: 'file',
		id: '466239504569'
		type: 'folder',
		id: '466239504580'
stream = new Readable();
client.files.downloadZip(name, items, stream)
	.then(status => {
		/* status -> {
				"total_file_count": 20,
				"downloaded_file_count": 10,
				"skipped_file_count": 10,
				"skipped_folder_count": 10,
				"state": "succeeded"