Assets API

Assets

https://apis.roblox.com/assets

Create Asset

POST /v1/assets

Request

Create Asset

curl --location --request POST 'https://apis.roblox.com/assets/v1/assets' \
--header 'x-api-key: {apiKey}' \
--form 'request="{
\"assetType\": \"Model\",
\"displayName\": \"Name\",
\"description\": \"This is a description\",
\"creationContext\": {
\"creator\": {
\"userId\": \"${userId}\"
}
}
}"' \
--form 'fileContent=@"/filepath/model.fbx";type=model/fbx'

Response

200 - OK
Returns the Operation ID for checking the creation status.
Returns an object
path string
metadata object
done boolean
error object
response object

Required Permissions

  • Read
  • Write
  • asset:read
  • asset:write

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Get Asset

GET /v1/assets/{assetId}

Parameters

assetId string
Path
Required
readMask string

Request

Get Asset without readMask

curl --location --request GET 'https://apis.roblox.com/assets/v1/assets/{assetId}' \
--header 'x-api-key: {apiKey}'
Get Asset with readMask

curl --location --request GET 'https://apis.roblox.com/assets/v1/assets/{assetId}?readMask={read_mask}' \
--header 'x-api-key: {apiKey}'

Response

200 - OK
Asset resource retrieved successfully.
Returns an object
assetType string
assetId number
creationContext object
description string
displayName string
path string
revisionId string
revisionCreateTime string
moderationResult object
icon string
previews array<object>
state string
socialLink object

Required Permissions

  • Read
  • asset:read

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Update Asset

PATCH /v1/assets/{assetId}

Parameters

assetId string
Path
Required
updateMask string

Request

Update Content Only and Create a New Version

curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}' \
--header 'x-api-key: {apiKey}' \
--form 'request="{\"assetId\": {assetId} }"' \
--form 'fileContent="@\"{file-path}\""'
Update Content and Metadata

Update a List of Previews

curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}?updateMask=previews' \
--header 'x-api-key: {apiKey}' \
--form 'request="{\"assetId\": \"{assetId}\", \"previews\": [{\"asset\": \"assets/123\", \"altText\": \"Your alt text.\"}]}"'
Update Social Links

Response

200 - OK
Returns the Operation ID for checking the update status / Returns the updated metadata fields.
Returns an object
application/json

{\"previews\": [\n {\"asset\": \"assets/123\", \"altText\": \"preview 1\"},\n {\"asset\": \"assets/456\", \"altText\": \"preview 2\"}\n]}
path string
metadata object
done boolean
error object
response object

Required Permissions

  • Read
  • Write
  • asset:read
  • asset:write

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Archive Asset

POST /v1/assets/{assetId}:archive

Parameters

assetId string
Path
Required

Request

Archive Asset

curl --location 'https://apis.roblox.com/assets/v1/assets/{assetid}:archive' \
--header 'x-api-key: {apiKey}' \
--header 'Content-Type: application/json'

Response

200 - OK
Asset archived succesfully successfully.
Returns an object
assetType string
assetId number
creationContext object
description string
displayName string
path string
revisionId string
revisionCreateTime string
moderationResult object
icon string
previews array<object>
state string
socialLink object

Required Permissions

  • Read
  • Write
  • asset:read
  • asset:write

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Restore Asset

POST /v1/assets/{assetId}:restore

Parameters

assetId string
Path
Required

Request

Restore Asset

curl --location 'https://apis.roblox.com/assets/v1/assets/{assetid}:restore' \
--header 'x-api-key: {apiKey}' \
--header 'Content-Type: application/json'

Response

200 - OK
Asset restored successfully.
Returns an object
assetType string
assetId number
creationContext object
description string
displayName string
path string
revisionId string
revisionCreateTime string
moderationResult object
icon string
previews array<object>
state string
socialLink object

Required Permissions

  • Read
  • Write
  • asset:read
  • asset:write

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Get Asset Version

GET /v1/assets/{assetId}/versions/{versionNumber}

Parameters

assetId string
Path
Required
versionNumber string
Path
Required

Request

Get Asset Version

curl --location 'https://apis.roblox.com/assets/v1/assets/{assetId}/versions/{versionNumber}' \
--header 'x-api-key: {apiKey}'

Response

200 - OK
Asset version retrieved successfully.
Returns an object
creationContext object
path string
moderationResult object

Required Permissions

  • Read
  • asset:read

Limits

Per API Key: 60 requests every 60 seconds per IP Address

List Asset Versions

GET /assets/v1/assets/{assetId}/versions

Parameters

assetId string
Path
Required
maxPageSize number
pageToken string

Request

List Asset Versions

curl --location 'https://apis.roblox.com/assets/v1/assets/{assetid}/versions?pageToken=&maxPageSize=' \
--header 'x-api-key: {apiKey}'

Response

200 - OK
Asset versions listed successfully.
Returns an array<object>

Required Permissions

  • Read
  • asset:read

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Rollback Asset Version

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

Parameters

assetId string
Path
Required

Request

Rollback Asset Versions

curl --location 'https://apis.roblox.com/assets/v1/assets/{assetid}/versions:rollback' \
--header 'x-api-key: {apiKey}' \
--header 'Content-Type: application/json' \
--data '{\"assetVersion\":\"assets/{assetId}/versions/{versionNumber}\"}'

Response

200 - OK
Asset rolled back successfully.
Returns an object
creationContext object
path string
moderationResult object

Required Permissions

  • Read
  • Write
  • asset:read
  • asset:write

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Get Operation

GET /v1/operations/{operationId}

Parameters

operationId string
Path
Required

Request

Get Operation

curl --location 'https://apis.roblox.com/assets/v1/operations/{operationId}' \
--header 'x-api-key: {apiKey}'

Response

200 - OK
Operation result retrieved successfully.
Returns an object
path string
metadata object
done boolean
error object
response object

Required Permissions

  • Read
  • asset:read

Limits

Per API Key: 60 requests every 60 seconds per IP Address

Objects

The following objects describe payloads that are accepted or returned. See each individual endpoint for more information on when these objects are used.

Any

Attributes

@type string

Asset

Attributes

assetType string
assetId number
creationContext object
description string
displayName string
path string
revisionId string
revisionCreateTime string
moderationResult object
icon string
previews array<object>
state string
socialLink object

AssetVersion

Attributes

creationContext object
path string
moderationResult object

CreationContext

Attributes

creator object
Required
expectedPrice number

Creator

Attributes

userId number
groupId number

ModerationResult

Attributes

moderationState string

Operation

Attributes

path string
metadata object
done boolean
error object
response object

Preview

Attributes

asset string
altText string

Attributes

title string
uri string

State

Attributes

string (enum): "Unspecified", "Active", "Archived"

Status

Attributes

code number
message string
details array<object>