---
updatedAt: 2026-07-30T11:04:12.000Z
agentTools:
  projectIndex: https://developer.orangelogic.com/llms.txt
---

# Step 2: Register upload assets

Register each asset you’ll upload as part of the transaction created in the previous step

After you create a transaction ID for your upload session, you’ll register the list of assets to upload during the upload session. Registering your assets allows Orange Logic to determine which asset a file chunk belongs to. This step also allows you to define the folder hierarchy for the assets in Orange Logic. You can structure this call to mirror the folder hierarchy in Orange Logic or your local folder hierarchy. Folders that do not already exist in the Orange Logic platform will be created.

This page shows the <span style="color:#0171C2">**POST**</span> method, but you can also use <span style="color:#0E9B71">**GET**</span>.

## Response

This call returns one object for each asset you register. For each asset, the response lists:

* `status`: The asset’s current upload status.
* `startposition`: The starting position of the first byte in the asset. This is always zero.
* `uploadItemID`: The asset’s upload identifier. You will use this ID in subsequent calls to associate file chunks with the asset they belong to and notify Orange Logic when all of an asset’s file chunks are uploaded.
* `identifier`: The identifier of the asset that will be created or updated when this upload is complete.
* `dO_recordID`: The [Record ID](https://developer.orangelogic.com/reference/assets#record-id) of the asset that will be created or updated when this upload is complete.
* `requestedFileName`: The asset’s filename.
* `requestedFileSize`: The asset’s file size.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "multi-part-upload-api",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://{OrangeLogicURL}/webapi/mediafile/import/upload/",
      "variables": {
        "OrangeLogicURL": {
          "default": "OrangeLogicURL"
        }
      }
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://example.com/oauth2/token",
            "scopes": {}
          }
        }
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/register_25_v1": {
      "post": {
        "summary": "Step 2: Register upload assets",
        "description": "Register each asset you’ll upload as part of the transaction created in the previous step",
        "operationId": "register-upload-assets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "transactionId",
                  "files"
                ],
                "properties": {
                  "transactionId": {
                    "type": "string",
                    "description": "The transaction ID created with the <a href=\"https://developer.orangelogic.com/reference/create-upload-transaction\">Create Upload Transaction API</a> in Step 1."
                  },
                  "folderRecordID": {
                    "type": "string",
                    "description": "The <a href=\"https://developer.orangelogic.com/reference/assets#record-id\">Record ID</a> of the folder you’ll upload the asset to."
                  },
                  "files": {
                    "type": "array",
                    "description": "A JSON-serialized array of objects representing the assets to upload.",
                    "items": {
                      "properties": {
                        "fileName": {
                          "type": "string",
                          "description": "Name of the local file with the extension. </br> Example: <strong>Architecture.zip, Living-Image.png</strong>."
                        },
                        "relativePath": {
                          "type": "string",
                          "description": "The relative folder path of the target folder in Orange Logic that you want to upload to. If you define a path that does not currently exist, Orange Logic will create those folders automatically.   <ul>         <li><strong>Example</strong>: You want to upload the image <strong>Autumn-Sky.jpeg</strong> to the <strong>Images for Review</strong> folder. The <strong>Images for Review</strong> folder is located in the <strong>Season 01</strong> folder in the <strong>Dream Vacation Destinations</strong> folder. If you want the image to be a direct child of the <strong>Images for Review</strong> folder, the relative path is: </br>  <code>\"relativePath\": \"Dream Vacation Destinations/Season 01/Images for Review\"</code></li>         <li>You must include the <strong>relativePath</strong> in the API call. If you do not want to define the <strong>relativePath</strong>, you can include an empty value. Using an empty value will upload the assets to the parent folder specified in the <a href=\"https://developer.orangelogic.com/reference/create-upload-transaction\">Create Upload Transaction API</a>.</li>             <ul>                 <li><strong>Example</strong>: <code>\"relativePath\":\"\"</code>. </li>             </ul>     </ul>"
                        },
                        "length": {
                          "type": "integer",
                          "description": "Expected size of the local file in bytes. For example, the length of a 1 KB asset is 1024 B.",
                          "format": "int32"
                        }
                      },
                      "required": [
                        "fileName",
                        "relativePath",
                        "length"
                      ],
                      "type": "object"
                    }
                  },
                  "uploaderName": {
                    "type": "string",
                    "description": "Name of the upload method you’re using.",
                    "default": "Cortex Uploader"
                  },
                  "skipValidity": {
                    "type": "boolean",
                    "description": "When <code>false</code>, OrangeDAM runs a validity check on files to prevent user errors and ensure they are safe to process. When <code>true</code>, OrangeDAM skips this check.",
                    "default": false
                  },
                  "updateIncompleteUI": {
                    "type": "boolean",
                    "description": "This parameter is currently unused.",
                    "default": false
                  },
                  "clientID": {
                    "type": "string",
                    "description": "The user RecordID for web upload. <br/> This parameter is set by the client uploader application. You do not need to enter anything in this parameter."
                  },
                  "cloudCompatible": {
                    "type": "boolean",
                    "description": "When <code>false</code>, upload files are sent to the local buffer (the server that hosts the web application) and cannot use a cloud bucket as a buffer. </br> When <code>true</code>, upload files can use a cloud bucket as a buffer. To use a cloud buffer, there are some constraints depending on the cloud service provider. For example, for Amazon S3 the chunk size must be: <ul> <li>Constant for all the chunks (except the last chunk).</li>  <li>Between 5MB and 5GB (no min size for the last chunk).</li>  <li>The asset can contain no more than 10,000 chunks.</li> </ul>",
                    "default": false
                  }
                }
              },
              "examples": {
                "Request Example": {
                  "value": {
                    "transactionId": "2RBKMYFLD3UY",
                    "uploaderName": "CortexTools",
                    "skipValidity": false,
                    "updateIncompleteUI": true,
                    "clientId": "string",
                    "files": [
                      {
                        "fileName": "Season 1 trailer.mp4",
                        "relativePath": "Dream Vacation Destinations/Season 01",
                        "length": 85997454
                      }
                    ],
                    "cloudCompatible": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"files\": [\n    {\n      \"status\": \"ToUpload\",\n      \"startPosition\": 0,\n      \"uploadItemId\": \"2RBKM47GUS5M\",\n      \"identifier\": null,\n      \"dO_RecordID\": null,\n      \"requestedFileName\": \"Season 1 trailer.mp4\",\n      \"requestedFileSize\": 85997454\n    }\n  ]\n}\n"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "files": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "status": {
                            "type": "string",
                            "example": "ToUpload"
                          },
                          "startPosition": {
                            "type": "integer",
                            "example": 0,
                            "default": 0
                          },
                          "uploadItemId": {
                            "type": "string",
                            "example": "2RBKM47GUS5M"
                          },
                          "identifier": {},
                          "dO_RecordID": {},
                          "requestedFileName": {
                            "type": "string",
                            "example": "Season 1 trailer.mp4"
                          },
                          "requestedFileSize": {
                            "type": "integer",
                            "example": 85997454,
                            "default": 0
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": false,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```