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 Data Operations

Prev Next

Note: All BDO endpoints are only accessible to Creators and Express Administrators.

The Bulk Data Operations (BDO) API lets Creators move large volumes of submission data into and out of the Unqork platform. Four operations are available:

  • Export — download submission data to a file or cloud storage
  • Import — upload submission data from a file or cloud storage
  • Update — update existing Data Model records in bulk
  • Delete — soft-delete or permanently delete submission records

All BDO jobs are limited to 100 MB. Use Bulk Operations: Utilities to generate upload and download links, and to check job status.

Test any endpoint: Access the Unqork Services page at https://{environment}.unqork.io/fbu/uapi/docs/documentation/#/Bulk%20Operations/. Replace {environment} with the environment name.


Export

The BDO Export endpoint downloads submission data out of Unqork to a file or cloud storage. Use the HTTP POST method:

https://{environment}.unqork.io/fbu/uapi/bulk-operations/export

Request Body

{
  "cloudStorageBucketName": "string",
  "cloudStorageServiceName": "string",
  "cloudStorageTargetDirectory": "string",
  "resourceId": "string",
  "dateFieldEndToFilterOn": "string",
  "dateFieldStartToFilterOn": "string",
  "dateFieldToFilterOn": "created",
  "exportFullRecord": true,
  "fileFormat": "CSV",
  "includeAttachments": true,
  "name": "string",
  "numberOfFilesToGenerate": 1,
  "targetRecordType": "ALL"
}

Parameters

Key Possible Values Description Required
resourceId string The Data Model ID or Module ID containing the records to export. Optional
cloudStorageBucketName string (no spaces) The cloud storage bucket to export data to. When using cloud storage, cloudStorageServiceName, cloudStorageBucketName, and cloudStorageTargetDirectory must all be included. Optional
cloudStorageServiceName string (no spaces) The Service Name configured in Services Administration. Supports Amazon S3 and Azure Blob Storage. Optional
cloudStorageTargetDirectory string (no spaces) The within the bucket to export data to, for example userData/moduleName/submissions. Optional
dateFieldEndToFilterOn string (YYYY-MM-DDTHH:mm:ss:sssZ) Exports data recorded up to this date (ISO 8601 UTC). Use with dateFieldStartToFilterOn to export a time range. Optional
dateFieldStartToFilterOn string (YYYY-MM-DDTHH:mm:ss:sssZ) Exports data recorded after this date (ISO 8601 UTC). Optional
dateFieldToFilterOn created | modified Filters by record created or modified date. Must include at least one of the date filter fields. Optional
exportFullRecord Boolean true includes all record metadata (_id, owner, and so on). false includes only the data object. Unqork recommends false. Defaults to true. Yes
fileFormat CSV | ZIPWITHCSV | JSON | ZIPWITHJSON | ZIPWITHMULTIPLEJSON format. ZIPWITHMULTIPLEJSON creates one JSON file per record. Value must be uppercase. Yes
includeAttachments Boolean When true, includes file attachments in the export. Defaults to true. Optional
name string Name of the export operation. Displays in the Job Tracker File Name column. Yes
numberOfFilesToGenerate number Preferred number of output files. If the file exceeds 100 MB, additional files are created automatically. Unqork recommends 1. Yes
targetRecordType ALL | ACTIVE | ARCHIVED Record type to export. Value must be uppercase. Yes
dataModelOrModuleId string Deprecated — use resourceId instead. Optional

Example Response

{
  "id": "67129acfc2f4b88db7a26b59",
  "created": 1729272527398,
  "data": {
    "type": "EXPORT",
    "name": "Example Export",
    "steps": [
      {
        "stepType": "EXPORT",
        "status": "created",
        "files": [
          {
            "destination": {
              "name": "0",
              "location": "unqorkResource/export/9adf217f-5ccb-449c-9920-f1e0000597d7/0.csv",
              "format": "CSV"
            }
          }
        ]
      }
    ]
  }
}

The location value contains the file's download address. Use BDO Download-Link to retrieve the file.

Large exports: Use /fbu/uapi/bulkOperations/job/{jobId} to check job status. See Get Job Details.


Import

The BDO Import endpoint uploads submission data into Unqork from a file or cloud storage. Use the HTTP POST method:

https://{environment}.unqork.io/fbu/uapi/bulk-operations/import

Before importing, use BDO Upload-Link to upload the file and get an Unqork file address.

Request Body

{
  "dataModelOrModuleId": "string",
  "fallbackRecordOwner": "string",
  "fileFormat": "CSV",
  "fileLocation": "string",
  "name": "string",
  "storeInData": "false"
}

Parameters

Key Possible Values Description Required
resourceId string The Data Model ID or Module ID to import data into. Optional
fallbackRecordOwner string The userId of the Unqork Service User or Express Access Credential with authorized workspace access. Yes
fileFormat CSV | ZIPWITHCSV | JSON | ZIPWITHJSON | ZIPWITHMULTIPLEJSON Format of the source file. Value must be uppercase. Yes
fileLocation string Unqork Cloud file address returned by the Upload-Link endpoint, for example unqorkResource/export/f22047aa-13d3-4070-8def-a8a1a401afff/0.json.gz. Yes
name string Name of the import operation. Displays in the Job Tracker File Name column. Yes
storeInData Boolean true stores incoming records under the data property. false treats them as full submission records including Unqork metadata. Unqork recommends true. Defaults to false. Yes
dataModelOrModuleId string Deprecated — use resourceId instead. Optional

