Avatar v1
Reference for the Avatar v1 endpoints on Roblox.
Base URL: https://avatar.roblox.com
Endpoints
Section titled “Endpoints”| Method | Path | Name |
|---|---|---|
GET |
/v1/avatar |
getAvatar |
GET |
/v1/avatar-rules |
getAvatarRules |
GET |
/v1/avatar/metadata |
getAvatarMetadata |
POST |
/v1/avatar/redraw-thumbnail |
postAvatarRedrawThumbnail |
POST |
/v1/avatar/set-body-colors |
postAvatarSetBodyColors |
POST |
/v1/avatar/set-player-avatar-type |
postAvatarSetPlayerAvatarType |
POST |
/v1/avatar/set-scales |
postAvatarSetScales |
GET |
/v1/game-start-info |
getGameStartInfo |
POST |
/v1/outfits/:userOutfitId/delete |
postOutfitsUseroutfitidDelete |
GET |
/v1/outfits/:userOutfitId/details |
getOutfitsUseroutfitidDetails |
GET |
/v1/users/:userId/avatar |
getUsersUseridAvatar |
GET |
/v1/users/:userId/currently-wearing |
getUsersUseridCurrentlyWearing |
GET |
/v1/users/:userId/outfits |
getUsersUseridOutfits |
getAvatar
Section titled “getAvatar”GET /v1/avatar
Returns details about the authenticated user’s avatar.
Usage
import { fetchApi } from 'rozod';import { getAvatar } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getAvatar, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
scales |
object |
See below |
playerAvatarType |
`1 | 3` |
bodyColors |
object |
See below |
assets |
object[] |
See below |
defaultShirtApplied |
boolean |
|
defaultPantsApplied |
boolean |
|
emotes |
object[] |
See below |
scales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
bodyColors fields:
| Field | Type | Description |
|---|---|---|
headColorId |
number |
|
torsoColorId |
number |
|
rightArmColorId |
number |
|
leftArmColorId |
number |
|
rightLegColorId |
number |
|
leftLegColorId |
number |
assets[] item fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
|
assetType |
object |
See below |
currentVersionId |
number |
|
meta |
object |
See below |
availabilityStatus |
string |
|
expirationTime |
string |
|
supportsHeadShapes |
boolean |
assetType fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
meta fields:
| Field | Type | Description |
|---|---|---|
order |
number |
|
puffiness |
number |
|
position |
object |
See below |
rotation |
object |
See below |
scale |
object |
See below |
headShape |
`0 | 1 |
staticFacialAnimation |
boolean |
|
version |
number |
position fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
rotation fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
scale fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
emotes[] item fields:
| Field | Type | Description |
|---|---|---|
assetId |
number |
|
assetName |
string |
|
position |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
getAvatarRules
Section titled “getAvatarRules”GET /v1/avatar-rules
Returns the business rules related to avatars.
Usage
import { fetchApi } from 'rozod';import { getAvatarRules } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getAvatarRules, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
playerAvatarTypes |
`1 | 3[]` |
scales |
object |
See below |
wearableAssetTypes |
object[] |
See below |
accessoryRefinementTypes |
number[] |
|
accessoryRefinementLowerBounds |
object |
See below |
accessoryRefinementUpperBounds |
object |
See below |
bodyColorsPalette |
object[] |
See below |
basicBodyColorsPalette |
object[] |
See below |
minimumDeltaEBodyColorDifference |
number |
|
proportionsAndBodyTypeEnabledForUser |
boolean |
|
defaultClothingAssetLists |
object |
See below |
bundlesEnabledForUser |
boolean |
|
emotesEnabledForUser |
boolean |
scales fields:
| Field | Type | Description |
|---|---|---|
min |
number |
|
max |
number |
|
increment |
number |
wearableAssetTypes[] item fields:
| Field | Type | Description |
|---|---|---|
maxNumber |
number |
|
id |
number |
|
name |
string |
accessoryRefinementLowerBounds fields:
| Field | Type | Description |
|---|---|---|
position |
object |
See below |
rotation |
object |
See below |
scale |
object |
See below |
position fields:
| Field | Type | Description |
|---|---|---|
xPosition |
number |
|
yPosition |
number |
|
zPosition |
number |
rotation fields:
| Field | Type | Description |
|---|---|---|
xRotation |
number |
|
yRotation |
number |
|
zRotation |
number |
scale fields:
| Field | Type | Description |
|---|---|---|
xScale |
number |
|
yScale |
number |
|
zScale |
number |
accessoryRefinementUpperBounds fields:
| Field | Type | Description |
|---|---|---|
position |
object |
See below |
rotation |
object |
See below |
scale |
object |
See below |
position fields:
| Field | Type | Description |
|---|---|---|
xPosition |
number |
|
yPosition |
number |
|
zPosition |
number |
rotation fields:
| Field | Type | Description |
|---|---|---|
xRotation |
number |
|
yRotation |
number |
|
zRotation |
number |
scale fields:
| Field | Type | Description |
|---|---|---|
xScale |
number |
|
yScale |
number |
|
zScale |
number |
bodyColorsPalette[] item fields:
| Field | Type | Description |
|---|---|---|
brickColorId |
number |
|
hexColor |
string |
|
name |
string |
basicBodyColorsPalette[] item fields:
| Field | Type | Description |
|---|---|---|
brickColorId |
number |
|
hexColor |
string |
|
name |
string |
defaultClothingAssetLists fields:
| Field | Type | Description |
|---|---|---|
defaultShirtAssetIds |
number[] |
|
defaultPantAssetIds |
number[] |
getAvatarMetadata
Section titled “getAvatarMetadata”GET /v1/avatar/metadata
Returns metadata used by the avatar page of the website.
Usage
import { fetchApi } from 'rozod';import { getAvatarMetadata } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getAvatarMetadata, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
enableDefaultClothingMessage |
boolean |
|
isAvatarScaleEmbeddedInTab |
boolean |
|
isBodyTypeScaleOutOfTab |
boolean |
|
scaleHeightIncrement |
number |
|
scaleWidthIncrement |
number |
|
scaleHeadIncrement |
number |
|
scaleProportionIncrement |
number |
|
scaleBodyTypeIncrement |
number |
|
supportProportionAndBodyType |
boolean |
|
showDefaultClothingMessageOnPageLoad |
boolean |
|
areThreeDeeThumbsEnabled |
boolean |
|
isAvatarWearingApiCallsLockingOnFrontendEnabled |
boolean |
|
isOutfitHandlingOnFrontendEnabled |
boolean |
|
isJustinUiChangesEnabled |
boolean |
|
isCategoryReorgEnabled |
boolean |
|
LCEnabledInEditorAndCatalog |
boolean |
|
isLCCompletelyEnabled |
boolean |
postAvatarRedrawThumbnail
Section titled “postAvatarRedrawThumbnail”POST /v1/avatar/redraw-thumbnail
Requests the authenticated user’s thumbnail be redrawn.
Usage
import { fetchApi } from 'rozod';import { postAvatarRedrawThumbnail } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(postAvatarRedrawThumbnail, undefined);Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed |
| 429 | 1: Redrawing your avatar thumbnail is floodchecked at this time. 1: Redrawing your avatar thumbnail is floodchecked at this time |
postAvatarSetBodyColors
Section titled “postAvatarSetBodyColors”POST /v1/avatar/set-body-colors
Sets the authenticated user’s body colors.
Usage
import { fetchApi } from 'rozod';import { postAvatarSetBodyColors } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(postAvatarSetBodyColors, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
headColorId |
number |
|
torsoColorId |
number |
|
rightArmColorId |
number |
|
leftArmColorId |
number |
|
rightLegColorId |
number |
|
leftLegColorId |
number |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
success |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed |
postAvatarSetPlayerAvatarType
Section titled “postAvatarSetPlayerAvatarType”POST /v1/avatar/set-player-avatar-type
Sets the authenticated user’s player avatar type (e.g. R6 or R15).
Usage
import { fetchApi } from 'rozod';import { postAvatarSetPlayerAvatarType } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(postAvatarSetPlayerAvatarType, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
playerAvatarType |
`1 | 3` |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
success |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid playerAvatarType. Valid values are: |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 2: You are not allowed to change player avatar type. |
postAvatarSetScales
Section titled “postAvatarSetScales”POST /v1/avatar/set-scales
Sets the authenticated user’s scales.
Usage
import { fetchApi } from 'rozod';import { postAvatarSetScales } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(postAvatarSetScales, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
success |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Please pass in the scales JSON |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 3: The user does not have permissions to change scales. |
getGameStartInfo
Section titled “getGameStartInfo”GET /v1/game-start-info
The server will call this on game server start to request general information about the universe
Usage
import { fetchApi } from 'rozod';import { getGameStartInfo } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getGameStartInfo, { universeId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
gameAvatarType |
string |
|
allowCustomAnimations |
string |
|
universeAvatarCollisionType |
string |
|
universeAvatarBodyType |
string |
|
jointPositioningType |
string |
|
message |
string |
|
universeAvatarMinScales |
object |
See below |
universeAvatarMaxScales |
object |
See below |
universeAvatarAssetOverrides |
object[] |
See below |
moderationStatus |
string |
universeAvatarMinScales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
universeAvatarMaxScales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
universeAvatarAssetOverrides[] item fields:
| Field | Type | Description |
|---|---|---|
assetID |
number |
|
assetTypeID |
number |
|
isPlayerChoice |
boolean |
postOutfitsUseroutfitidDelete
Section titled “postOutfitsUseroutfitidDelete”POST /v1/outfits/:userOutfitId/delete
Deletes the outfit.
Usage
import { fetchApi } from 'rozod';import { postOutfitsUseroutfitidDelete } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(postOutfitsUseroutfitidDelete, { userOutfitId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userOutfitId |
integer |
Yes | The user outfit id. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
success |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 2: You don't have permission to delete this outfit. |
| 404 | 1: The specified userOutfitId is invalid! |
| 500 | 3: An error occurred while deleting the outfit. |
getOutfitsUseroutfitidDetails
Section titled “getOutfitsUseroutfitidDetails”GET /v1/outfits/:userOutfitId/details
Gets details about the contents of an outfit.
Usage
import { fetchApi } from 'rozod';import { getOutfitsUseroutfitidDetails } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getOutfitsUseroutfitidDetails, { userOutfitId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userOutfitId |
integer |
Yes | The user outfit id. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
id |
number |
|
universeId |
number |
|
name |
string |
|
assets |
object[] |
See below |
bodyColors |
object |
See below |
scale |
object |
See below |
playerAvatarType |
string |
|
outfitType |
string |
|
isEditable |
boolean |
|
moderationStatus |
string |
assets[] item fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
|
assetType |
object |
See below |
currentVersionId |
number |
|
meta |
object |
See below |
availabilityStatus |
string |
|
expirationTime |
string |
|
supportsHeadShapes |
boolean |
assetType fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
meta fields:
| Field | Type | Description |
|---|---|---|
order |
number |
|
puffiness |
number |
|
position |
object |
See below |
rotation |
object |
See below |
scale |
object |
See below |
headShape |
`0 | 1 |
staticFacialAnimation |
boolean |
|
version |
number |
position fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
rotation fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
scale fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
bodyColors fields:
| Field | Type | Description |
|---|---|---|
headColorId |
number |
|
torsoColorId |
number |
|
rightArmColorId |
number |
|
leftArmColorId |
number |
|
rightLegColorId |
number |
|
leftLegColorId |
number |
scale fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: The outfit for the specified userOutfit is invalid. |
| 403 | 3: The requester does not have access to the details for the given user outfit. |
| 404 | 1: The specified userOutfitId is invalid. |
getUsersUseridAvatar
Section titled “getUsersUseridAvatar”GET /v1/users/:userId/avatar
Returns details about a specified user’s avatar.
Usage
import { fetchApi } from 'rozod';import { getUsersUseridAvatar } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getUsersUseridAvatar, { userId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
scales |
object |
See below |
playerAvatarType |
`1 | 3` |
bodyColors |
object |
See below |
assets |
object[] |
See below |
defaultShirtApplied |
boolean |
|
defaultPantsApplied |
boolean |
|
emotes |
object[] |
See below |
scales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
bodyColors fields:
| Field | Type | Description |
|---|---|---|
headColorId |
number |
|
torsoColorId |
number |
|
rightArmColorId |
number |
|
leftArmColorId |
number |
|
rightLegColorId |
number |
|
leftLegColorId |
number |
assets[] item fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
|
assetType |
object |
See below |
currentVersionId |
number |
|
meta |
object |
See below |
availabilityStatus |
string |
|
expirationTime |
string |
|
supportsHeadShapes |
boolean |
assetType fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
meta fields:
| Field | Type | Description |
|---|---|---|
order |
number |
|
puffiness |
number |
|
position |
object |
See below |
rotation |
object |
See below |
scale |
object |
See below |
headShape |
`0 | 1 |
staticFacialAnimation |
boolean |
|
version |
number |
position fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
rotation fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
scale fields:
| Field | Type | Description |
|---|---|---|
X |
number |
|
Y |
number |
|
Z |
number |
emotes[] item fields:
| Field | Type | Description |
|---|---|---|
assetId |
number |
|
assetName |
string |
|
position |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: The specified user does not exist. 2: An account for the given userId does not exist! |
getUsersUseridCurrentlyWearing
Section titled “getUsersUseridCurrentlyWearing”GET /v1/users/:userId/currently-wearing
Gets a list of asset ids that the user is currently wearing.
Usage
import { fetchApi } from 'rozod';import { getUsersUseridCurrentlyWearing } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getUsersUseridCurrentlyWearing, { userId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | The user id. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
assetIds |
number[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: The specified user does not exist. 2: An account for the given userId does not exist! |
getUsersUseridOutfits
Section titled “getUsersUseridOutfits”GET /v1/users/:userId/outfits
Deprecated, user v2.
Usage
import { fetchApi } from 'rozod';import { getUsersUseridOutfits } from 'rozod/endpoints/avatarv1';
const data = await fetchApi(getUsersUseridOutfits, { userId: /* integer */, outfitType: /* string? */, page: /* integer? = 1 */, itemsPerPage: /* integer? = 25 */, isEditable: /* boolean? */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | The user id. |
outfitType |
string? |
No | The outfit type being searched for, null will return all outfitTypes. |
page |
integer? = 1 |
No | The page number of the current page of requests, default is 1. |
itemsPerPage |
integer? = 25 |
No | The max number of outfits that can be returned. |
isEditable |
boolean? |
No | Whether the outfits are editable. A null value will lead to no filtering. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
filteredCount |
number |
|
data |
object[] |
See below |
total |
number |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
|
isEditable |
boolean |
|
outfitType |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: The specified user does not exist. 2: An account for the given userId does not exist! |