Skip to content

Badges v1

Reference for the Badges v1 endpoints on Roblox.

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

MethodPathName
GET/v1/badges/:badgeIdgetBadgesBadgeid
PATCH/v1/badges/:badgeIdpatchBadgesBadgeid
POST/v1/badges/:badgeId/iconpostBadgesBadgeidIcon
GET/v1/badges/metadatagetBadgesMetadata
GET/v1/universes/:universeId/badgesgetUniversesUniverseidBadges
POST/v1/universes/:universeId/badgespostUniversesUniverseidBadges
GET/v1/universes/:universeId/free-badges-quotagetUniversesUniverseidFreeBadgesQuota
DELETE/v1/user/badges/:badgeIddeleteUserBadgesBadgeid
GET/v1/users/:userId/badgesgetUsersUseridBadges
GET/v1/users/:userId/badges/:badgeId/awarded-dategetUsersUseridBadgesBadgeidAwardedDate
GET/v1/users/:userId/badges/awarded-datesgetUsersUseridBadgesAwardedDates

GET /v1/badges/:badgeId

Gets badge information by the badge Id.

Usage
import { fetchApi } from 'rozod';
import { getBadgesBadgeid } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getBadgesBadgeid, {
badgeId: /* integer */
});
NameTypeRequiredDescription
badgeIdintegerYesThe badge Id.
FieldTypeDescription
idnumber
namestring
descriptionstring
displayNamestring
displayDescriptionstring
enabledboolean
iconImageIdnumber
displayIconImageIdnumber
createdstring
updatedstring
statisticsobjectSee below
awardingUniverseobjectSee below

statistics fields:

FieldTypeDescription
pastDayAwardedCountnumber
awardedCountnumber
winRatePercentagenumber

awardingUniverse fields:

FieldTypeDescription
idnumber
namestring
rootPlaceIdnumber
StatusDescription
4041: Badge is invalid or does not exist.
3: The game is invalid or does not exist.

PATCH /v1/badges/:badgeId

Updates badge configuration.

