Content Management API > Upload 
 Put assets into a collection in bulk
Body parameters
  type   string  Required 
 Must be exactly "upload_bulk_set_upload_collection_operation".
  relationships.uploads.data   Required 
 Assets to assign to the collection
Type:
Array<ResourceLinkage<"upload">> 
   relationships.upload_collection.data   Required 
 Asset collection to put uploads into
Type:
null, ResourceLinkage<"upload_collection"> 
 Examples
The response contains the ID of the asynchronous job that started:
POST https://site-api.datocms.com/uploads/bulk/set-upload-collection HTTP/1.1Authorization: Bearer YOUR-API-TOKENAccept: application/jsonX-Api-Version: 3Content-Type: application/vnd.api+json
{  "data": {    "type": "upload_bulk_set_upload_collection_operation",    "relationships": {      "uploads": {        "data": [          {            "type": "upload",            "id": "q0VNpiNQSkG6z0lif_O1zg"          }        ]      },      "upload_collection": {        "data": null      }    }  }}curl -g 'https://site-api.datocms.com/uploads/bulk/set-upload-collection' \  -X POST \  -H "Authorization: Bearer YOUR-API-TOKEN" \  -H "Accept: application/json" \  -H "X-Api-Version: 3" \  -H "Content-Type: application/vnd.api+json" \  --data-binary '{"data":{"type":"upload_bulk_set_upload_collection_operation","relationships":{"uploads":{"data":[{"type":"upload","id":"q0VNpiNQSkG6z0lif_O1zg"}]},"upload_collection":{"data":null}}}}'await fetch("https://site-api.datocms.com/uploads/bulk/set-upload-collection", {  method: "POST",  headers: {    Authorization: "Bearer YOUR-API-TOKEN",    Accept: "application/json",    "X-Api-Version": "3",    "Content-Type": "application/vnd.api+json",  },  body: JSON.stringify({    data: {      type: "upload_bulk_set_upload_collection_operation",      relationships: {        uploads: { data: [{ type: "upload", id: "q0VNpiNQSkG6z0lif_O1zg" }] },        upload_collection: { data: null },      },    },  }),});HTTP/1.1 202 AcceptedContent-Type: application/jsonCache-Control: cache-control: max-age=0, private, must-revalidateX-RateLimit-Limit: 30X-RateLimit-Remaining: 28
{  "data": {    "type": "job",    "id": "4235"  }}To get the asynchronous job result, poll the job result endpoint. While the task is in progress, the endpoint returns a 404 status code. When the job completes, the status changes to 200 OK:
GET https://site-api.datocms.com/job-results/:job_result_id HTTP/1.1Authorization: Bearer YOUR-API-TOKENAccept: application/jsonX-Api-Version: 3curl -g 'https://site-api.datocms.com/job-results/:job_result_id' \   \  -H "Authorization: Bearer YOUR-API-TOKEN" \  -H "Accept: application/json" \  -H "X-Api-Version: 3"await fetch("https://site-api.datocms.com/job-results/:job_result_id", {  headers: {    Authorization: "Bearer YOUR-API-TOKEN",    Accept: "application/json",    "X-Api-Version": "3",  },});HTTP/1.1 200 OKContent-Type: application/jsonCache-Control: cache-control: max-age=0, private, must-revalidateX-RateLimit-Limit: 30X-RateLimit-Remaining: 28
{  "data": {    "type": "job_result",    "id": "34",    "attributes": {      "status": 200,      "payload": {        "data": [],        "meta": {          "successful": 20,          "failed": 20        }      }    }  }}