Skip to content

Assets (v1)

OpenCloud v1 reference for Assets.

Base URL: https://apis.roblox.com/assets

MethodPathName
POST/v1/assetspostAssets
GET/v1/assets/:assetIdgetAssetsAssetId
PATCH/v1/assets/:assetIdpatchAssetsAssetId
POST/v1/assets/:assetId:archivepostAssetsAssetIdArchive
POST/v1/assets/:assetId:restorepostAssetsAssetIdRestore
GET/v1/assets/:assetId/versionsgetAssetsAssetIdVersions
POST/v1/assets/:assetId/versions:rollbackpostAssetsAssetIdVersionsRollback
GET/v1/assets/:assetId/versions/:versionNumbergetAssetsAssetIdVersionsVersionNumber
GET/v1/operations/:operationIdgetOperationsOperationId

POST /v1/assets

Creates an asset with provided content and metadata. You can’t add SocialLink objects when you create an asset. Instead, use Update Asset. Provide the Asset, binary asset file path, and content type in the form data.

Scopes: asset:read, asset:write

Usage
import { fetchApi } from 'rozod';
import { postAssets } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(postAssets, {
body: { /* ... */ }
});
FieldTypeDescription
requestobjectSee below
fileContentFile

request fields:

FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
FieldTypeDescription
pathstring
doneboolean
errorobjectSee below
responseobjectSee below

error fields:

FieldTypeDescription
codenumber
messagestring

response fields:

FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
StatusDescription
400Invalid argument. Failed to parse the request or the file.
401The API key is not valid for this operation / You don’t have the authorization.
500Server internal error / Unknown error.

GET /v1/assets/:assetId

Retrieve specific asset metadata.

Scopes: asset:read

