Skip to content

Avatar v1

Reference for the Avatar v1 endpoints on Roblox.

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

MethodPathName
GET/v1/avatargetAvatar
GET/v1/avatar-rulesgetAvatarRules
GET/v1/avatar/metadatagetAvatarMetadata
POST/v1/avatar/redraw-thumbnailpostAvatarRedrawThumbnail
POST/v1/avatar/set-body-colorspostAvatarSetBodyColors
POST/v1/avatar/set-player-avatar-typepostAvatarSetPlayerAvatarType
POST/v1/avatar/set-scalespostAvatarSetScales
GET/v1/game-start-infogetGameStartInfo
POST/v1/outfits/:userOutfitId/deletepostOutfitsUseroutfitidDelete
GET/v1/outfits/:userOutfitId/detailsgetOutfitsUseroutfitidDetails
GET/v1/users/:userId/avatargetUsersUseridAvatar
GET/v1/users/:userId/currently-wearinggetUsersUseridCurrentlyWearing
GET/v1/users/:userId/outfitsgetUsersUseridOutfits

GET /v1/avatar

Returns details about the authenticated user’s avatar.

Usage
import { fetchApi } from 'rozod';
import { getAvatar } from 'rozod/lib/endpoints/avatarv1';
const data = await fetchApi(getAvatar, undefined);
FieldTypeDescription
scalesobjectSee below
playerAvatarType`13`
bodyColorsobjectSee below
assetsobject[]See below
defaultShirtAppliedboolean
defaultPantsAppliedboolean
emotesobject[]See below

scales fields:

FieldTypeDescription
heightnumber
widthnumber
headnumber
depthnumber
proportionnumber
bodyTypenumber

bodyColors fields:

FieldTypeDescription
headColorIdnumber
torsoColorIdnumber
rightArmColorIdnumber
leftArmColorIdnumber
rightLegColorIdnumber
leftLegColorIdnumber

assets[] item fields:

FieldTypeDescription
idnumber
namestring
assetTypeobjectSee below
currentVersionIdnumber
metaobjectSee below
availabilityStatusstring
expirationTimestring
supportsHeadShapesboolean

assetType fields:

FieldTypeDescription
idnumber
namestring

meta fields:

