Skip to content

Avatar v1

Reference for the Avatar v1 endpoints on Roblox.

Base URL: https://avatar.roblox.com

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

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);
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
Status Description
401 0: Authorization has been denied for this request.

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);
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[]

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);
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

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);

Type: unknown

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

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: { /* ... */ }
});
Field Type Description
headColorId number
torsoColorId number
rightArmColorId number
leftArmColorId number
rightLegColorId number
leftLegColorId number
Field Type Description
success boolean
Status Description
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed

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: { /* ... */ }
});
Field Type Description
playerAvatarType `1 3`
Field Type Description
success boolean
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.

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: { /* ... */ }
});
Field Type Description
height number
width number
head number
depth number
proportion number
bodyType number
Field Type Description
success boolean
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.

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 */
});
Name Type Required Description
universeId integer Yes
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

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 */
});
Name Type Required Description
userOutfitId integer Yes The user outfit id.
Field Type Description
success boolean
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.

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 */
});
Name Type Required Description
userOutfitId integer Yes The user outfit id.
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
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.

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 */
});
Name Type Required Description
userId integer Yes
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
Status Description
400 1: The specified user does not exist.
2: An account for the given userId does not exist!

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 */
});
Name Type Required Description
userId integer Yes The user id.
Field Type Description
assetIds number[]
Status Description
400 1: The specified user does not exist.
2: An account for the given userId does not exist!

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? */
});
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.
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
Status Description
400 1: The specified user does not exist.
2: An account for the given userId does not exist!