Assets API

Assets

https://apis.roblox.com/assets

Get Asset

GET /v1/assets

Parameters

assetId Asset
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

Required Permissions

  • Read
  • asset:read

Limits

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

Create Asset

POST /v1/assets

Parameters

request Asset
FormData
Required
fileContent string
FormData
Required

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: Operation
path string
metadata Any
done boolean
error Status
response Any

Required Permissions

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

Limits

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

Update Asset

PATCH /v1/assets/{assetId}

Parameters

request Asset
FormData
Required
fileContent string
FormData
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.\"}]}"'

Response

200 - OK
Returns the Operation ID for checking the update status / Returns the updated metadata fields.
Returns an object: Operation
path string
metadata Any
done boolean
error Status
response Any

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

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

Required Permissions

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

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
assetVersion string
FormData
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

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}

Request

Get Operation

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

Response

200 - OK
Returns an object: Operation
path string
metadata Any
done boolean
error Status
response Any

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
Required

Asset

Attributes

assetType string
Required
assetId number
Required
creationContext CreationContext
Required
description string
Required
displayName string
Required
path string
Required
revisionId string
Required
revisionCreateTime string
Required
moderationResult ModerationResult
Required
icon string
Required
previews array<Preview>
Required

CreationContext

Attributes

creator Creator
Required
expectedPrice number
Required

Creator

Attributes

userId number
Required
groupId number
Required

ModerationResult

Attributes

moderationState string
Required

Operation

Attributes

path string
Required
metadata Any
Required
done boolean
Required
error Status
Required
response Any
Required

Preview

Attributes

asset string
Required
altText string
Required

Status

Attributes

code number
Required
message string
Required
details array<Any>
Required