---
title: Upload API Endpoints (2019/03)
slug: develop/upload-api-endpoints-201903
docTags: 
createdAt: 2025-11-14T19:18:58.031Z
---

The Upload endpoints allow users to send files to the BSN.Cloud server.&#x20;

Base URL for this endpoint: ***https\://api.bsn.cloud/Upload/2019/03/REST***

*\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_*



## DELETE /Sessions/\{SessionToken}/

Cancels the specified Content Upload Session

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session Token generated by the server

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `SessionToken` is set to `WIxMjM0NTY3ODkwIiwibmF`

```none
DELETE /Upload/2019/03/REST/Sessions/WIxMjM0NTY3ODkwIiwibmF/ HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#15803D">204</font>**:&#x20;**&#x54;he specified Content Upload Session was successfully cancelled

**Failure Response**

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#B91C1C">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The Content Upload Session with specified session token was not found

<font color="#9a0808">412</font>: The current Content Upload Session state has different timestamp than specified in request

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

****

## POST /Sessions/\{SessionToken}/Uploads/

Creates a new Content Upload either in scope of the specified Content Upload Session or standalone

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session token generated by the server or `None `if the new Content Upload is standalone

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**&#x20;

- The [ContentUploadArguments (2019/03)](docId\:lb3FKxjOuW9bjVuWzYlDL).

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `SessionToken` is set to `WIxMjM0NTY3ODkwIiwibmF`

**Content Upload Example**

```none
POST /Upload/2019/03/REST/Sessions/WIxMjM0NTY3ODkwIiwibmF/Uploads/ HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/vnd.bsn.content.upload.status.201903+json, application/vnd.bsn.content.upload.negotiation.status.201903+json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

This request supports multiple payload representations for the different use cases:

- The `application/vnd.bsn.start.content.upload.arguments.201903+json` representation is used to start the new [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) upload as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.start.content.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.start.content.upload.arguments.201903+json
Content-Length: 277

