Skip to content

Users v1

Reference for the Users v1 endpoints on Roblox.

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

MethodPathName
GET/v1/birthdategetBirthdate
POST/v1/birthdatepostBirthdate
GET/v1/descriptiongetDescription
POST/v1/descriptionpostDescription
GET/v1/display-names/validategetDisplayNamesValidate
GET/v1/gendergetGender
POST/v1/genderpostGender
POST/v1/usernames/userspostUsernamesUsers
POST/v1/userspostUsers
GET/v1/users/:userIdgetUsersUserid
PATCH/v1/users/:userId/display-namespatchUsersUseridDisplayNames
GET/v1/users/:userId/display-names/validategetUsersUseridDisplayNamesValidate
GET/v1/users/:userId/username-historygetUsersUseridUsernameHistory
GET/v1/users/authenticatedgetUsersAuthenticated
GET/v1/users/authenticated/age-bracketgetUsersAuthenticatedAgeBracket
GET/v1/users/authenticated/country-codegetUsersAuthenticatedCountryCode
GET/v1/users/authenticated/rolesgetUsersAuthenticatedRoles
GET/v1/users/searchgetUsersSearch

GET /v1/birthdate

Get the user’s birthdate

Usage
import { fetchApi } from 'rozod';
import { getBirthdate } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getBirthdate, undefined);
FieldTypeDescription
birthMonthnumber
birthDaynumber
birthYearnumber
StatusDescription
4001: User not found.
4010: Authorization has been denied for this request.

POST /v1/birthdate

Update the user’s birthdate

Usage
import { fetchApi } from 'rozod';
import { postBirthdate } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(postBirthdate, {
body: { /* ... */ }
});
FieldTypeDescription
birthMonthnumber
birthDaynumber
birthYearnumber
passwordstring

Type: unknown

StatusDescription
4001: User not found.
4: The birthdate provided is invalid.
8: Password is incorrect.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: PIN is locked.
5: Invalid birthdate change.
5000: An unknown error occured.
5: Invalid birthdate change.

GET /v1/description

Get the user’s description

Usage
import { fetchApi } from 'rozod';
import { getDescription } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getDescription, undefined);
FieldTypeDescription
descriptionstring
StatusDescription
4001: User not found.
4010: Authorization has been denied for this request.

POST /v1/description

Update the user’s description

Usage
import { fetchApi } from 'rozod';
import { postDescription } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(postDescription, {
body: { /* ... */ }
});
FieldTypeDescription
descriptionstring
FieldTypeDescription
descriptionstring
StatusDescription
4001: User not found.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: PIN is locked.
5000: An unknown error occured.
5033: This feature is currently disabled. Please try again later.

GET /v1/display-names/validate

Validate a display name for a new user.

Usage
import { fetchApi } from 'rozod';
import { getDisplayNamesValidate } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getDisplayNamesValidate, {
displayName: /* string */,
birthdate: /* string */
});
NameTypeRequiredDescription
displayNamestringYesThe display name.
birthdatestringYesThe new user’s birthdate

Type: unknown

StatusDescription
4001: Display name is too short
2: Display name is too long
3: Display name contains invalid characters
4: Display name has been moderated
6: Request must contain a birthdate
8: Display name has too many combinations of character sets
4295: Display name updates for this user have been throttled

GET /v1/gender

Get the user’s gender

Usage
import { fetchApi } from 'rozod';
import { getGender } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getGender, undefined);
FieldTypeDescription
gendernumber
StatusDescription
4001: User not found.
4010: Authorization has been denied for this request.

POST /v1/gender

Update the user’s gender

