Users v1
Reference for the Users v1 endpoints on Roblox.
Base URL: https://users.roblox.com
Endpoints
Section titled “Endpoints”| Method | Path | Name |
|---|---|---|
GET |
/v1/birthdate |
getBirthdate |
POST |
/v1/birthdate |
postBirthdate |
GET |
/v1/description |
getDescription |
POST |
/v1/description |
postDescription |
GET |
/v1/display-names/validate |
getDisplayNamesValidate |
GET |
/v1/gender |
getGender |
POST |
/v1/gender |
postGender |
POST |
/v1/usernames/users |
postUsernamesUsers |
POST |
/v1/users |
postUsers |
GET |
/v1/users/:userId |
getUsersUserid |
PATCH |
/v1/users/:userId/display-names |
patchUsersUseridDisplayNames |
GET |
/v1/users/:userId/display-names/validate |
getUsersUseridDisplayNamesValidate |
GET |
/v1/users/:userId/username-history |
getUsersUseridUsernameHistory |
GET |
/v1/users/authenticated |
getUsersAuthenticated |
GET |
/v1/users/authenticated/age-bracket |
getUsersAuthenticatedAgeBracket |
GET |
/v1/users/authenticated/country-code |
getUsersAuthenticatedCountryCode |
GET |
/v1/users/authenticated/roles |
getUsersAuthenticatedRoles |
GET |
/v1/users/search |
getUsersSearch |
getBirthdate
Section titled “getBirthdate”GET /v1/birthdate
Get the user’s birthdate
Usage
import { fetchApi } from 'rozod';import { getBirthdate } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getBirthdate, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
birthMonth |
number |
|
birthDay |
number |
|
birthYear |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: User not found. |
| 401 | 0: Authorization has been denied for this request. |
postBirthdate
Section titled “postBirthdate”POST /v1/birthdate
Update the user’s birthdate
Usage
import { fetchApi } from 'rozod';import { postBirthdate } from 'rozod/endpoints/usersv1';
const data = await fetchApi(postBirthdate, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
birthMonth |
number |
|
birthDay |
number |
|
birthYear |
number |
|
password |
string |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: User not found. 4: The birthdate provided is invalid. 8: Password is incorrect. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 2: PIN is locked. 5: Invalid birthdate change. |
| 500 | 0: An unknown error occured. 5: Invalid birthdate change. |
getDescription
Section titled “getDescription”GET /v1/description
Get the user’s description
Usage
import { fetchApi } from 'rozod';import { getDescription } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getDescription, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
description |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: User not found. |
| 401 | 0: Authorization has been denied for this request. |
postDescription
Section titled “postDescription”POST /v1/description
Update the user’s description
Usage
import { fetchApi } from 'rozod';import { postDescription } from 'rozod/endpoints/usersv1';
const data = await fetchApi(postDescription, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
description |
string |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
description |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: User not found. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 2: PIN is locked. |
| 500 | 0: An unknown error occured. |
| 503 | 3: This feature is currently disabled. Please try again later. |
getDisplayNamesValidate
Section titled “getDisplayNamesValidate”GET /v1/display-names/validate
Validate a display name for a new user.
Usage
import { fetchApi } from 'rozod';import { getDisplayNamesValidate } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getDisplayNamesValidate, { displayName: /* string */, birthdate: /* string */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
displayName |
string |
Yes | The display name. |
birthdate |
string |
Yes | The new user’s birthdate |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: 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 |
| 429 | 5: Display name updates for this user have been throttled |
getGender
Section titled “getGender”GET /v1/gender
Get the user’s gender
Usage
import { fetchApi } from 'rozod';import { getGender } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getGender, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
gender |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: User not found. |
| 401 | 0: Authorization has been denied for this request. |
postGender
Section titled “postGender”POST /v1/gender
Update the user’s gender
Usage
import { fetchApi } from 'rozod';import { postGender } from 'rozod/endpoints/usersv1';
const data = await fetchApi(postGender, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
gender |
`“Unknown” | “Male” |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: User not found. 6: The gender provided is invalid. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 2: PIN is locked. |
| 500 | 0: An unknown error occured. |
postUsernamesUsers
Section titled “postUsernamesUsers”POST /v1/usernames/users
Get users by usernames.
Usage
import { fetchApi } from 'rozod';import { postUsernamesUsers } from 'rozod/endpoints/usersv1';
const data = await fetchApi(postUsernamesUsers, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
usernames |
string[] |
|
excludeBannedUsers |
boolean |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
requestedUsername |
string |
|
hasVerifiedBadge |
boolean |
|
id |
number |
|
name |
string |
|
displayName |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: Too many usernames. |
postUsers
Section titled “postUsers”POST /v1/users
Get users by ids.
Usage
import { fetchApi } from 'rozod';import { postUsers } from 'rozod/endpoints/usersv1';
const data = await fetchApi(postUsers, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
userIds |
number[] |
|
excludeBannedUsers |
boolean |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
hasVerifiedBadge |
boolean |
|
id |
number |
|
name |
string |
|
displayName |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Too many ids. |
getUsersUserid
Section titled “getUsersUserid”GET /v1/users/:userId
Gets detailed user information by id.
Usage
import { fetchApi } from 'rozod';import { getUsersUserid } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersUserid, { userId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | The user id. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
description |
string |
|
created |
string |
|
isBanned |
boolean |
|
externalAppDisplayName |
string |
|
hasVerifiedBadge |
boolean |
|
id |
number |
|
name |
string |
|
displayName |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 404 | 3: The user id is invalid. |
patchUsersUseridDisplayNames
Section titled “patchUsersUseridDisplayNames”PATCH /v1/users/:userId/display-names
Set the display name for the authorized user.
Usage
import { fetchApi } from 'rozod';import { patchUsersUseridDisplayNames } from 'rozod/endpoints/usersv1';
const data = await fetchApi(patchUsersUseridDisplayNames, { userId: /* integer */, body: { /* ... */ }});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | the user id |
Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
newDisplayName |
string |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: 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 |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 7: The user id is invalid. |
| 429 | 5: Display name updates for this user have been throttled |
getUsersUseridDisplayNamesValidate
Section titled “getUsersUseridDisplayNamesValidate”GET /v1/users/:userId/display-names/validate
Validate a display name for an existing user.
Usage
import { fetchApi } from 'rozod';import { getUsersUseridDisplayNamesValidate } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersUseridDisplayNamesValidate, { userId: /* integer */, displayName: /* string */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | The user id. |
displayName |
string |
Yes | The display name. |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: 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 |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 7: The user id is invalid. |
| 429 | 5: Display name updates for this user have been throttled |
getUsersUseridUsernameHistory
Section titled “getUsersUseridUsernameHistory”GET /v1/users/:userId/username-history
Retrieves the username history for a particular user.
Usage
import { fetchApi } from 'rozod';import { getUsersUseridUsernameHistory } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersUseridUsernameHistory, { userId: /* integer */, cursor: /* string? */, sortOrder: /* enum */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId |
integer |
Yes | |
cursor |
string? |
No | The paging cursor for the previous or next page. |
sortOrder |
enum |
Yes | The order the results are sorted in. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor |
string |
|
nextPageCursor |
string |
|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
name |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: The user id is invalid. |
getUsersAuthenticated
Section titled “getUsersAuthenticated”GET /v1/users/authenticated
Gets the minimal authenticated user.
Usage
import { fetchApi } from 'rozod';import { getUsersAuthenticated } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticated, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
|
displayName |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
getUsersAuthenticatedAgeBracket
Section titled “getUsersAuthenticatedAgeBracket”GET /v1/users/authenticated/age-bracket
Gets the age bracket of the authenticated user.
Usage
import { fetchApi } from 'rozod';import { getUsersAuthenticatedAgeBracket } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticatedAgeBracket, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
ageBracket |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
getUsersAuthenticatedCountryCode
Section titled “getUsersAuthenticatedCountryCode”GET /v1/users/authenticated/country-code
Gets the country code of the authenticated user.
Usage
import { fetchApi } from 'rozod';import { getUsersAuthenticatedCountryCode } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticatedCountryCode, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
countryCode |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
getUsersAuthenticatedRoles
Section titled “getUsersAuthenticatedRoles”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/endpoints/usersv1';
const data = await fetchApi(getUsersAuthenticatedRoles, undefined);Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
roles |
string[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
getUsersSearch
Section titled “getUsersSearch”GET /v1/users/search
Searches for users by keyword.
Usage
import { fetchApi } from 'rozod';import { getUsersSearch } from 'rozod/endpoints/usersv1';
const data = await fetchApi(getUsersSearch, { keyword: /* string */, sessionId: /* string? */, cursor: /* string? */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
keyword |
string |
Yes | The search keyword. |
sessionId |
string? |
No | |
cursor |
string? |
No | The paging cursor for the previous or next page. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor |
string |
|
nextPageCursor |
string |
|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
previousUsernames |
string[] |
|
hasVerifiedBadge |
boolean |
|
id |
number |
|
name |
string |
|
displayName |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 5: The keyword was filtered. 6: The keyword is too short. |
| 429 | 4: Too many requests. |