{
  "sessionToken": null,
  "uploadToken": null,
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.start.content.update.arguments.201903+json` representation is used to modify the previously uploaded [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.start.content.update.arguments.201903+json

```json
Content-Type: application/vnd.bsn.start.content.update.arguments.201903+json
Content-Length: 300

{
  "sessionToken": null,
  "uploadToken": null,
  "contentId": 12345,
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json `representation is used to modify the previously uploaded [WebPage Asset Entity (2022/06)](docId\:v9GQTYryzsBhf9Q3-3Y9u) as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json&#x20;

```json
Content-Type: application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json
Content-Length: 371

{
  "sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
  "uploadToken": null,
  "webPageAssetId": 0,
  "relativePath": "/assets/text/",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "",
  "fileThumb": null,
  "tags": {}
}
```
:::

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#15803D">201</font>: Returns the URI and timestamp of the [ContentUploadStatus (2019/03)](docId\:f5sqGRaUaymNao-bbjaJe) entity&#x20;

**Examples**

This response supports multiple payload representations for the different use cases:

- The `application/vnd.bsn.content.upload.status.201903+json` representation of the [ContentUploadStatus (2019/03)](docId\:f5sqGRaUaymNao-bbjaJe) which is used for uploads of content which doesn't have equivalents in the destination folder:

:::CodeblockTabs
application/vnd.bsn.content.upload.status.201903+json

```json
{
  "sessionToken": "",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 0,
  "fileName": "Hello World.txt",
  "fileSize": 12,
  "shA1Hash": "",
  "state": "Started",
  "startTime": "2025-08-26T23:47:37.937Z",
  "endTime": null,
  "lastActivityTime": "2025-08-26T23:47:37.937Z",
  "chunks": [
    {
      "count": 0,
      "length": 12,
      "state": "Uploading"
    }
  ]
}
```
:::

- The `application/vnd.bsn.content.upload.negotiation.status.201903+json` representation of the [ContentNegotiationStatus (2019/03)](docId\:ZWViwwBbLA9uvHIUsxiop) which is used to indicate that there is equivalent content in the destination folder and provide details about it:

:::CodeblockTabs
application/vnd.bsn.content.upload.negotiation.status.201903+json

```json
{
  "sessionToken": "",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 0,
  "fileName": "Hello World.txt",
  "fileSize": 12,
  "shA1Hash": "",
  "state": "Started",
  "startTime": "2025-08-26T23:47:37.937Z",
  "endTime": null,
  "lastActivityTime": "2025-08-26T23:47:37.937Z",
  "chunks": null,
  "matchingFiles": [
    {
      "id": 12345,
      "fileName": "Hello World.txt",
      "virtualPath": "\\Shared\\Unsorted\\",
      "mediaType": "Text",
      "fileSize": 12,
      "shA1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
      "uploadDate": "2025-08-05T16:30:15.003Z"
    }
  ]
}
```
:::

**Failure Response**

<font color="#9a0808">300</font>: The acceptable Content Upload representations are not specified

<font color="#9a0808">400</font>: The specified Content Upload Arguments are incomplete or not acceptable

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">404</font>: The Content Upload Session with specified session token was not found

<font color="#9a0808">406</font>: The specified representaion of Content Upload entity is not acceptable

<font color="#9a0808">415</font>: The specified representaion of Content Upload Arguments is invalid or not supported

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error



## GET  /Sessions/\{SessionToken}/Uploads/\{UploadToken}/

Retrieves the status of specified Content Upload

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session Token generated by the server or `None` if the new Content Upload is standalone
- `UploadToken` <font color="#704ae0">string</font>: The Upload Token generated by the server

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `SessionToken` is set to `None`
- `UploadToken` is set to `321e6fc1-553f-4bb0-8c7a-d5bf859be6b2`

```none
GET /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/  HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.content.upload.status.201903+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#15803D">200</font>: The [ContentUploadStatus (2019/03)](docId\:f5sqGRaUaymNao-bbjaJe) was successfully retrieved

**Example**

:::CodeblockTabs
application/vnd.bsn.content.upload.status.201903+json

```json
{
  "sessionToken": "",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 0,
  "fileName": "Hello World.txt",
  "fileSize": 12,
  "shA1Hash": "",
  "state": "Started",
  "startTime": "2025-08-26T23:47:37.937Z",
  "endTime": null,
  "lastActivityTime": "2025-08-26T23:47:37.937Z",
  "chunks": [
    {
      "count": 0,
      "length": 12,
      "state": "Uploading"
    }
  ]
}
```
:::

**Success Response**

<font color="#15803D">304</font>: The timestamp specified in the request is the same or newer than the timestamp in the current Content Upload state&#x20;

**Failure Response**

<font color="#B91C1C">300</font>: The acceptable Content Upload Session representations are not specified

<font color="#B91C1C">401</font>: The access token is invalid or not specified

<font color="#B91C1C">404</font>: A Content Upload Session with the specified session token was not found or the Content Upload with specified upload token was not found

<font color="#B91C1C">406</font>: The specified representation of the Content Upload Session entity is not acceptable

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

****

## PUT  /Sessions/\{SessionToken}/Uploads/\{UploadToken}/

Updates the status of the specified Content Upload

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session Token generated by the server or `None` if the new Content Upload is standalone
- `UploadToken` <font color="#704ae0">string</font>: The Content Upload Token generated by the server

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**&#x20;

- The [ContentUploadArguments (2019/03)](docId\:lb3FKxjOuW9bjVuWzYlDL) for a new content upload, or [ContentUpdateArguments (2019/03)](docId\:L9u4ogJgYrotjnUdfx4nU) for editing the existing (previously uploaded) content, or<font color="#B91C1C"> </font> for a new webpage asset upload.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `SessionToken` is set to `None`
- `UploadToken` is set to `321e6fc1-553f-4bb0-8c7a-d5bf859be6b2`

**Content Upload, Start, and Complete Example&#x20;**

```none
PUT /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/ HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.content.upload.status.201903+json, application/vnd.bsn.content.upload.negotiation.status.201903+json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

This request supports multiple payload representations for the different use cases:

- The `application/vnd.bsn.start.content.upload.arguments.201903+json` representation is used to begin a @content entity upload within an ongoing session as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.start.content.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.start.content.upload.arguments.201903+json
Content-Length: 345

{
  "sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.content.upload.arguments.201903+json` representation is used to clarify an ongoing [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) upload as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.content.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.content.upload.arguments.201903+json
Content-Length: 351

{
  "sessionToken": null,
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.complete.content.upload.arguments.201903+json `representation is used to complete previously started [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) uploads as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.complete.content.upload.arguments.201903+json&#x20;

```json
Content-Type: application/vnd.bsn.complete.content.upload.arguments.201903+json
Content-Length: 351

{
  "sessionToken": null,
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.start.content.update.arguments.201903+json` representation is used to start a new upload which modifies the previously uploaded [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.start.content.update.arguments.201903+json

```json
Content-Type: application/vnd.bsn.content.update.arguments.201903+json
Content-Length: 368

{
  "sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 12345,
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.content.update.arguments.201903+json` representation is used to clarify an ongoing upload which modifies a previously uploaded [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.content.update.arguments.201903+json

```json
Content-Type: application/vnd.bsn.start.content.update.arguments.201903+json
Content-Length: 374

{
  "sessionToken": null,
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 12345,
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.complete.content.upload.arguments.201903+json `representation is used to finish an upload which modifies the previously uploaded [Content Entity (2022/06)](docId\:fkVdcafrX380751m5hbNr) as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.complete.content.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.complete.content.upload.arguments.201903+json
Content-Length: 374

{
  "sessionToken": null,
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 12345,
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The  `application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json` representation is used to show the status of a new [WebPage Asset Entity (2022/06)](docId\:v9GQTYryzsBhf9Q3-3Y9u)  upload as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.start.webpage.asset.upload.arguments.201903+json
Content-Length: 371

{
  "sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "webPageAssetId": 0,
  "relativePath": "/assets/text/",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.webpage.asset.upload.arguments.201903+json` representation is used to clarify an ongoing [WebPage Asset Entity (2022/06)](docId\:v9GQTYryzsBhf9Q3-3Y9u) upload as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.webpage.asset.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.webpage.asset.upload.arguments.201903+json
Content-Length: 445

{
  "sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "webPageAssetId": 0,
  "relativePath": "/assets/text/",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "fileThumb": null,
  "tags": {}
}
```
:::

- The `application/vnd.bsn.complete.webpage.asset.upload.arguments.201903+json` representation is used to complete previously started [WebPage Asset Entity (2022/06)](docId\:v9GQTYryzsBhf9Q3-3Y9u) uploads as shown in the example below:

:::CodeblockTabs
application/vnd.bsn.complete.webpage.asset.upload.arguments.201903+json

```json
Content-Type: application/vnd.bsn.complete.webpage.asset.upload.arguments.201903+json
Content-Length: 445

{
  "sessionToken": "271e6422-704f-4c6f-b6dc-60c17a00f0fc",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "webPageAssetId": 0,
  "relativePath": "/assets/text/",
  "fileName": "Hello World.txt",
  "virtualPath": "\\Shared\\Unsorted\\",
  "mediaType": "Auto",
  "fileSize": 12,
  "fileLastModifiedDate": "0001-01-01T00:00:00",
  "sha1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "fileThumb": null,
  "tags": {}
}
```
:::

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [ContentUploadStatus (2019/03)](docId\:f5sqGRaUaymNao-bbjaJe)&#x20;

**Example**

:::CodeblockTabs
application/vnd.bsn.content.upload.status.201903+json

```json
{
  "sessionToken": "",
  "uploadToken": "321e6fc1-553f-4bb0-8c7a-d5bf859be6b2",
  "contentId": 0,
  "fileName": "Hello World.txt",
  "fileSize": 12,
  "shA1Hash": "2EF7BDE608CE5404E97D5F042F95F89F1C232871",
  "state": "Started",
  "startTime": "2025-08-26T23:47:37.937Z",
  "endTime": null,
  "lastActivityTime": "2025-08-26T23:47:37.937Z",
  "chunks": [
    {
      "count": 0,
      "length": 12,
      "state": "Uploading"
    }
  ]
}
```
:::

**Failure Response**

<font color="#B91C1C">300</font>**:&#x20;**&#x54;he acceptable Content Upload Session representations are not specified

<font color="#B91C1C">400</font>: The specified Content Upload Session Arguments are incomplete or not acceptable

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#B91C1C">404</font>: The Content Upload Session with the specified session token was not found or the Content Upload with specified upload token was not found

<font color="#B91C1C">406</font>: The specified representaion of the Content Upload Session entity is not acceptable

<font color="#B91C1C">412</font>: The current Content Upload Session state has different timestamp than specified in the request

<font color="#9a0808">415</font>: The specified representaion of the Content Upload Session Arguments is invalid or not supported

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error



## DELETE /Sessions/\{SessionToken}/Uploads/\{UploadToken}/

Cancels the specified Content Upload&#x20;

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session Token generated by the server or `None` if the new Content Upload is standalone
- `UploadToken` <font color="#704ae0">string</font>: The Content Upload Token generated by the server

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `SessionToken` is set to `None`
- `UploadToken` is set to `321e6fc1-553f-4bb0-8c7a-d5bf859be6b2`

```none
DELETE /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/ HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2024 21:32:34 GMT
Accept: application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response&#x20;**

<font color="#15803D">204</font>**:&#x20;**&#x54;he specified Content Upload was successfully cancelled

**Failure Response**

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">404</font>: The Content Upload Session with specified session token was not found or the Content Upload with specified upload token was not found

<font color="#9a0808">412</font>: The current Content Upload state has different timestamp than specified in request

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

****

## GET /Sessions/\{SessionToken}/Uploads/\{UploadToken}/Chunks/

Retrieves the status of Content Chunks in the specified active Content Upload

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session Token generated by the server or `None` if the new Content Upload is standalone
- `UploadToken` <font color="#704ae0">string</font>: The Content Upload Token generated by the server&#x20;

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Examples**

The example request parameters and headers are set as follows:

- `SessionToken` is set to `None`
- `UploadToken` is set to `321e6fc1-553f-4bb0-8c7a-d5bf859be6b2`

```none
GET /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/Chunks/ HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/vnd.bsn.upload.content.chunk.status.list.201903+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#15803D">200</font>: An array of [ContentChunkStatus (2019/03)](docId\:MxHDQ_5ih5SKYEWwBtWTz) entities was successfully retrieved&#x20;

**Example**

:::CodeblockTabs
application/vnd.bsn.upload.content.chunk.status.list.201903+json

```json
[
  {
    "count": 0,
    "length": 12,
    "state": "Uploading"
  }
]
```
:::

**Failure Response**

<font color="#B91C1C">300</font>: The acceptable Content Upload Session representations are not specified

<font color="#B91C1C">401</font>: The access token is invalid or not specified

<font color="#B91C1C">404</font>: A Content Upload Session with the specified session token was not found or the Content Upload with specified upload token was not found

<font color="#B91C1C">406</font>: The specified representation of the Content Chunk entity is not acceptable

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error



## POST  /Sessions/\{SessionToken}/Uploads/\{UploadToken}/Chunks/

Uploads a new Content Chunk in scope of the specified [ContentChunkStatus (2019/03)](docId\:MxHDQ_5ih5SKYEWwBtWTz)&#x20;

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**&#x20;

- `offset` <font color="#704ae0">string </font><font color="#01a0af">required</font>: Start position of the current file part

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**&#x20;

- `SessionToken` <font color="#704ae0">string</font>: The Content Upload Session Token generated by the server or `None` if the new Content Upload is standalone
- `UploadToken` <font color="#704ae0">string</font>: The Content Upload Token generated by the server

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**&#x20;

- The [ContentChunkStatus (2019/03)](docId\:MxHDQ_5ih5SKYEWwBtWTz)&#x20;

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Examples**

The example request parameters and headers are set as follows:

- `offset` is set to `0`
- `SessionToken` is set to `None`
- `UploadToken` is set to `321e6fc1-553f-4bb0-8c7a-d5bf859be6b2`

```none
POST /Upload/2019/03/REST/Sessions/None/Uploads/321e6fc1-553f-4bb0-8c7a-d5bf859be6b2/Chunks/?offset=0 HTTP/1.1 
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/octet-stream
Content-Length: 12
```

This is the example request body:

:::CodeblockTabs
application/octet-stream

```json
Hello World!
```
:::

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#15803D">202</font>**:&#x20;**&#x54;he specified Content Chunk has been successfully added to the queue

**Failure Response**

<font color="#B91C1C">4</font><font color="#B91C1C">00</font>: The specified Content Chunk data is incomplete or not acceptable

<font color="#B91C1C">401</font>: The access token is invalid or not specified

<font color="#B91C1C">404</font>: A Content Upload Session with the specified session token was not found or the Content Upload with specified upload token was not found

<font color="#B91C1C">415</font>: The specified Content Chunk format is invalid or not supported

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error