Usage
import { fetchApi } from 'rozod';
import { patchBadgesBadgeid } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(patchBadgesBadgeid, {
badgeId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
badgeIdintegerYesThe badge Id.
FieldTypeDescription
namestring
descriptionstring
enabledboolean

Type: unknown

StatusDescription
4006: Text moderated.
14: Invalid badge name.
15: Invalid badge description.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: You do not have permission to manage this badge.
4041: Badge is invalid or does not exist.
3: The game is invalid or does not exist.

POST /v1/badges/:badgeId/icon

Overwrites a badge icon with a new one.

Usage
import { fetchApi } from 'rozod';
import { postBadgesBadgeidIcon } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(postBadgesBadgeidIcon, {
badgeId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
badgeIdintegerYesThe badge Id.
FieldTypeDescription
FilesFile
FieldTypeDescription
targetIdnumber
StatusDescription
4006: Text moderated.
22: Icon file is not present in the request.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: You do not have permission to manage this badge.
4041: Badge is invalid or does not exist.
42913: Too many requests, try again later.

GET /v1/badges/metadata

Gets metadata about the badges system.

Usage
import { fetchApi } from 'rozod';
import { getBadgesMetadata } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getBadgesMetadata, undefined);
FieldTypeDescription
badgeCreationPricenumber
maxBadgeNameLengthnumber
maxBadgeDescriptionLengthnumber

GET /v1/universes/:universeId/badges

Gets badges by their awarding game.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidBadges } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getUniversesUniverseidBadges, {
universeId: /* integer */,
sortBy: /* enum */,
cursor: /* string? */,
sortOrder: /* enum */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe Id.
sortByenumYesThe key to sort badges by.
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
idnumber
namestring
descriptionstring
displayNamestring
displayDescriptionstring
enabledboolean
iconImageIdnumber
displayIconImageIdnumber
createdstring
updatedstring
statisticsobjectSee below
awardingUniverseobjectSee below

statistics fields:

FieldTypeDescription
pastDayAwardedCountnumber
awardedCountnumber
winRatePercentagenumber

awardingUniverse fields:

FieldTypeDescription
idnumber
namestring
rootPlaceIdnumber
StatusDescription
4043: The game is invalid or does not exist.

POST /v1/universes/:universeId/badges

Creates a new badge.

Usage
import { fetchApi } from 'rozod';
import { postUniversesUniverseidBadges } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(postUniversesUniverseidBadges, {
universeId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
universeIdintegerYesThe ID of the universe to create the badge for.
FieldTypeDescription
namestring
descriptionstring
paymentSourceType`“User""Group”`
filesFile
expectedCostnumber
isActiveboolean
FieldTypeDescription
idnumber
namestring
descriptionstring
displayNamestring
displayDescriptionstring
enabledboolean
iconImageIdnumber
displayIconImageIdnumber
awarderobjectSee below
statisticsobjectSee below
createdstring
updatedstring

awarder fields:

FieldTypeDescription
idnumber
type'Place'
namestring

statistics fields:

FieldTypeDescription
pastDayAwardedCountnumber
awardedCountnumber
winRatePercentagenumber
StatusDescription
40011: The badge icon is invalid.
14: Invalid badge name.
15: Invalid badge description.
16: Payment source is invalid.
18: Expected badge cost is different from the actual badge cost.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
6: Text moderated.
12: You do not have permission to manage this game’s badges.
17: Insufficient funds.
4043: The game is invalid or does not exist.
42913: Too many requests, try again later.

GET /v1/universes/:universeId/free-badges-quota

Gets the number of free badges left for the current UTC day by their awarding game.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidFreeBadgesQuota } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getUniversesUniverseidFreeBadgesQuota, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe Id.

Type: integer

StatusDescription
4043: The game is invalid or does not exist.

DELETE /v1/user/badges/:badgeId

Removes a badge from the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { deleteUserBadgesBadgeid } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(deleteUserBadgesBadgeid, {
badgeId: /* integer */
});
NameTypeRequiredDescription
badgeIdintegerYesThe badge Id.

Type: unknown

StatusDescription
4010: Authorization has been denied for this request.
4030: Token Validation Failed
4041: Badge is invalid or does not exist.

GET /v1/users/:userId/badges

Gets a list of badges a user has been awarded.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridBadges } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getUsersUseridBadges, {
userId: /* integer */,
cursor: /* string? */,
sortOrder: /* enum */
});
NameTypeRequiredDescription
userIdintegerYesThe user Id.
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
creatorobjectSee below
idnumber
namestring
descriptionstring
displayNamestring
displayDescriptionstring
enabledboolean
iconImageIdnumber
displayIconImageIdnumber
awarderobjectSee below
statisticsobjectSee below
createdstring
updatedstring

creator fields:

FieldTypeDescription
idnumber
namestring
typestring

awarder fields:

FieldTypeDescription
idnumber
type'Place'
namestring

statistics fields:

FieldTypeDescription
pastDayAwardedCountnumber
awardedCountnumber
winRatePercentagenumber
StatusDescription
4044: User is invalid or does not exist.

GET /v1/users/:userId/badges/:badgeId/awarded-date

Gets timestamp for when a single badge was awarded to a user.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridBadgesBadgeidAwardedDate } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getUsersUseridBadgesBadgeidAwardedDate, {
userId: /* integer */,
badgeId: /* integer */
});
NameTypeRequiredDescription
userIdintegerYesUser id.
badgeIdintegerYesBadge id.

Type: unknown

StatusDescription
4044: User is invalid or does not exist.

GET /v1/users/:userId/badges/awarded-dates

Gets timestamps for when badges were awarded to a user.

Usage
import { fetchApi } from 'rozod';
import { getUsersUseridBadgesAwardedDates } from 'rozod/lib/endpoints/badgesv1';
const data = await fetchApi(getUsersUseridBadgesAwardedDates, {
userId: /* integer */,
badgeIds: /* number */
});
NameTypeRequiredDescription
userIdintegerYesThe user Id.
badgeIdsnumberYesThe CSV of badge Ids.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
badgeIdnumber
awardedDatestring
StatusDescription
4005: Too many badge Ids.
4044: User is invalid or does not exist.