Assets API
Assets
https://apis.roblox.com/assets
Get Asset
GET /v1/assets
Parameters
assetId object
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
Other Status Codes
Required Permissions
Limits
Per API Key: 60 requests every 60 seconds per IP Address
Create Asset
POST /v1/assets
Parameters
request object
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
Other Status Codes
Required Permissions
Limits
Per API Key: 60 requests every 60 seconds per IP Address
Update Asset
PATCH /v1/assets/{assetId}
Parameters
request object
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
curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}?updateMask=description%2CdisplayName' \
--header 'x-api-key: {apiKey}' \
--form 'request="{
\"assetType\": \"{assetType}\",
\"assetId\": {assetId},
\"displayName\": \"{new display name}\",
\"description\": \"{new description}\",
\"creationContext\": {
\"creator\": {
\"userId\": {userId}
},
\"expectedPrice\":{expectedPrice}
},
}"' \
--form 'fileContent=@\"{file-path}\"'
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
curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}?updateMask=twitchSocialLink%2CgithubSocialLink' \
--header 'x-api-key: {apiKey}' \
--form 'request="{\"assetId\": \"{assetId}\", \"twitchSocialLink\": {\"title\": \"Optional title\", \"uri\": \"https://twitch.tv/your-channel\"}, \"githubSocialLink\": {\"title\": \"Optional title\", \"uri\": \"https://github.com/your-repo\"}}"'
Response
Other Status Codes
Required Permissions
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
Other Status Codes
Required Permissions
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
Other Status Codes
Required Permissions
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
Other Status Codes
Required Permissions
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
Other Status Codes
Required Permissions
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>
socialLink 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
SocialLink
Attributes
title string
uri string
Status
Attributes
code number
message string
details array<object>