The Bulk Upload Operations folder contains a comprehensive workflow for programmatically managing custom applications and their assets in Loome Portal. This workflow enables you to define data structures, configure entity types, and bulk upload assets through a structured, sequential process.
Use this workflow when you need to:
This folder implements a sequential 5-step workflow with an optional cancellation endpoint. The requests are designed to be executed in order, as each step builds upon the previous one.
Before using this workflow, ensure you have:
true or false)Set up the following variables in your Postman environment:
PortalUrl - Your Loome Portal base URLCustomAppId - Your custom application identifierExecutionId - Populated automatically during the staging processkeepOrphans - Boolean flag for commit behavior (true or false)Purpose: Define or update the metadata attributes that will be associated with your assets. This step creates the schema for your custom application by defining attributes such as compliance levels, categories, or any custom metadata fields. Attributes can be of various types (List, Boolean, Number, Date, Text, etc.) and can be marked as required.
When to use: Execute this first to establish the attribute schema before defining entity types.
Purpose: Configure the types of entities (assets) that your custom application will manage. Entity types define the structure, appearance, and behavior of your assets in Loome Portal. This includes setting the category, subcategory, icon, available actions, and embedding parameters. The source field is automatically inferred from the custom app’s name. This process is also used to “link” entity types to attributes.
When to use: Execute after ensuring attributes to define what types of assets your application will manage.
Purpose: Upload and prepare your assets for commit without immediately affecting the live Loome Portal data. The staging process allows you to upload multiple assets with their metadata, attributes, actions, and tags. Assets are identified by a unique sourceItemId. This step creates an execution context and returns an ExecutionId that must be used in subsequent steps.
Key behavior: - Assets are held in a staging area and not immediately visible in the Loome Portal - An ExecutionId is generated and should be captured for the next steps - The staging operation is asynchronous and may take time for large datasets
When to use: After defining your schema (attributes and entity types), use this to upload your asset data.
Purpose: Finalize the staged assets and make them live in Loome Portal.
This step processes all staged assets and applies them to the Loome Portal. The keepOrphans parameter controls how assets not present in the staged data are handled:
- keepOrphans=true: Retains existing assets not in the staged data
- keepOrphans=false: Removes existing assets not in the staged data (use with caution)
Key behavior: - Returns a 202 Accepted status with “Commit operation queued” message - The operation is asynchronous and queued for processing - A Location header is provided in the response for status polling
When to use: After successfully staging your assets and verifying the data is correct.
Purpose: Monitor the progress and completion status of your staging or commit operation. Use this endpoint to poll the status of your execution. The response includes the current status (running, completed, failed) and any error messages if the operation failed or was cancelled.
Key behavior: - Poll this endpoint periodically to check operation progress - Error messages are only populated when status is ‘Failure’ or ‘Cancelled’ - Useful for monitoring long-running operations
When to use: After committing staged assets to monitor the operation until completion.
Purpose: Abort an in-progress staging or commit operation. If you need to stop an operation before it completes, use this endpoint to cancel the execution identified by the ExecutionId.
Key behavior: - Returns 204 No Content on successful cancellation - Only works on operations that are still in progress - Cannot be undone once executed - Loome will automatically cancel any staging operation that has passed the 24 hour mark, and you will need to start over.
When to use: Only when you need to abort an operation due to errors or incorrect data and you wish to start over.
true for incremental updates where you want to preserve existing assetsfalse only when you want a complete replacement of all assets (destructive operation)keepOrphans=true first to avoid accidental data losskeepOrphans=truekeepOrphans=false to mirror an external systemThe first step is to ensure your attributes.
You can add or update attributes using this endpoint. (Learn how to view existing attributes via the API here.)
Please note that the request must be authenticated and authorized to access this endpoint. You can use this endpoint when you need to modify existing attributes rather than creating new ones.
To add an attribute, you will need to provide the following request parameters in the request body in JSON format:
true if the attribute is required. Validation on the staging/commit process will trigger if this is true and nothing is set on the asset.false for this attribute to be optional for assets.For example:
[
{
"name": "Compliance Level",
"$type": "List",
"isRequired": true,
"options": [
{
"name": "Public"
}
]
}
]

Next, ensure entity types. (You can learn how to view existing entity types via the API here.)
This endpoint allows users to update the entity types associated with a specific custom application identified by CustomAppId. The request expects a JSON payload that defines the properties of the entity type being updated. The Source field of an entity type is automatically inferred from the Custom App’s name.
You can define or update entity types for a custom app by specifying the required fields for request body parameters. The request body should be a JSON array containing objects with the following structure:
Please note that the embeddingUrl must be a valid URL pointing to the embedded content.
The actions array can contain multiple actions, each with its own name and description.

Stage assets that will be linked to your custom app.
You can stage multiple assets in one operation by providing the following parameters. The request body must be a JSON array containing objects with the following parameters:
List, those values should match the options on the attribute.String, Number, Boolean), please still use the values property key and the raw value of the attribute.The staging operation will return an execution ID to track the asset(s) when the request has completed successfully. The server will respond with a status code of 200 OK indicating that the request has been successfully processed. The response will be in JSON format and will contain the following fields:
Example:
[
{
"name": "2025 Sample Report",
"group": "IT Governance",
"entityTypeId": <Entity Type Id From EnsureEntityType call>,
"sourceItemId": "2025-sample-id",
"actions": [
{
"name": "View Report",
"value": "https://your-app.com/reports/view/2025"
}
],
"attributes": [
{ "name": "Rating", "values": ["Gold", "Silver"]}
],
"tags": [
"Annual Report",
"Sample",
"2025"
]
}
]

The staged assets are held in a temporary state and will not yet be visible to end users.
Next, commit the assets staged using the execution ID from the staging operation returned above.
This endpoint allows users to commit all assets that are currently staged by calling the staging endpoint by CustomAppId.
The keepOrphans parameter is required and determines how the commit operates.
Specify whether to keep or remove orphaned assets (assets not in the current staged batch):
True , all assets not present on the staged table but are present in Loome Portal will be retained.False , all assets not present on the staged table but are present in Loome Portal will be deleted from Loome Portal. Use false only when you want a complete replacement of all assets (destructive operation).After it has completed successfully, the server will respond with a status code of ‘202 Accepted’ indicating that the request has been accepted and queued for processing.
A successful response will contain a string with the following text: “Commit operation queued.”
Location on the Response Headers. This URL should be used to poll for the status of the staging operation.Status is Failure or Cancelled, the response will include error messages specifying what went wrong with the operation.
Please note that:
Next, get the execution status of these staged assets.
This endpoint retrieves the current status of a specific execution identified by the ExecutionId.
This will display the execution status from staging through to commit completion, and can be used to monitor long-running executions.
You will need to provide the request parameter: - ExecutionId (path parameter): The unique identifier for the execution whose status you want to retrieve. This should be a valid ID corresponding to an existing execution.
It will poll the execution status using the execution ID to track the progress of the execution, such as running, completed, failed, or cancelled.
If the operation fails or is cancelled, an error message will display the issue in errorMessages.

You can cancel an execution of an in-progress staging or commit operation by using the execution ID in the Cancel Execution endpoint.
Cancel a specific execution of a custom application identified by the ExecutionId.
Provide the request parameter
- ExecutionId (path parameter): The unique identifier of the custom app execution that you wish to cancel.

Upon a successful cancellation, the API will return a ‘204 No Content’.
Cancelled operations do not affect live assets in the Loome Portal.