---
title: "Step 2: Register upload assets"
method: POST
path: "/register_25_v1"
---

# Step 2: Register upload assets

`POST /register_25_v1`

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

## Request body

- object
  - `transactionId` string, required — 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` string — The <a href="https://developer.orangelogic.com/reference/assets#record-id">Record ID</a> of the folder you’ll upload the asset to.
  - `files` object[], required — A JSON-serialized array of objects representing the assets to upload.
    - `fileName` string, required — Name of the local file with the extension. </br> Example: <strong>Architecture.zip, Living-Image.png</strong>.
    - `relativePath` string, required — 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` integer, required — Expected size of the local file in bytes. For example, the length of a 1 KB asset is 1024 B.
  - `uploaderName` string — Name of the upload method you’re using.
  - `skipValidity` boolean — 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.
  - `updateIncompleteUI` boolean — This parameter is currently unused.
  - `clientID` string — 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` boolean — 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>

## Response `200`

200

- object
  - `files` object[]
    - `status` string
    - `startPosition` integer
    - `uploadItemId` string
    - `identifier` unknown
    - `dO_RecordID` unknown
    - `requestedFileName` string
    - `requestedFileSize` integer

---

[API](https://skmtc.net/orangelogic/apis/security.md) · [All operations](https://skmtc.net/orangelogic/apis/security/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/orangelogic/security/revisions/c8e945426c5e/schema)
