---
url: /apidocs/resource.md
---
## Resource API

| Endpoint | Method | Description |
|-----|-----|-----|
| [/api/v0/resource/create](#create-resource-metadata) | webRequest | Create resource metadata |
| [/api/v0/resource/metadata/{id}](#get-resource-metadata) | webRequest | Get resource metadata |
| [/api/v0/resource/{id}](#read-resource) | webRequest | Read resource |
| [/api/v0/resource/network/{networkId}/{id}](#read-resource-from-certain-network-) | webRequest | Read resource (from certain network) |
| [/api/v0/resource/proxy/{id}](#proxy-resource) | webRequest | Proxy resource |
| [/api/v0/resource/proxy/youtube](#proxy-resource) | webRequest | Proxy resource |
| [/api/v0/resource/thumbnail/{size}/{id}](#read-resource-thumbnail) | webRequest | Read resource thumbnail |
| [/api/v0/resource/url/{id}](#get-direct-resource-url) | webRequest | Get direct resource url |
| [/api/v0/resource/network/{networkId}/url/{id}](#get-direct-resource-url-from-certain-network-) | webRequest | Get direct resource url (from certain network) |
| [/api/v0/resource/thumbnail/url/{size}/{id}](#get-direct-thumbnail-url) | webRequest | Get direct thumbnail url |
| [/api/v0/resource/thumbnail/user/{id}](#read-user-thumbnail) | webRequest | Read user thumbnail |
| [/api/v0/resource/thumbnail/user/size/{size}/{id}](#read-user-thumbnail-with-size-) | webRequest | Read user thumbnail (with size) |
| [/api/v0/resource/thumbnail/user/url/{id}](#get-user-thumbnail-url) | webRequest | Get user thumbnail url |
| [/api/v0/resource/thumbnail/user/url/size/{size}/{id}](#get-user-thumbnail-url-with-size-) | webRequest | Get user thumbnail url (with size) |
| [/api/v0/resource/thumbnail/room/{id}](#read-room-thumbnail) | webRequest | Read room thumbnail |
| [/api/v0/resource/thumbnail/room/size/{size}/{id}](#read-room-thumbnail-with-size-) | webRequest | Read room thumbnail (with size) |
| [/api/v0/resource/thumbnail/room/url/{id}](#get-room-thumbnail-url) | webRequest | Get room thumbnail url |
| [/api/v0/resource/thumbnail/room/url/size/{size}/{id}](#get-room-thumbnail-url-with-size-) | webRequest | Get room thumbnail url (with size) |
| [/api/v0/resource/thumbnail/network/{id}](#read-network-thumbnail) | webRequest | Read network thumbnail |
| [/api/v0/resource/thumbnail/network/size/{size}/{id}](#read-network-thumbnail-with-size-) | webRequest | Read network thumbnail (with size) |
| [/api/v0/resource/thumbnail/network/url/{id}](#get-network-thumbnail-url) | webRequest | Get network thumbnail url |
| [/api/v0/resource/thumbnail/network/url/size/{size}/{id}](#get-network-thumbnail-url-with-size-) | webRequest | Get network thumbnail url (with size) |
| [/api/v0/resource/thumbnail/amazon/{id}](#read-amazon-thumbnail) | webRequest | Read Amazon thumbnail |
| [/api/v0/resource/thumbnail/youtube/{id}](#read-youtube-thumbnail) | webRequest | Read Youtube thumbnail |
| [/api/v0/resource/thumbnail/imdb/{id}](#read-imdb-thumbnail) | webRequest | Read Imdb thumbnail |
| [/api/v0/resource/thumbnail/pinterest/{id}](#read-pinterest-thumbnail) | webRequest | Read Pinterest thumbnail |
| [/api/v0/resource/thumbnail/link](#read-link-thumbnail) | webRequest | Read link thumbnail |
| ~~[/api/v0/rpc/resource.info](#info)~~ | jsonRpc | Info |
| [imdb:search](#search-imdb) | websocket | Search imdb |
| [imdb:info](#info-imdb) | websocket | Info imdb |
| [resource:createImdbMulti](#create-imdb-resources) | websocket | Create imdb resources |
| [link:info](#info-link) | websocket | Info link |
| [link:infoAsync](#info-link-async) | websocket | Info link async |
| [pinterest:search](#search-pinterest) | websocket | Search pinterest |
| [pinterest:info](#info-pinterest) | websocket | Info pinterest |
| [resource:createPinterest](#create-pinterest-resource) | websocket | Create pinterest resource |
| [pixabay:search](#search-pixabay) | websocket | Search pixabay |
| [sortingTable:get](#get-user-sorting-table-content) | websocket | Get user sorting table content |
| [sortingTable:deleteAllResources](#delete-all-resources-from-user-sorting-table) | websocket | Delete all resources from user sorting table |
| [sortingTable:deleteResources](#delete-resources-from-user-sorting-table) | websocket | Delete resources from user sorting table |
| [sortingTable:restoreResources](#restore-resources-to-user-sorting-table) | websocket | Restore resources to user sorting table |
| [room:deleteAllResourcesFromSortingTable](#delete-all-resources-from-room-sorting-table) | websocket | Delete all resources from room sorting table |
| [room:deleteResourcesFromSortingTable](#delete-resources-from-room-sorting-table) | websocket | Delete resources from room sorting table |
| [room:restoreResourcesToSortingTable](#restore-resources-to-room-sorting-table) | websocket | Restore resources to room sorting table |
| [resource:subscribe](#subscribe-to-resource-channel) | websocket | Subscribe to resource channel |
| [resource:unsubscribe](#unsubscribe-from-resource-channel) | websocket | Unsubscribe from resource channel |
| [resource:create](#create-resource) | websocket | Create resource |
| [resource:createRemoteUrlResource](#create-remote-url-resource) | websocket | Create remote url resource |
| [resource:remoteImageUpload](#create-remote-image-resource) | websocket | Create remote image resource |
| [resource:generateAIImage](#generate-ai-image) | websocket | Generate aI image |
| [resource:createLinkResource](#create-link-resource) | websocket | Create link resource |
| [resource:createGoogleDriveResource](#create-google-drive-resource) | websocket | Create google drive resource |
| [resource:syncGoogleDriveDirectory](#sync-google-drive-directory) | websocket | Sync google drive directory |
| [resource:delete](#delete-resource) | websocket | Delete resource |
| [resource:move](#move-resource) | websocket | Move resource |
| [resource:updateAttributes](#update-resource-attributes) | websocket | Update resource attributes |
| [resource:updateEnrichment](#update-resource-enrichment) | websocket | Update resource enrichment |
| ~~[resource:getUrl](#get-url)~~ | websocket | Get url |
| [resource:getResourceUrl](#get-resource-url) | websocket | Get resource url |
| [resource:getThumbnailUrl](#get-thumbnail-url) | websocket | Get thumbnail url |
| [resource:get](#get-resource) | websocket | Get resource |
| ~~[resource:getResourceFromNetwork](#get-resource-from-network)~~ | websocket | Get resource from network |
| ~~[resource:listBelonging](#list-belonging-resources)~~ | websocket | List belonging resources |
| [resource:searchBelonging](#search-belonging-resources) | websocket | Search belonging resources |
| [resource:subscribeToBelonging](#subscribe-to-belonging) | websocket | Subscribe to belonging |
| [resource:unsubscribeFromBelonging](#unsubscribe-from-belonging) | websocket | Unsubscribe from belonging |
| [resource:getPublicMusic](#get-public-music) | websocket | Get public music |
| [resource:createDirectory](#create-directory) | websocket | Create directory |
| [resource:listParentDirectories](#list-parent-directories) | websocket | List parent directories |
| [resource:getStreamSources](#get-stream-sources) | websocket | Get stream sources |
| ~~[sortingTable:addResources](#on-resources-added-to-user-sorting-table-event)~~ | websocketEvent | On resources added to user sorting table event |
| ~~[sortingTable:deleteResources](#on-resources-deleted-from-user-sorting-table-event)~~ | websocketEvent | On resources deleted from user sorting table event |
| ~~[resource:addedToUploadSession](#on-resources-added-to-upload-session-event)~~ | websocketEvent | On resources added to upload session event |
| ~~[resource:deletedFromUploadSession](#on-resources-deleted-from-upload-session-event)~~ | websocketEvent | On resources deleted from upload session event |
| ~~[sortingTable:resourceUpdated](#on-user-sorting-table-resource-updated-event)~~ | websocketEvent | On user sorting table resource updated event |
| [resource:addedToBelonging](#on-resources-added-to-belonging-event) | websocketEvent | On resources added to belonging event |
| [resource:deletedFromBelonging](#on-resources-deleted-from-belonging-event) | websocketEvent | On resources deleted from belonging event |
| [resource:updated](#on-resource-updated-event) | websocketEvent | On resource updated event |
| ~~[resource:updatedInUploadSession](#on-upload-session-resource-updated-event)~~ | websocketEvent | On upload session resource updated event |
| ~~[resource:updatedInChannel](#on-channel-resource-updated-event)~~ | websocketEvent | On channel resource updated event |
| [resource:syncGoogleDriveDirectoryResult](#on-sync-google-drive-directory-result-event) | websocketEvent | On sync google drive directory result event |
| [link:infoEvent](#info-link-event) | websocketEvent | Info link event |

### Create resource metadata

**HTTP Method:** POST

**Path:** /api/v0/resource/create

**Request:**

**Response:**

### Get resource metadata

**HTTP Method:** GET

**Path:** /api/v0/resource/metadata/{id}

**Request:**

**Response:**

### Read resource

**HTTP Method:** GET

**Path:** /api/v0/resource/{id}

**Description:** Endpoint redirects to direct resource location.

Url parameter "response-content-disposition" sets Content-Disposition header in Google bucket response (https://cloud.google.com/storage/docs/xml-api/reference-headers#responsecontentdisposition).

**Parameters:**

response-content-disposition: string

**Request:**

**Response:**

### Read resource (from certain network)

**HTTP Method:** GET

**Path:** /api/v0/resource/network/{networkId}/{id}

**Description:** Endpoint redirects to direct resource location.

Url parameter "response-content-disposition" sets Content-Disposition header in Google bucket response (https://cloud.google.com/storage/docs/xml-api/reference-headers#responsecontentdisposition).

**Parameters:**

response-content-disposition: string

**Request:**

**Response:**

### Proxy resource

**HTTP Method:** GET

**Path:** /api/v0/resource/proxy/{id}

**Description:** Endpoint serves resource without redirection.

**Request:**

**Response:**

### Proxy resource

**HTTP Method:** GET

**Path:** /api/v0/resource/proxy/youtube

**Parameters:**

url: Youtube video url (must end with "googlevideo.com")

**Request:**

**Response:**

### Read resource thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/{size}/{id}

**Description:** Parameter {size} could be skipped (/api/v0/resource/thumbnail/{id}) in this endpoint. In case if size is not provided, default thumbnail (512) is returned.

**Request:**

**Response:**

### Get direct resource url

**HTTP Method:** GET

**Path:** /api/v0/resource/url/{id}

**Description:** Endpoint returns Google bucket url for resources that are stored by Valuverse.

**Request:**

**Response:**

### Get direct resource url (from certain network)

**HTTP Method:** GET

**Path:** /api/v0/resource/network/{networkId}/url/{id}

**Description:** Endpoint returns Google bucket url for resources that are stored by Valuverse.

**Request:**

**Response:**

### Get direct thumbnail url

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/url/{size}/{id}

**Description:** Endpoint returns Google bucket url for resource thumbnail. The {size} parameter is optional.

**Request:**

**Response:**

### Read user thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/user/{id}

**Request:**

**Response:**

### Read user thumbnail (with size)

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/user/size/{size}/{id}

**Request:**

**Response:**

### Get user thumbnail url

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/user/url/{id}

**Request:**

**Response:**

### Get user thumbnail url (with size)

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/user/url/size/{size}/{id}

**Request:**

**Response:**

### Read room thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/room/{id}

**Request:**

**Response:**

### Read room thumbnail (with size)

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/room/size/{size}/{id}

**Request:**

**Response:**

### Get room thumbnail url

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/room/url/{id}

**Request:**

**Response:**

### Get room thumbnail url (with size)

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/room/url/size/{size}/{id}

**Request:**

**Response:**

### Read network thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/network/{id}

**Request:**

**Response:**

### Read network thumbnail (with size)

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/network/size/{size}/{id}

**Request:**

**Response:**

### Get network thumbnail url

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/network/url/{id}

**Request:**

**Response:**

### Get network thumbnail url (with size)

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/network/url/size/{size}/{id}

**Request:**

**Response:**

### Read Amazon thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/amazon/{id}

**Request:**

**Response:**

### Read Youtube thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/youtube/{id}

**Request:**

**Response:**

### Read Imdb thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/imdb/{id}

**Request:**

**Response:**

### Read Pinterest thumbnail

**HTTP Method:** GET

**Path:** /api/v0/resource/thumbnail/pinterest/{id}

**Request:**

**Response:**

### Read link thumbnail

**HTTP Method:** GET

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

**Parameters:**

url: link url

**Request:**

**Response:**

### Info

**Method:** jsonRpc

**HTTP Method:** POST

**Path:** /api/v0/rpc/resource.info

**DEPRECATED**

**Headers:**

X-Session-Id: sessionToken

**Request:**

**Response:**

### Search imdb

**Method:** websocket

**Endpoint:** imdb:search

**Request:**

**Response:**

### Info imdb

**Method:** websocket

**Endpoint:** imdb:info

**Request:**

**Response:**

### Create imdb resources

**Method:** websocket

**Endpoint:** resource:createImdbMulti

**Request:**

**Response:**

### Info link

**Method:** websocket

**Endpoint:** link:info

**Description:** API returns web page information of url provided in request.

**Request:**

**Response:**

### Info link async

**Method:** websocket

**Endpoint:** link:infoAsync

**Description:** API returns web page information of url provided in request. API is asynchronous, response will be sent with `link:infoEvent` event.

**Request:**

**Response:**

### Search pinterest

**Method:** websocket

**Endpoint:** pinterest:search

**Request:**

**Response:**

### Info pinterest

**Method:** websocket

**Endpoint:** pinterest:info

**Request:**

**Response:**

### Create pinterest resource

**Method:** websocket

**Endpoint:** resource:createPinterest

**Request:**

**Response:**

### Search pixabay

**Method:** websocket

**Endpoint:** pixabay:search

**Request:**

**Response:**

### Get user sorting table content

**Method:** websocket

**Endpoint:** sortingTable:get

**Description:** API returns list of resources that user uploaded to system, but not yet assigned to prop.

**Request:**

**Response:**

### Delete all resources from user sorting table

**Method:** websocket

**Endpoint:** sortingTable:deleteAllResources

**Request:**

**Response:**

### Delete resources from user sorting table

**Method:** websocket

**Endpoint:** sortingTable:deleteResources

**Request:**

**Response:**

### Restore resources to user sorting table

**Method:** websocket

**Endpoint:** sortingTable:restoreResources

**Request:**

**Response:**

### Delete all resources from room sorting table

**Method:** websocket

**Endpoint:** room:deleteAllResourcesFromSortingTable

**Request:**

**Response:**

### Delete resources from room sorting table

**Method:** websocket

**Endpoint:** room:deleteResourcesFromSortingTable

**Request:**

**Response:**

### Restore resources to room sorting table

**Method:** websocket

**Endpoint:** room:restoreResourcesToSortingTable

**Request:**

**Response:**

### Subscribe to resource channel

**Method:** websocket

**Endpoint:** resource:subscribe

**Description:** Subscribe to resource event channel

**Request:**

**Response:**

### Unsubscribe from resource channel

**Method:** websocket

**Endpoint:** resource:unsubscribe

**Description:** Unsubscribe from resource event channel

**Request:**

**Response:**

### Create resource

**Method:** websocket

**Endpoint:** resource:create

**Description:** API creates resource model.

For Facebook resources, use resource:remoteImageUpload instead.

Belonging determines resource location in the system in a way `app:applicationId:belongingType:belongingPath(networkId)`. Parts with `app:applicationId:` and `(networkId)` are optional.

**Available `belonging` field values:**

* `userSortingTable:{userId}`                - add resource to user sorting table;
* `roomSortingTable:{roomId}`                - add resource to room sorting table;
* `userAIGeneration:{userId}`                - add resource to the list of AI generated resources by user;
* `userPublic:{userId}`                      - add resource to the list of user public resources, available for all;
* `uploadSession:{userId}/{uploadSessionId}` - upload resource before assigning to final belonging;
* `directory:{parentResourceId}`             - add resource to a directory.
* `applicationPublic:{applicationId}`        - add resource to a public belonging of application.
* `app:{applicationId}:{belonging}`          - belongings listed above with application context.

**Request:**

**Response:**

### Create remote url resource

**Method:** websocket

**Endpoint:** resource:createRemoteUrlResource

**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:**

### Create remote image resource

**Method:** websocket

**Endpoint:** resource:remoteImageUpload

**Request:**

**Response:**

### Generate aI image

**Method:** websocket

**Endpoint:** resource:generateAIImage

**Description:** API creates image resource that will be generated using AI.

**Request:**

**Response:**

### Create link resource

**Method:** websocket

**Endpoint:** resource:createLinkResource

**Description:** API creates resource that is a copy of an existing resource. No need to upload resource data again, as API will create a link.

**Request:**

**Response:**

### Create google drive resource

**Method:** websocket

**Endpoint:** resource:createGoogleDriveResource

**Request:**

**Response:**

### Sync google drive directory

**Method:** websocket

**Endpoint:** resource:syncGoogleDriveDirectory

**Description:** Recursively synchronizes the content in the provided google drive resource directory.

**Request:**

**Response:**

### Delete resource

**Method:** websocket

**Endpoint:** resource:delete

**Description:** API moves resource to trashcan belonging.

**Request:**

**Response:**

### Move resource

**Method:** websocket

**Endpoint:** resource:move

**Description:** API moves resource to a new belonging.

**Request:**

**Response:**

### Update resource attributes

**Method:** websocket

**Endpoint:** resource:updateAttributes

**Request:**

**Response:**

### Update resource enrichment

**Method:** websocket

**Endpoint:** resource:updateEnrichment

**Request:**

**Response:**

### Get url

**Method:** websocket

**Endpoint:** resource:getUrl

**DEPRECATED**

**Request:**

**Response:**

### Get resource url

**Method:** websocket

**Endpoint:** resource:getResourceUrl

**Request:**

**Response:**

### Get thumbnail url

**Method:** websocket

**Endpoint:** resource:getThumbnailUrl

**Request:**

**Response:**

### Get resource

**Method:** websocket

**Endpoint:** resource:get

**Description:** API returns resource metadata. It doesn't return resource content (e.g. comments or reactions). If resource is not found in current network, API looks for it in default network.

**Request:**

**Response:**

### Get resource from network

**Method:** websocket

**Endpoint:** resource:getResourceFromNetwork

**DEPRECATED**

**Description:** API is deprecated as all resources are stored in a default network now. Use [resource:get](#get-resource) instead.

**Request:**

**Response:**

### List belonging resources

**Method:** websocket

**Endpoint:** resource:listBelonging

**DEPRECATED**

**Description:** API is deprecated, use [resource:searchBelonging](#search-belonging-resources) instead.

**Request:**

**Response:**

### Search belonging resources

**Method:** websocket

**Endpoint:** resource:searchBelonging

**Description:** API searches resources that belong to exact place.

API subscribes user socket to belonging broadcast channel (only directory and community for now).

Examples:

* `userAIGeneration:{userId}`         - resources added to list of AI generated resources by user;
* `userSortingTable:{userId}`         - user sorting table resources;
* `userThumbnail:{userId}`            - user thumbnail resources (profile pictures);
* `user3DAvatar:{userId}`             - user 3D avatar resources;
* `userPublic:{userId}`               - user public resources, available for all;
* `roomSortingTable:{roomId}`         - room sorting table resources;
* `room:{roomId}`                     - resources in a room;
* `room:{roomId}/{propId}`            - resources in a room prop;
* `roomProps:{roomId}`                - all resources in all room props;
* `community:{communityId}`           - community resources;
* `directory:{parentResourceId}`      - directory resources.
* `applicationPublic:{applicationId}` - public belonging of application.
* `app:{applicationId}:{belonging}`   - belongings listed above with application context.

**Request:**

**Response:**

### Subscribe to belonging

**Method:** websocket

**Endpoint:** resource:subscribeToBelonging

**Description:** API subscribes user socket to belonging broadcast channel.

**Request:**

**Response:**

### Unsubscribe from belonging

**Method:** websocket

**Endpoint:** resource:unsubscribeFromBelonging

**Description:** API unsubscribes user socket from belonging broadcast channel.

**Request:**

**Response:**

### Get public music

**Method:** websocket

**Endpoint:** resource:getPublicMusic

**Description:** API returns publicly uploaded music from default network

**Request:**

**Response:**

### Create directory

**Method:** websocket

**Endpoint:** resource:createDirectory

**Description:** See [resource:create](#create-resource) for more info on available belongings.

**Request:**

**Response:**

### List parent directories

**Method:** websocket

**Endpoint:** resource:listParentDirectories

**Description:** API returns parent directories for resource, from top to bottom.

**Request:**

**Response:**

### Get stream sources

**Method:** websocket

**Endpoint:** resource:getStreamSources

**Request:**

**Response:**

### On resources added to user sorting table event

**Event:** sortingTable:addResources

**DEPRECATED**

**Data:**

### On resources deleted from user sorting table event

**Event:** sortingTable:deleteResources

**DEPRECATED**

**Data:**

### On resources added to upload session event

**Event:** resource:addedToUploadSession

**DEPRECATED**

**Data:**

### On resources deleted from upload session event

**Event:** resource:deletedFromUploadSession

**DEPRECATED**

**Data:**

### On user sorting table resource updated event

**Event:** sortingTable:resourceUpdated

**DEPRECATED**

**Data:**

### On resources added to belonging event

**Event:** resource:addedToBelonging

**Data:**

### On resources deleted from belonging event

**Event:** resource:deletedFromBelonging

**Data:**

### On resource updated event

**Event:** resource:updated

**Data:**

### On upload session resource updated event

**Event:** resource:updatedInUploadSession

**DEPRECATED**

**Data:**

### On channel resource updated event

**Event:** resource:updatedInChannel

**DEPRECATED**

**Data:**

### On sync google drive directory result event

**Event:** resource:syncGoogleDriveDirectoryResult

**Data:**

### Info link event

**Event:** link:infoEvent

**Data:**

## Models

#### Resource

#### 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
