--- title: "Bulk Operations: Utilities" slug: "bulk-operations-utilities" tags: ["data-integration"] status: "update" updated: 2026-10-13T18:36:05Z published: 2026-10-13T18:36:05Z canonical: "docs.unqork.io/bulk-operations-utilities" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.unqork.io/llms.txt > Use this file to discover all available pages before exploring further. # Bulk Operations: Utilities > [!NOTE] > All BDO endpoints are only accessible to Creators and Express Administrators. Three utility endpoints support the main [Bulk Data Operations](/unqorkai/docs/bulk-data-operations) workflow: - **[Upload-Link](/unqorkai/docs/bulk-operations-utilities#upload-link)**: generate a pre-signed URL to upload a file to the Unqork before importing - **[Download-Link](/unqorkai/docs/bulk-operations-utilities#download-link)**: generate a pre-signed URL to download a file after exporting - **[Get Job Details](/unqorkai/docs/bulk-operations-utilities#get-job-details)**: check the status and details of any in-progress or completed BDO job ## Upload-Link The Upload-Link endpoint generates a URL for uploading source files to the Unqork Cloud. Use it before running [BDO Import](/unqorkai/docs/bulk-data-operations#import) to get the `fileLocation` value the import endpoint requires. Use the HTTP **POST** method (no request body required): `https://{environment}.unqork.io/fbu/uapi/bulk-operations/upload-link` ### Example Response ```json {  "uploadLink": "/files/67362e899daeec21a884b60b" } ``` ### Uploading a File Using Postman > Files larger than 100 MB are not supported. After generating the `uploadLink` value: 1. Create a **POST** request to `https://{environment}/api{uploadLink}` (for example, `https://training.unqork.io/api/files/6734ce93abs9a01036b3f07c`). 2. In **Headers**, set **Content-Type** to `multipart/form-data`. 3. In the **Body** tab, set the data type to **form-data**. 4. In the **Key** column, enter `file` and set the type to **File**. 5. In the **Value** column, select the submission data file from the local machine. 6. Click **Send**. The response body returns the `fileKey` value used in the BDO Import `fileLocation` field: ```json {  "fileKey": "unqorkResource/36bac174-1a20-4072-b976-eeeaea879343.csv" } ``` ## Download-Link The Download-Link endpoint generates a URL for downloading exported files from the Unqork Cloud. Use it after running [BDO Export](/unqorkai/docs/bulk-data-operations#export) to retrieve the output file. Use the HTTP **POST** method: `https://{environment}.unqork.io/fbu/uapi/bulk-operations/download-link` ### Request Body ```json {  "fileLocation": "string" } ``` | Key | Possible Values | Description | Required | | --- | --- | --- | --- | | `fileLocation` | string (no spaces) | The Unqork Cloud `location` value from the BDO Export response or Get Job Details response (for example, `unqorkResource/export/78bdc-df4a-41a61/0.csv`). | Optional | ### Example Response ```json {  "downloadLink": "/files/6734ce93abs9a01036b3f07c" } ``` ### Downloading the File Use the `downloadLink` value in a request: `https://{environment}/api{downloadLink}` For example: `https://training.unqork.io/api/files/6734ce93abs9a01036b3f07c` **In Postman**: In the Body Response window, select the ![EllipsisVertical](https://cdn.us.document360.io/15548f06-2fba-434c-b0c1-5df88317dbd7/Images/Documentation/api_upload_20261013_183604_5e4483b84bbe4e69ae777597872367e9.svg?sv=2026-02-06&spr=https&st=2026-11-07T16%3A52%3A09Z&se=2026-11-07T17%3A52%3A09Z&sr=c&sp=r&sig=SaANKlgBoBaMA05AxoF%2FpmL1724BPlqA%2BFS1mJqITmc%3D) (**ellipsis**) next to **Save Response**, then select **Save Response to file**. Enter a name and local , then click **Save**. ## Get Job Details The Get Job Details endpoint returns the status and details of any BDO job: Import, Export, Update, or Delete. Use the HTTP **GET** method: `https://{environment}.unqork.io/fbu/uapi/bulkOperations/jobs/{jobId}` > [!NOTE] > The Get Job Details endpoint uses the `bulkOperations` path (not `bulk-operations`). All other BDO endpoints use the `bulk-operations` path. Replace `{jobId}` with the `id` value from the operation's initial response. ### Key Response Properties | Property | Description | | --- | --- | | `status` | Overall operation status at the bottom of the `data` object. Also reflected in the Job Tracker **Job Status** column. Values: `inProgress`, `completed`, `canceled`, `partiallyCompleted` (Import/Update only), `failed`. | | `docs.total` | Total records processed by the operation. Located in the `details` object. | | `docs.processed` | Records successfully processed. Located in the `details` object. | | `location` | File key for the download URL (Export only). Located in the `files` array. Pass to [Download-Link](/unqorkai/docs/bulk-operations-utilities#download-link) to retrieve the file. | ### Example: Export Job ```json {  "id": "67114d26340b0b7c0510c680",  "data": {    "type": "EXPORT",    "name": "Example Export",    "steps": [      {        "stepType": "EXPORT",        "status": "completed",        "files": [          {            "destination": {              "name": "0",              "location": "unqorkResource/export/78b9abdc-df4a-42e0-8b02-1ce0377a1a61/0.csv",              "format": "CSV"            }          }        ],        "details": {          "docs": { "total": 4, "processed": 4 }        }      }    ],    "status": "completed"  } } ``` ### Example: Import Job ```json {  "id": "6711511ab056c32e103b11e5",  "data": {    "type": "UPDATE",    "name": "Import Example 1",    "steps": [      {        "stepType": "UPDATE",        "status": "completed",        "details": {          "docs": { "total": 4, "processed": 4 }        }      }    ],    "status": "completed"  } } ``` ### Example: Delete Job ```json {  "id": "6728e46499610f86e6fac431",  "data": {    "type": "DELETE",    "name": "Delete Example",    "steps": [      {        "stepType": "DELETE",        "status": "completed",        "details": {          "docs": { "total": 32, "processed": 32 }        }      }    ],    "status": "completed"  } } ``` ### Example: Update Job ```json {  "id": "6728e46499610f86e6fac432",  "data": {    "type": "UPDATE",    "name": "Bulk Update Example",    "steps": [      {        "stepType": "UPDATE",        "status": "completed",        "details": {          "docs": { "total": 18, "processed": 18 }        }      }    ],    "status": "completed"  } } ``` --- **Changelog** | Date | Change | | --- | --- | | 2026-08-17 | Consolidated from separate v1 BDO Upload-Link, Download-Link, and Get Job Details articles. | An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. Also known as Unqork Users, or Designer Users; is anyone who is inside the Unqork platform. The Unqork front-end application framework that delivers Creator-built applications to end-users. Express is the layer end-users interact with—the published forms, screens, and navigation built in the Module Builder. Express is distinct from Express View, which is a Creator-facing preview tool in the IDE. A URL (uniform resource locator) is a unique identifier used to locate a resource on the internet. Also known as a web address. An API endpoint is the location where an API receives requests for a specific resource on its server. It's the point of contact between an API client and an API server, and is usually a uniform resource locator (URL) that provides the location of the resource. HTTP (Hypertext Transfer Protocol) is an application-layer protocol used to transmit hypermedia documents like HTML. The HTTP POST method is used to send data to a server to create or update a resource, typically including the data in the body of the request. Data types are a classification of data that determines how it is stored and interpreted. A string is an object that represents a sequence of characters. Strings typically hold data represented in text form. An object is a type of data structure that represents a single, self-contained entity that acts as a container for the characteristics of that entity. A key-value pair is a fundamental data structure where a unique "key" is associated with a specific "value," used for organizing and retrieving data efficiently, like in dictionaries or databases. An array is a type of object that stores one or more data types. Data types supported in arrays include numbers, strings, and objects.