Usage
import { fetchApi } from 'rozod';
import { postGender } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(postGender, {
body: { /* ... */ }
});
FieldTypeDescription
gender`“Unknown""Male"

Type: unknown

StatusDescription
4001: User not found.
6: The gender provided is invalid.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: PIN is locked.
5000: An unknown error occured.

POST /v1/usernames/users

Get users by usernames.

Usage
import { fetchApi } from 'rozod';
import { postUsernamesUsers } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(postUsernamesUsers, {
body: { /* ... */ }
});
FieldTypeDescription
usernamesstring[]
excludeBannedUsersboolean
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
requestedUsernamestring
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4002: Too many usernames.

POST /v1/users

Get users by ids.

Usage
import { fetchApi } from 'rozod';
import { postUsers } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(postUsers, {
body: { /* ... */ }
});
FieldTypeDescription
userIdsnumber[]
excludeBannedUsersboolean
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4001: Too many ids.

GET /v1/users/:userId

Gets detailed user information by id.

Usage
import { fetchApi } from 'rozod';
import { getUsersUserid } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersUserid, {
userId: /* integer */
});
NameTypeRequiredDescription
userIdintegerYesThe user id.
FieldTypeDescription
descriptionstring
createdstring
isBannedboolean
externalAppDisplayNamestring
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4043: The user id is invalid.

PATCH /v1/users/:userId/display-names

Set the display name for the authorized user.

Usage
import { fetchApi } from 'rozod';
import { patchUsersUseridDisplayNames } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(patchUsersUseridDisplayNames, {
userId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
userIdintegerYesthe user id
FieldTypeDescription
newDisplayNamestring

Type: unknown

StatusDescription
4001: Display name is too short
2: Display name is too long
3: Display name contains invalid characters
4: Display name has been moderated
8: Display name has too many combinations of character sets
4010: Authorization has been denied for this request.
4030: Token Validation Failed
7: The user id is invalid.
4295: Display name updates for this user have been throttled

GET /v1/users/:userId/display-names/validate

Validate a display name for an existing user.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridDisplayNamesValidate } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersUseridDisplayNamesValidate, {
userId: /* integer */,
displayName: /* string */
});
NameTypeRequiredDescription
userIdintegerYesThe user id.
displayNamestringYesThe display name.

Type: unknown

StatusDescription
4001: Display name is too short
2: Display name is too long
3: Display name contains invalid characters
4: Display name has been moderated
8: Display name has too many combinations of character sets
4010: Authorization has been denied for this request.
4037: The user id is invalid.
4295: Display name updates for this user have been throttled

GET /v1/users/:userId/username-history

Retrieves the username history for a particular user.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridUsernameHistory } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersUseridUsernameHistory, {
userId: /* integer */,
cursor: /* string? */,
sortOrder: /* enum */
});
NameTypeRequiredDescription
userIdintegerYes
cursorstring?NoThe paging cursor for the previous or next page.
sortOrderenumYesThe order the results are sorted in.
FieldTypeDescription
previousPageCursorstring
nextPageCursorstring
dataobject[]See below

data[] item fields:

FieldTypeDescription
namestring
StatusDescription
4003: The user id is invalid.

GET /v1/users/authenticated

Gets the minimal authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getUsersAuthenticated } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticated, undefined);
FieldTypeDescription
idnumber
namestring
displayNamestring
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/users/authenticated/age-bracket

Gets the age bracket of the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getUsersAuthenticatedAgeBracket } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticatedAgeBracket, undefined);
FieldTypeDescription
ageBracketnumber
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/users/authenticated/country-code

Gets the country code of the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getUsersAuthenticatedCountryCode } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticatedCountryCode, undefined);
FieldTypeDescription
countryCodestring
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/users/authenticated/roles

Gets the (public) roles of the authenticated user, such as "Soothsayer" and "BetaTester".

Usage
import { fetchApi } from 'rozod';
import { getUsersAuthenticatedRoles } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticatedRoles, undefined);
FieldTypeDescription
rolesstring[]
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/users/search

Searches for users by keyword.

Usage
import { fetchApi } from 'rozod';
import { getUsersSearch } from 'rozod/lib/endpoints/usersv1';
const data = await fetchApi(getUsersSearch, {
keyword: /* string */,
sessionId: /* string? */,
cursor: /* string? */
});
NameTypeRequiredDescription
keywordstringYesThe search keyword.
sessionIdstring?No
cursorstring?NoThe paging cursor for the previous or next page.
FieldTypeDescription
previousPageCursorstring
nextPageCursorstring
dataobject[]See below

data[] item fields:

FieldTypeDescription
previousUsernamesstring[]
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4005: The keyword was filtered.
6: The keyword is too short.
4294: Too many requests.