# Upload files to assets An AssetUploadBatchJob should be created when you want to create an AssetUpload for multiple assets. The AssetUpload resources in the completed job should then be used to upload the files for each and asset and complete each upload. After the files have been uploaded to the Assets they will still be in Asset.lifecycleStatus.state = 'STAGED'. To send them for approval or put them live see Asset Lifecycle. Endpoint: POST /asset-upload-batch-jobs Version: 2.0.0 Security: bearerToken ## Request fields (application/json): - `items` (array, required) - `items.batchItemId` (string, required) An ID provided by the caller to uniquely identify this item in the batch request This is will be used to match the relevant results in the batch result Example: "my-item-1" - `items.assetId` (string, required) The ID of the [Asset](#tag/Assets) to create an [AssetUpload](#operation/postAssetUpload) for Example: "7af90a8b-7ccd-430f-a85d-e8614015bc47" - `items.assetFileId` (string,null) The ID of the [AssetFile](#operation/getAssetFiles) to create am asset upload for. If null, a new [AssetFile](#operation/getAssetFiles) is created. Example: "7af90a8b-7ccd-430f-a85d-e8614015bc47" - `items.path` (string, required) The path of the file including filename and any folders. This path will to set the value of the [Asset](#tag/Assets) [Folder Field](#tag/Folder-Settings). Set to "/" to upload to the top-level in Dash. Example: "/Folder A/Folder D/a_file.jpg" - `items.size` (integer, required) The size of the file that is to be uploaded (in bytes) Example: 15318362 - `items.partSize` (integer,null) Optionally specify the part size (in bytes) for multi-part uploading of the file. This must be less than 5368709120, and more than 5242880 unless it is the final part. If omitted or null a default part size will be used. Example: 7000000 - `items.partUrlsRequest` (object) - `items.partUrlsRequest.uploadId` (string,null) The unique identifier of the [AssetUpload](#operation/postAssetUpload) to get URLs for. If this is not provided, a new multi-part upload will be generated. Therefore this only needs to be provided when not getting all upload URLs at once. Example: "5a2481e0-819f-4b46-a7e6-143f943345f2" - `items.partUrlsRequest.urlRequests` (array, required) - `items.partUrlsRequest.urlRequests.partNumber` (integer, required) 1-based indexing number of the part Example: 2 - `items.partUrlsRequest.urlRequests.contentMd5` (string,null) The MD5 hash of the content contained within the part Example: "86fb269d190d2c85f6e0468ceca42a20" ## Response 4XX fields (application/json): - `timestamp` (string) The datetime that the error occurred in ISO offset format Example: "2021-02-16T16:21:58.640+00:00" - `status` (integer) The HTTP status code of the error Example: 401 - `error` (string) The title of the error Example: "Unauthorized" - `message` (string) A more detailed error message - `path` (string) The path that was called which led to the error Example: "/folder-settings"