FieldTypeDescription
ordernumber
puffinessnumber
positionobjectSee below
rotationobjectSee below
scaleobjectSee below
headShape`01
staticFacialAnimationboolean
versionnumber

position fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

rotation fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

scale fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

emotes[] item fields:

FieldTypeDescription
assetIdnumber
assetNamestring
positionnumber
StatusDescription
4010: 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/lib/endpoints/avatarv1';
const data = await fetchApi(getAvatarRules, undefined);
FieldTypeDescription
playerAvatarTypes`13[]`
scalesobjectSee below
wearableAssetTypesobject[]See below
accessoryRefinementTypesnumber[]
accessoryRefinementLowerBoundsobjectSee below
accessoryRefinementUpperBoundsobjectSee below
bodyColorsPaletteobject[]See below
basicBodyColorsPaletteobject[]See below
minimumDeltaEBodyColorDifferencenumber
proportionsAndBodyTypeEnabledForUserboolean
defaultClothingAssetListsobjectSee below
bundlesEnabledForUserboolean
emotesEnabledForUserboolean

scales fields:

FieldTypeDescription
minnumber
maxnumber
incrementnumber

wearableAssetTypes[] item fields:

FieldTypeDescription
maxNumbernumber
idnumber
namestring

accessoryRefinementLowerBounds fields:

FieldTypeDescription
positionobjectSee below
rotationobjectSee below
scaleobjectSee below

position fields:

FieldTypeDescription
xPositionnumber
yPositionnumber
zPositionnumber

rotation fields:

FieldTypeDescription
xRotationnumber
yRotationnumber
zRotationnumber

scale fields:

FieldTypeDescription
xScalenumber
yScalenumber
zScalenumber

accessoryRefinementUpperBounds fields:

FieldTypeDescription
positionobjectSee below
rotationobjectSee below
scaleobjectSee below

position fields:

FieldTypeDescription
xPositionnumber
yPositionnumber
zPositionnumber

rotation fields:

FieldTypeDescription
xRotationnumber
yRotationnumber
zRotationnumber

scale fields:

FieldTypeDescription
xScalenumber
yScalenumber
zScalenumber

bodyColorsPalette[] item fields:

FieldTypeDescription
brickColorIdnumber
hexColorstring
namestring

basicBodyColorsPalette[] item fields:

FieldTypeDescription
brickColorIdnumber
hexColorstring
namestring

defaultClothingAssetLists fields:

FieldTypeDescription
defaultShirtAssetIdsnumber[]
defaultPantAssetIdsnumber[]

GET /v1/avatar/metadata

Returns metadata used by the avatar page of the website.

Usage
import { fetchApi } from 'rozod';
import { getAvatarMetadata } from 'rozod/lib/endpoints/avatarv1';
const data = await fetchApi(getAvatarMetadata, undefined);
FieldTypeDescription
enableDefaultClothingMessageboolean
isAvatarScaleEmbeddedInTabboolean
isBodyTypeScaleOutOfTabboolean
scaleHeightIncrementnumber
scaleWidthIncrementnumber
scaleHeadIncrementnumber
scaleProportionIncrementnumber
scaleBodyTypeIncrementnumber
supportProportionAndBodyTypeboolean
showDefaultClothingMessageOnPageLoadboolean
areThreeDeeThumbsEnabledboolean
isAvatarWearingApiCallsLockingOnFrontendEnabledboolean
isOutfitHandlingOnFrontendEnabledboolean
isJustinUiChangesEnabledboolean
isCategoryReorgEnabledboolean
LCEnabledInEditorAndCatalogboolean
isLCCompletelyEnabledboolean

POST /v1/avatar/redraw-thumbnail

Requests the authenticated user’s thumbnail be redrawn.

Usage
import { fetchApi } from 'rozod';
import { postAvatarRedrawThumbnail } from 'rozod/lib/endpoints/avatarv1';
const data = await fetchApi(postAvatarRedrawThumbnail, undefined);

Type: unknown

StatusDescription
4010: Authorization has been denied for this request.
4030: Token Validation Failed
4291: 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/lib/endpoints/avatarv1';
const data = await fetchApi(postAvatarSetBodyColors, {
body: { /* ... */ }
});
FieldTypeDescription
headColorIdnumber
torsoColorIdnumber
rightArmColorIdnumber
leftArmColorIdnumber
rightLegColorIdnumber
leftLegColorIdnumber
FieldTypeDescription
successboolean
StatusDescription
4010: Authorization has been denied for this request.
4030: 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/lib/endpoints/avatarv1';
const data = await fetchApi(postAvatarSetPlayerAvatarType, {
body: { /* ... */ }
});
FieldTypeDescription
playerAvatarType`13`
FieldTypeDescription
successboolean
StatusDescription
4001: Invalid playerAvatarType. Valid values are:
4010: Authorization has been denied for this request.
4030: 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/lib/endpoints/avatarv1';
const data = await fetchApi(postAvatarSetScales, {
body: { /* ... */ }
});
FieldTypeDescription
heightnumber
widthnumber
headnumber
depthnumber
proportionnumber
bodyTypenumber
FieldTypeDescription
successboolean
StatusDescription
4001: Please pass in the scales JSON
4010: Authorization has been denied for this request.
4030: 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/lib/endpoints/avatarv1';
const data = await fetchApi(getGameStartInfo, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYes
FieldTypeDescription
gameAvatarTypestring
allowCustomAnimationsstring
universeAvatarCollisionTypestring
universeAvatarBodyTypestring
jointPositioningTypestring
messagestring
universeAvatarMinScalesobjectSee below
universeAvatarMaxScalesobjectSee below
universeAvatarAssetOverridesobject[]See below
moderationStatusstring

universeAvatarMinScales fields:

FieldTypeDescription
heightnumber
widthnumber
headnumber
depthnumber
proportionnumber
bodyTypenumber

universeAvatarMaxScales fields:

FieldTypeDescription
heightnumber
widthnumber
headnumber
depthnumber
proportionnumber
bodyTypenumber

universeAvatarAssetOverrides[] item fields:

FieldTypeDescription
assetIDnumber
assetTypeIDnumber
isPlayerChoiceboolean

POST /v1/outfits/:userOutfitId/delete

Deletes the outfit.

Usage
import { fetchApi } from 'rozod';
import { postOutfitsUseroutfitidDelete } from 'rozod/lib/endpoints/avatarv1';
const data = await fetchApi(postOutfitsUseroutfitidDelete, {
userOutfitId: /* integer */
});
NameTypeRequiredDescription
userOutfitIdintegerYesThe user outfit id.
FieldTypeDescription
successboolean
StatusDescription
4001: The specified userOutfitId is invalid!
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: You don’t have permission to delete this outfit.
5003: 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/lib/endpoints/avatarv1';
const data = await fetchApi(getOutfitsUseroutfitidDetails, {
userOutfitId: /* integer */
});
NameTypeRequiredDescription
userOutfitIdintegerYesThe user outfit id.
FieldTypeDescription
idnumber
universeIdnumber
namestring
assetsobject[]See below
bodyColorsobjectSee below
scaleobjectSee below
playerAvatarTypestring
outfitTypestring
isEditableboolean
moderationStatusstring

assets[] item fields:

FieldTypeDescription
idnumber
namestring
assetTypeobjectSee below
currentVersionIdnumber
metaobjectSee below
availabilityStatusstring
expirationTimestring
supportsHeadShapesboolean

assetType fields:

FieldTypeDescription
idnumber
namestring

meta fields:

FieldTypeDescription
ordernumber
puffinessnumber
positionobjectSee below
rotationobjectSee below
scaleobjectSee below
headShape`01
staticFacialAnimationboolean
versionnumber

position fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

rotation fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

scale fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

bodyColors fields:

FieldTypeDescription
headColorIdnumber
torsoColorIdnumber
rightArmColorIdnumber
leftArmColorIdnumber
rightLegColorIdnumber
leftLegColorIdnumber

scale fields:

FieldTypeDescription
heightnumber
widthnumber
headnumber
depthnumber
proportionnumber
bodyTypenumber
StatusDescription
4001: The specified userOutfitId is invalid.
2: The outfit for the specified userOutfit is invalid.
4033: The requester does not have access to the details for the given user outfit.

GET /v1/users/:userId/avatar

Returns details about a specified user’s avatar.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridAvatar } from 'rozod/lib/endpoints/avatarv1';
const data = await fetchApi(getUsersUseridAvatar, {
userId: /* integer */
});
NameTypeRequiredDescription
userIdintegerYes
FieldTypeDescription
scalesobjectSee below
playerAvatarType`13`
bodyColorsobjectSee below
assetsobject[]See below
defaultShirtAppliedboolean
defaultPantsAppliedboolean
emotesobject[]See below

scales fields:

FieldTypeDescription
heightnumber
widthnumber
headnumber
depthnumber
proportionnumber
bodyTypenumber

bodyColors fields:

FieldTypeDescription
headColorIdnumber
torsoColorIdnumber
rightArmColorIdnumber
leftArmColorIdnumber
rightLegColorIdnumber
leftLegColorIdnumber

assets[] item fields:

FieldTypeDescription
idnumber
namestring
assetTypeobjectSee below
currentVersionIdnumber
metaobjectSee below
availabilityStatusstring
expirationTimestring
supportsHeadShapesboolean

assetType fields:

FieldTypeDescription
idnumber
namestring

meta fields:

FieldTypeDescription
ordernumber
puffinessnumber
positionobjectSee below
rotationobjectSee below
scaleobjectSee below
headShape`01
staticFacialAnimationboolean
versionnumber

position fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

rotation fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

scale fields:

FieldTypeDescription
Xnumber
Ynumber
Znumber

emotes[] item fields:

FieldTypeDescription
assetIdnumber
assetNamestring
positionnumber
StatusDescription
4001: 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/lib/endpoints/avatarv1';
const data = await fetchApi(getUsersUseridCurrentlyWearing, {
userId: /* integer */
});
NameTypeRequiredDescription
userIdintegerYesThe user id.
FieldTypeDescription
assetIdsnumber[]
StatusDescription
4001: 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/lib/endpoints/avatarv1';
const data = await fetchApi(getUsersUseridOutfits, {
userId: /* integer */,
outfitType: /* string? */,
page: /* integer? = 1 */,
itemsPerPage: /* integer? = 25 */,
isEditable: /* boolean? */
});
NameTypeRequiredDescription
userIdintegerYesThe user id.
outfitTypestring?NoThe outfit type being searched for, null will return all outfitTypes.
pageinteger? = 1NoThe page number of the current page of requests, default is 1.
itemsPerPageinteger? = 25NoThe max number of outfits that can be returned.
isEditableboolean?NoWhether the outfits are editable. A null value will lead to no filtering.
FieldTypeDescription
filteredCountnumber
dataobject[]See below
totalnumber

data[] item fields:

FieldTypeDescription
idnumber
namestring
isEditableboolean
outfitTypestring
StatusDescription
4001: The specified user does not exist.
2: An account for the given userId does not exist!