Skip to main content

Bulk Download

Overview

The bulk download feature allows clients to package selected documents and/or folders into a single downloadable ZIP archive. The process is asynchronous — you initiate the job, poll for completion, then download the archive.

The workflow involves the following steps:

  1. (Optional) Fetch document and folder IDs — use the dataRoomDocumentIndex query to retrieve the IDs of the documents and folders you want to include.
  2. Initiate the bulk download — call the initiateDataRoomBulkDownload mutation with the selected IDs.
  3. Poll for status — use the dataRoomBulkDownload query with the returned bulkDownload.id until status is DONE.
  4. Download the archive — fetch the downloadUrl from the response and download the ZIP file.

Selection Rules

  • You must provide at least one item in documentIds or folderIds. Requests with both lists empty (or omitted) are rejected as invalid.
  • To download all documents the current user can access, include the root folder ID of the DataRoom in folderIds.

Initiate Bulk Download

Submits a request to package the selected documents and/or folders into a downloadable ZIP archive.

info

This operation requires the DataRoom-scoped token.

mutation InitiateDataRoomBulkDownload {
initiateDataRoomBulkDownload(
input: {
bulkDownloadName: "My Bulk Download"
dataRoomId: "RGF0YVJvb206Nzk4Mjc="
folderIds: ["RGF0YVJvb21Gb2xkZXI6MTQ0MzIxOA=="]
}
) {
bulkDownload {
id
bulkDownloadName
status
progress
createdAt
updatedAt
fileCount
totalSizeBytes
downloadUrl
}
errors {
message
errorCode
}
}
}

Input Fields

FieldTypeRequiredDescription
bulkDownloadNamestringYesA display name for the bulk download job.
dataRoomIdIDYesThe ID of the DataRoom to download from.
documentIds[ID]NoList of document IDs to include in the archive.
folderIds[ID]NoList of folder IDs to include (includes subfolders).

Poll Bulk Download Status

Retrieves the current status and details of a bulk download job. Poll this query until status is DONE, then use downloadUrl to fetch the archive.

info

This operation requires the DataRoom-scoped token.

query DataRoomBulkDownload {
dataRoomBulkDownload(bulkDownloadId: "RGF0YVJvb21CdWxrRG93bmxvYWQ6Nzk4Mjc6MTc2NTA=") {
id
bulkDownloadName
status
progress
createdAt
updatedAt
fileCount
totalSizeBytes
downloadUrl
}
}

Response Fields

FieldTypeDescription
idIDUnique identifier for the bulk download job.
bulkDownloadNamestringThe display name provided when the job was initiated.
statusenumCurrent job status: PENDING, PROCESSING, or DONE.
progressfloatCompletion percentage (0–100).
createdAtdatetimeWhen the job was created.
updatedAtdatetimeWhen the job was last updated.
fileCountintNumber of files included in the archive.
totalSizeByteslongTotal uncompressed size of the archive contents in bytes.
downloadUrlstringPopulated once status is DONE. Use this URL to download the ZIP.

Archive Contents

The generated ZIP includes a JSON mapping file at:

Required Configuration Files/DocumentIdToArchivePath.json

This file maps each documentId to its path and name inside the archive. The ZIP may also include error entries for any document IDs that could not be packaged (for example, due to permission issues).