Usage
import { fetchApi } from 'rozod';
import { getAssetsAssetId } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(getAssetsAssetId, {
assetId: /* string */,
readMask: /* string? */
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
readMaskstring?NoAsset metadata fields to retrieve, including the description, display name, icon, social links, and previews. Examples: description%2CdisplayName, previews%2CtwitchSocialLink.
FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
StatusDescription
400Malformed request, likely due to an invalid read mask.
401The API key is not valid for this operation / You don’t have the authorization.
403Doesn’t have the required permission.
404Asset doesn’t exist.
500Server internal error / Unknown error.

PATCH /v1/assets/:assetId

Updates an asset with provided content and metadata, including the description, display name, icon, social links, and previews. Currently can only update the content body for Models. Icons and Previews must be Image assets. Icons must have square dimensions. Provide the Asset, binary asset file path, and content type in the form data.

Scopes: asset:read, asset:write

Usage
import { fetchApi } from 'rozod';
import { patchAssetsAssetId } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(patchAssetsAssetId, {
assetId: /* string */,
updateMask: /* string? */,
body: { /* ... */ }
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
updateMaskstring?NoAsset metadata fields to update, including the description, display name, icon, and previews. Examples: description%2CdisplayName, previews%2CtwitchSocialLink.

All fields are optional (PATCH partial update)

FieldTypeDescription
requestobjectSee below
fileContentFile

request fields:

FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
FieldTypeDescription
pathstring
doneboolean
errorobjectSee below
responseobjectSee below

error fields:

FieldTypeDescription
codenumber
messagestring

response fields:

FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
StatusDescription
400Invalid argument. Failed to parse the request or the file.
401The API key is not valid for this operation / You don’t have the authorization.
500Server internal error / Unknown error.

POST /v1/assets/:assetId:archive

Archives the asset. Archived assets disappear from the website and are no longer usable or visible in Roblox experiences, but you can restore them.

Scopes: asset:read, asset:write

Usage
import { fetchApi } from 'rozod';
import { postAssetsAssetIdArchive } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(postAssetsAssetIdArchive, {
assetId: /* string */
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
StatusDescription
400Bad request - invalid request.
403Forbidden - API key without Write scope or user doesn’t have access.
404Asset not found.

POST /v1/assets/:assetId:restore

Restores an archived asset.

Scopes: asset:read, asset:write

Usage
import { fetchApi } from 'rozod';
import { postAssetsAssetIdRestore } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(postAssetsAssetIdRestore, {
assetId: /* string */
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
StatusDescription
400Bad request - invalid request.
403Forbidden - API key without Write scope or user doesn’t have access.
404Asset not found.

GET /v1/assets/:assetId/versions

List all versions of a specific asset, with optional pagination.

Scopes: asset:read

Usage
import { fetchApi } from 'rozod';
import { getAssetsAssetIdVersions } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(getAssetsAssetIdVersions, {
assetId: /* string */,
maxPageSize: /* integer? */,
pageToken: /* string? */
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
maxPageSizeinteger?NoSpecifies the number of asset versions to include in the response. Valid values range from 1 to 50 (inclusive). Defaults to 8 when not provided.
pageTokenstring?NoA token for pagination. The value is obtained from a previous request and allows for retrieving the next page of asset versions.

Array of objects:

FieldTypeDescription
creationContextobjectSee below
pathstring
moderationResultobjectSee below
publishedboolean

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring
StatusDescription
400Bad request - invalid parameters.
403Forbidden - API key without Read scope or user doesn’t have access.
404Asset not found.

POST /v1/assets/:assetId/versions:rollback

Rollback an asset to a specific previous version. Provide the asset version path in the form data.

Scopes: asset:read, asset:write

Usage
import { fetchApi } from 'rozod';
import { postAssetsAssetIdVersionsRollback } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(postAssetsAssetIdVersionsRollback, {
assetId: /* string */,
body: { /* ... */ }
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
FieldTypeDescription
assetVersionstring
FieldTypeDescription
creationContextobjectSee below
pathstring
moderationResultobjectSee below
publishedboolean

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring
StatusDescription
400Bad request - invalid request body.
403Forbidden - API key without Write scope or user doesn’t have access.
404Asset or Asset Version not found.

GET /v1/assets/:assetId/versions/:versionNumber

Retrieve a specific asset version by the asset ID and the version number.

Scopes: asset:read

Usage
import { fetchApi } from 'rozod';
import { getAssetsAssetIdVersionsVersionNumber } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(getAssetsAssetIdVersionsVersionNumber, {
assetId: /* string */,
versionNumber: /* string */
});
NameTypeRequiredDescription
assetIdstringYesThe unique identifier of the asset.
versionNumberstringYesThe version number.
FieldTypeDescription
creationContextobjectSee below
pathstring
moderationResultobjectSee below
publishedboolean

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring
StatusDescription
403Forbidden - API key without Read scope or user doesn’t have access.
404Asset or Asset Version not found.

GET /v1/operations/:operationId

Get the result of an asset creation or update using the returned Operation ID. Requires Read for the API key permission and asset:read for OAuth 2.0 apps.

Scopes: asset:read

Usage
import { fetchApi } from 'rozod';
import { getOperationsOperationId } from 'rozod/lib/opencloud/v1/assets';
const data = await fetchApi(getOperationsOperationId, {
operationId: /* string */
});
NameTypeRequiredDescription
operationIdstringYesThe unique identifier of the operation.
FieldTypeDescription
pathstring
doneboolean
errorobjectSee below
responseobjectSee below

error fields:

FieldTypeDescription
codenumber
messagestring

response fields:

FieldTypeDescription
assetTypestring
assetIdnumber
creationContextobjectSee below
descriptionstring
displayNamestring
pathstring
revisionIdstring
revisionCreateTimestring
moderationResultobjectSee below
iconstring
previewsobject[]See below
state`“Unspecified""Active"
socialLinkobjectSee below

creationContext fields:

FieldTypeDescription
assetPrivacy`“default""restricted"
creatorobjectSee below
expectedPricenumber

creator fields:

FieldTypeDescription
userIdnumber
groupIdnumber

moderationResult fields:

FieldTypeDescription
moderationStatestring

previews[] item fields:

FieldTypeDescription
assetstring
altTextstring

socialLink fields:

FieldTypeDescription
titlestring
uristring
StatusDescription
400Invalid argument. Failed to parse the request or the file.
401The API key is not valid for this operation / You don’t have the authorization.
500Server internal error / Unknown error.