---
url: /apidocs/resource_upload.md
---
## Resource upload API

| Endpoint | Method | Description |
|-----|-----|-----|
| [/api/v0/resource/upload/link](#direct-upload-to-google-bucket-get-upload-link-) | webRequest | Direct upload to Google bucket (get upload link) |
| [/api/v0/resource/upload/link/complete](#direct-upload-to-google-bucket-complete-upload-link-) | webRequest | Direct upload to Google bucket (complete upload link) |
| [/api/v0/resource/upload/thumbnail/link](#direct-thumbnail-upload-to-google-bucket-get-upload-link-) | webRequest | Direct thumbnail upload to Google bucket (get upload link) |
| [/api/v0/resource/upload/thumbnail/link/complete](#direct-thumbnail-upload-to-google-bucket-complete-upload-link-) | webRequest | Direct thumbnail upload to Google bucket (complete upload link) |
| [/api/v0/resource/upload/remote/url](#remote-url-upload) | webRequest | Remote url upload |
| [/api/v0/resource/upload/remote/image](#remote-image-upload) | webRequest | Remote image upload |
| [resource:getUploadLink](#direct-upload-websocket-) | websocket | Direct upload (websocket) |
| [resource:getUploadLinkRegional](#direct-upload-via-regional-endpoint-websocket-) | websocket | Direct upload via regional endpoint (websocket) |
| [resource:completeUploadLink](#complete-direct-upload-websocket-) | websocket | Complete direct upload (websocket) |
| [resource:getUploadLinkForThumbnail](#direct-upload-of-thumbnail-websocket-) | websocket | Direct upload of thumbnail (websocket) |
| [resource:getUploadLinkForThumbnailRegional](#direct-upload-of-thumbnail-via-regional-endpoint-websocket-) | websocket | Direct upload of thumbnail via regional endpoint (websocket) |
| [resource:completeUploadLinkForThumbnail](#complete-direct-upload-of-thumbnail-websocket-) | websocket | Complete direct upload of thumbnail (websocket) |
| [resource:createAndSubscribeToUploadSession](#create-and-subscribe-to-upload-session) | websocket | Create and subscribe to upload session |
| [resource:resubscribeToUploadSession](#resubscribe-to-upload-session) | websocket | Resubscribe to upload session |

### Direct upload to Google bucket (get upload link)

**HTTP Method:** POST

**Path:** /api/v0/resource/upload/link

**Description:** Direct upload gives possibility to upload files directly from a client to a storage bucket. It consist of next steps:

1. Client asks the server for upload link. The server initializes an upload session and returns a link which could be used for upload.

2. Client [uploads a file to Google bucket](https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload#upload-resumable).

3. Client [sends upload complete acknowledgment to the server](#direct-upload-to-google-bucket-complete-upload-link).

**Headers:**

X-Session-Id: sessionToken

X-Resource-Id: resourceId

**Request:**

**Response:**

### Direct upload to Google bucket (complete upload link)

**HTTP Method:** POST

**Path:** /api/v0/resource/upload/link/complete

**Description:** See [direct upload to Google bucket](#direct-upload-to-google-bucket-get-upload-link).

**Headers:**

X-Session-Id: sessionToken

X-Resource-Id: resourceId

**Request:**

**Response:**

### Direct thumbnail upload to Google bucket (get upload link)

**HTTP Method:** POST

**Path:** /api/v0/resource/upload/thumbnail/link

**Description:** The process is the same as [direct upload to Google bucket](#direct-upload-to-google-bucket-get-upload-link). Complete with [thumbnail uploaded acknowledgment](#direct-thumbnail-upload-to-google-bucket-complete-upload-link).

**Headers:**

X-Session-Id: sessionToken

X-Resource-Id: resourceId

**Request:**

**Response:**

### Direct thumbnail upload to Google bucket (complete upload link)

**HTTP Method:** POST

**Path:** /api/v0/resource/upload/thumbnail/link/complete

**Description:** See [direct thumbnail upload to Google bucket](#direct-thumbnail-upload-to-google-bucket-get-upload-link).

**Headers:**

X-Session-Id: sessionToken

X-Resource-Id: resourceId

**Request:**

**Response:**

### Remote url upload

**HTTP Method:** POST

**Path:** /api/v0/resource/upload/remote/url

**Description:** Endpoint creates resource from remote url.

Resource field `metadata.link` will keep original url.

Resource field `metadata.contentType` will be one of: `roomful#url`, `remote#image`, `remote#audio` or `remote#video`.

**Request:**

**Response:**

### Remote image upload

**HTTP Method:** POST

**Path:** /api/v0/resource/upload/remote/image

**Request:**

**Response:**

### Direct upload (websocket)

**Method:** websocket

**Endpoint:** resource:getUploadLink

**Description:** Get link for direct upload to Google bucket. Upload process consist of the following steps:

1. Client asks the server for upload link. The server initializes an upload session and returns a link which would be used for upload.

2. Client [uploads a file to Google bucket](https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload#upload-resumable).

3. Client [sends upload complete acknowledgment to the server](#complete-direct-upload-websocket).

**Request:**

**Response:**

### Direct upload via regional endpoint (websocket)

**Method:** websocket

**Endpoint:** resource:getUploadLinkRegional

**Description:** Like resource:getUploadLink but uses a GCS regional endpoint directly instead of routing through a Cloud Function, reducing latency for the upload session initiation while still routing the client's upload traffic through a nearby GCS backend.

**Request:**

**Response:**

### Complete direct upload (websocket)

**Method:** websocket

**Endpoint:** resource:completeUploadLink

**Description:** See [direct upload](#direct-upload-websocket).

**Request:**

**Response:**

### Direct upload of thumbnail (websocket)

**Method:** websocket

**Endpoint:** resource:getUploadLinkForThumbnail

**Description:** The process is the same as [direct upload](#direct-upload-websocket).

Complete with [direct upload acknowledgment](#complete-direct-upload-of-thumbnail-websocket).

**Request:**

**Response:**

### Direct upload of thumbnail via regional endpoint (websocket)

**Method:** websocket

**Endpoint:** resource:getUploadLinkForThumbnailRegional

**Description:** Like resource:getUploadLinkForThumbnail but uses a GCS regional endpoint directly instead of routing through a Cloud Function, reducing latency while still routing the client's upload traffic through a nearby GCS backend.

**Request:**

**Response:**

### Complete direct upload of thumbnail (websocket)

**Method:** websocket

**Endpoint:** resource:completeUploadLinkForThumbnail

**Description:** See [direct upload](#direct-upload-of-thumbnail-websocket).

**Request:**

**Response:**

### Create and subscribe to upload session

**Method:** websocket

**Endpoint:** resource:createAndSubscribeToUploadSession

**Description:** API creates new resource(s) upload session and subscribes user socket to it.

**Request:**

**Response:**

### Resubscribe to upload session

**Method:** websocket

**Endpoint:** resource:resubscribeToUploadSession

**Description:** API resubscribes user socket to resource(s) upload session.

**Request:**

**Response:**

## Models

#### Resource Origin

#### Geolocation

#### Dimensions

#### Resource Data Audio

#### Resource Data Video

#### Resource Data Amazon

#### Resource Data Imdb

#### Resource Data Youtube

#### Resource Data Vimeo

#### Resource Data Pinterest

#### Resource Data Pixabay

#### Resource Data Facebook

#### Resource Data Remote Url

#### Live Stream Data

#### AI Generation Data

#### Resource Data Directory

#### Google Drive

#### Channel Data

#### Enrichment Data

#### Programmatic Action with children

#### Programmatic Action

#### Resource