Example Response

{
  "id": "67169684ec1bf4776fa760a5",
  "created": 1729533572882,
  "data": {
    "type": "UPDATE",
    "name": "Import API Test 1",
    "steps": [
      {
        "stepType": "UNZIP",
        "status": "created"
      },
      {
        "stepType": "UPDATE",
        "status": "created"
      }
    ]
  }
}

Check job status using the Get Job Details endpoint with the response id value.


Update

The BDO Update endpoint updates existing Data Model records in bulk. Only available for Data Model records. Use the HTTP method:

https://{environment}.unqork.io/fbu/uapi/bulk-operations/update

Request Body

{
  "createdDateUpdateValue": "string",
  "dataModelOrModuleId": "string",
  "fallbackRecordOwner": "string",
  "fileFormat": "CSV",
  "fileLocation": "string",
  "name": "string",
  "storeInData": "true",
  "uniqueKey": "string",
  "upsert": "false"
}

Parameters

Key Possible Values Description Required
resourceId string The Data Model ID or Module ID containing the records to update. Optional
createdDateUpdateValue string (ISO 8601 UTC) Updates the submission creation date to this value. Optional
fallbackRecordOwner string The userId of the Unqork Service User or Express Access Credential with authorized workspace access. Yes
fileFormat CSV | ZIPWITHCSV | JSON | ZIPWITHJSON | ZIPWITHMULTIPLEJSON Format of the source file. Value must be uppercase. Yes
fileLocation string Unqork Cloud file address returned by the Upload-Link endpoint. Yes
name string Name of the update operation. Displays in the Job Tracker File Name column. Yes
storeInData Boolean true stores records under the data property. false treats them as full submission records. Unqork recommends true. Defaults to false. Yes
uniqueKey string A unique key for the operation. Usually _id. Optional
upsert Boolean true updates existing records or inserts new ones if absent. false updates existing records only. Defaults to false. Optional
dataModelOrModuleId string Deprecated — use resourceId instead. Optional

Check job status using the Get Job Details endpoint with the response id value.


Delete

The BDO Delete endpoint soft-deletes or permanently deletes submission records. BDO Delete is disabled by design. Contact an Unqork representative to enable it.

Use the HTTP POST method:

https://{environment}.unqork.io/fbu/uapi/bulk-operations/delete

BDO Delete removes a maximum of 500,000 records per operation. Larger collections require multiple runs.

Soft Delete and Hard Delete

Delete operates in two stages:

  • Soft delete (first run): Archives records, removing them from Record Collections but retaining them in the database. Records can be recovered.
  • Hard delete (second run with destroy=true): Permanently and irreversibly deletes all archived records. Use for PII or sensitive data that must not be retained.

Unqork recommends exporting a copy of records before deleting. Contact an Unqork representative to recover soft-deleted records.

Query String Parameters

Parameter Type Description Required
destroy Boolean After soft-deleting records, add ?destroy=true and run the operation again to permanently delete all archived records. Has no effect if records have not been soft-deleted first. No

Body Parameters

{
  "dataModelOrModuleId": "string",
  "name": "string",
  "dateFieldToFilterOn": "created",
  "dateFieldStartToFilterOn": "string",
  "dateFieldEndToFilterOn": "string"
}
Key Possible Values Description Required
name string Name of the delete operation. Displays in the Job Tracker File Name column. Yes
resourceId string The Data Model ID or Module ID containing the records to delete. Optional
dataSource MODULE | EXPORT The source of the query. MODULE targets records associated with a module, workflow, or data model. EXPORT targets records from a previous Export operation. Optional
exportOperationId string The id of the Export operation to use as the data source. Required when dataSource is EXPORT. Optional
dateFieldToFilterOn created | modified | deleted Filters records by creation, modification, or deletion date. The deleted filter requires destroy=true. Must include at least one date range field. Optional
dateFieldStartToFilterOn string (ISO 8601 UTC) Deletes records created or modified after this date. This field is exclusive (>). Optional
dateFieldEndToFilterOn string (ISO 8601 UTC) Deletes records up to this date. This field is (<=). Optional
targetRecordType ALL | ACTIVE | ARCHIVED Record type to delete. Value must be uppercase. Optional
dataModelOrModuleId string Deprecated — use resourceId instead. Optional

Example Response

{
  "id": "6728e46499610f86e6fac431",
  "created": 1730733156824,
  "data": {
    "type": "DELETE",
    "name": "Delete Example",
    "steps": [
      {
        "stepType": "DELETE",
        "status": "created",
        "options": {
          "delete": {
            "mode": "DELETE",
            "dataSource": "MODULE",
            "targetRecords": "ARCHIVED"
          }
        }
      }
    ]
  }
}

Check job status using the Get Job Details endpoint with the response id value.


Changelog

Date Change
2026-08-17 Consolidated from separate v1 BDO Export, Import, Update, and Delete articles (EN-8036).