Skip to content

Develop v1

Reference for the Develop v1 endpoints on Roblox.

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

MethodPathName
GET/v1/assets/votinggetAssetsVoting
GET/v1/gametemplatesgetGametemplates
GET/v1/groups/:groupId/universesgetGroupsGroupidUniverses
POST/v1/places/:placeIdpostPlacesPlaceid
PATCH/v1/places/:placeIdpatchPlacesPlaceid
GET/v1/places/:placeId/teamcreate/active_session/membersgetPlacesPlaceidTeamcreateActive_sessionMembers
GET/v1/pluginsgetPlugins
PATCH/v1/plugins/:pluginIdpatchPluginsPluginid
GET/v1/universes/:universeIdgetUniversesUniverseid
POST/v1/universes/:universeId/activatepostUniversesUniverseidActivate
GET/v1/universes/:universeId/activation-eligibilitygetUniversesUniverseidActivationEligibility
GET/v1/universes/:universeId/configurationgetUniversesUniverseidConfiguration
PATCH/v1/universes/:universeId/configurationpatchUniversesUniverseidConfiguration
GET/v1/universes/:universeId/configuration/vip-serversgetUniversesUniverseidConfigurationVipServers
POST/v1/universes/:universeId/deactivatepostUniversesUniverseidDeactivate
GET/v1/universes/:universeId/permissionsgetUniversesUniverseidPermissions
GET/v1/universes/:universeId/placesgetUniversesUniverseidPlaces
GET/v1/universes/:universeId/teamcreategetUniversesUniverseidTeamcreate
PATCH/v1/universes/:universeId/teamcreatepatchUniversesUniverseidTeamcreate
DELETE/v1/universes/:universeId/teamcreate/membershipsdeleteUniversesUniverseidTeamcreateMemberships
GET/v1/universes/multigetgetUniversesMultiget
GET/v1/universes/multiget/permissionsgetUniversesMultigetPermissions
GET/v1/universes/multiget/teamcreategetUniversesMultigetTeamcreate
GET/v1/universes/user-public-publish-eligibilitygetUniversesUserPublicPublishEligibility
GET/v1/user/groups/canmanagegetUserGroupsCanmanage
GET/v1/user/groups/canmanagegamesoritemsgetUserGroupsCanmanagegamesoritems
GET/v1/user/universesgetUserUniverses

GET /v1/assets/voting

Gets the voting information of the given assets

Usage
import { fetchApi } from 'rozod';
import { getAssetsVoting } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getAssetsVoting, {
assetIds: /* number */
});
NameTypeRequiredDescription
assetIdsnumberYesThe ids of the Roblox.Platform.Assets.IAsset.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
assetIdnumber
hasUserVotedboolean
canUserVoteboolean
shouldShowVotesboolean
upVotesnumber
downVotesnumber
reasonForNotAbleToVotestring

GET /v1/gametemplates

Gets a page of templates that can be used to start off making games.

Usage
import { fetchApi } from 'rozod';
import { getGametemplates } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getGametemplates, undefined);
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
gameTemplateTypestring
hasTutorialsboolean
universeobjectSee below

universe fields:

FieldTypeDescription
idnumber
namestring
descriptionstring
isArchivedboolean
rootPlaceIdnumber
isActiveboolean
privacyTypestring
creatorTypestring
creatorTargetIdnumber
creatorNamestring
createdstring
updatedstring

GET /v1/groups/:groupId/universes

Gets a list of universes for the given group.

Usage
import { fetchApi } from 'rozod';
import { getGroupsGroupidUniverses } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getGroupsGroupidUniverses, {
groupId: /* integer */,
isArchived: /* boolean? */,
cursor: /* string? */,
sortOrder: /* enum */
});
NameTypeRequiredDescription
groupIdintegerYesThe group id.
isArchivedboolean?NoWhether or not to return archived games.
cursorstring?NoThe paging cursor for the previous or next page.
sortOrderenumYesSorted by universeId
FieldTypeDescription
previousPageCursorstring
nextPageCursorstring
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
descriptionstring
isArchivedboolean
rootPlaceIdnumber
isActiveboolean
privacyTypestring
creatorTypestring
creatorTargetIdnumber
creatorNamestring
createdstring
updatedstring
StatusDescription
400Invalid groupId.

POST /v1/places/:placeId

Updates the place configuration for the place with the id placeId

Usage
import { fetchApi } from 'rozod';
import { postPlacesPlaceid } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(postPlacesPlaceid, {
placeId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
placeIdintegerYesThe place id for the place to be updated.
FieldTypeDescription
namestring
descriptionstring
FieldTypeDescription
idnumber
universeIdnumber
namestring
descriptionstring
StatusDescription
400placeId is invalid.
4010: Authorization has been denied for this request.
403Authenticated user is not authorized to manage this place.
0: Token Validation Failed

PATCH /v1/places/:placeId

Updates the place configuration for the place with the id placeId

Usage
import { fetchApi } from 'rozod';
import { patchPlacesPlaceid } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(patchPlacesPlaceid, {
placeId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
placeIdintegerYesThe place id for the place to be updated.
FieldTypeDescription
namestring
descriptionstring
FieldTypeDescription
idnumber
universeIdnumber
namestring
descriptionstring
StatusDescription
400placeId is invalid.
4010: Authorization has been denied for this request.
403Authenticated user is not authorized to manage this place.
0: Token Validation Failed

getPlacesPlaceidTeamcreateActive_sessionMembers

Section titled “getPlacesPlaceidTeamcreateActive_sessionMembers”

GET /v1/places/:placeId/teamcreate/active_session/members

List of users in the active Team Create session

Usage
import { fetchApi } from 'rozod';
import { getPlacesPlaceidTeamcreateActive_sessionMembers } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getPlacesPlaceidTeamcreateActive_sessionMembers, {
placeId: /* integer */,
cursor: /* string? */
});
NameTypeRequiredDescription
placeIdintegerYesThe place Id.
cursorstring?NoThe paging cursor for the previous or next page.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
displayNamestring
StatusDescription
4001: The universe is invalid.
5: The place is invalid.
4010: Authorization has been denied for this request.
4032: Not authorized to perform this action.
4: TeamCreate on universe is disabled.
4040: An unknown error occurred.
5006: Multiple active sessions in a Team Create place.

GET /v1/plugins

Gets plugin details by ids.

Usage
import { fetchApi } from 'rozod';
import { getPlugins } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getPlugins, {
pluginIds: /* number */
});
NameTypeRequiredDescription
pluginIdsnumberYesThe plugin ids.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
descriptionstring
commentsEnabledboolean
versionIdnumber
createdstring
updatedstring
StatusDescription
4001: Too many ids.
2: The format of the ids are invalid.

PATCH /v1/plugins/:pluginId

Updates a plugin.

Usage
import { fetchApi } from 'rozod';
import { patchPluginsPluginid } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(patchPluginsPluginid, {
pluginId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
pluginIdintegerYesThe id of the plugin.
FieldTypeDescription
namestring
descriptionstring
commentsEnabledboolean

Type: unknown

StatusDescription
4005: Description too long.
6: Text moderated.
7: Invalid name.
8: The request body is missing.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
4: Insufficient permissions.
4043: The id is invalid.

GET /v1/universes/:universeId

Gets a Roblox.Api.Develop.Models.UniverseModel.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseid } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseid, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe Universe id.
FieldTypeDescription
idnumber
namestring
descriptionstring
isArchivedboolean
rootPlaceIdnumber
isActiveboolean
privacyTypestring
creatorTypestring
creatorTargetIdnumber
creatorNamestring
createdstring
updatedstring
StatusDescription
4001: The universe does not exist.

POST /v1/universes/:universeId/activate

Activates a universes.

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

Type: unknown

StatusDescription
4001: The universe does not exist.
2: This universe does not have a root place.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
3: You are not authorized to configure this universe.
6: The root place for this universe is under review and can not be activated.
7: Creator already has the maximum number of places active.

getUniversesUniverseidActivationEligibility

Section titled “getUniversesUniverseidActivationEligibility”

GET /v1/universes/:universeId/activation-eligibility

Returns the result of various checks for a user’s eligibility to activate a given universe from private to public universeId for authenticated user

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidActivationEligibility } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseidActivationEligibility, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe id.
FieldTypeDescription
isEligibleboolean
maturityRatedboolean
isUserEligibleForPublicPublishboolean
remainingPublicPublishCountnumber
isPublicPublishboolean
isPublishToExistingUniverseboolean

GET /v1/universes/:universeId/configuration

Get settings for an owned universe.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidConfiguration } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseidConfiguration, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe Id.
FieldTypeDescription
allowPrivateServersboolean
privateServerPricenumber
isMeshTextureApiAccessAllowedboolean
isRewardedOnDemandAdsAllowedboolean
idnumber
namestring
universeAvatarType`“MorphToR6""PlayerChoice"
universeScaleType`“NoScales""AllScales”`
universeAnimationType`“Standard""PlayerChoice”`
universeCollisionType`“InnerBox""OuterBox”`
universeBodyType`“Standard""PlayerChoice”`
universeJointPositioningType`“Standard""ArtistIntent”`
isArchivedboolean
isFriendsOnlyboolean
genre`“All""Tutorial"
playableDevices`12
isForSaleboolean
pricenumber
isStudioAccessToApisAllowedboolean
privacyTypestring
isForSaleInFiatboolean
fiatBasePriceIdstring
fiatModerationStatus`“Invalid""NotModerated"
StatusDescription
4001: The universe does not exist.
4010: Authorization has been denied for this request.
4032: You are not authorized to configure this universe.

PATCH /v1/universes/:universeId/configuration

Update universe settings for an owned universe.

Usage
import { fetchApi } from 'rozod';
import { patchUniversesUniverseidConfiguration } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(patchUniversesUniverseidConfiguration, {
universeId: /* integer */,
body: { /* ... */ }
});
NameTypeRequiredDescription
universeIdintegerYesThe universeId.
FieldTypeDescription
namestring
universeAvatarType`12
universeScaleType`12`
universeAnimationType`12`
universeCollisionType`12`
universeBodyType`12`
universeJointPositioningType`12`
isArchivedboolean
isFriendsOnlyboolean
genre`01
playableDevices`12
isForSaleboolean
pricenumber
isMeshTextureApiAccessAllowedboolean
isRewardedOnDemandAdsAllowedboolean
fiatBasePriceIdstring
fiatProductChangeType`01
FieldTypeDescription
allowPrivateServersboolean
privateServerPricenumber
isMeshTextureApiAccessAllowedboolean
isRewardedOnDemandAdsAllowedboolean
idnumber
namestring
universeAvatarType`“MorphToR6""PlayerChoice"
universeScaleType`“NoScales""AllScales”`
universeAnimationType`“Standard""PlayerChoice”`
universeCollisionType`“InnerBox""OuterBox”`
universeBodyType`“Standard""PlayerChoice”`
universeJointPositioningType`“Standard""ArtistIntent”`
isArchivedboolean
isFriendsOnlyboolean
genre`“All""Tutorial"
playableDevices`12
isForSaleboolean
pricenumber
isStudioAccessToApisAllowedboolean
privacyTypestring
isForSaleInFiatboolean
fiatBasePriceIdstring
fiatModerationStatus`“Invalid""NotModerated"
StatusDescription
4001: The universe does not exist.
3: Invalid UniverseAvatarType.
4: Invalid UniverseScaleType.
5: Invalid UniverseAnimationType.
6: Invalid UniverseCollisionType.
7: New universe name or description has been rejected.
8: New universe name is too long.
10: Invalid UniverseBodyType.
11: Invalid UniverseJointPositioningType.
12: The universe has no root place.
15: Price is required when isForSale is true.
16: This game cannot be offered for sale because it is not public.
17: This game cannot be offered for sale because it has private servers enabled.
18: The game price is outside of the allowed range.
19: Invalid genre.
20: The request body is missing.
21: Invalid device type.
22: Invalid asset type.
23: Invalid value, the min must be less than or equal to the max
24: Invalid scale value
4010: Authorization has been denied for this request.
4030: Token Validation Failed
2: You are not authorized to configure this universe.
14: You are not authorized to sell games.
4099: Failed to shutdown all intances of game after changing AvatarType. The change has been reverted.

getUniversesUniverseidConfigurationVipServers

Section titled “getUniversesUniverseidConfigurationVipServers”

GET /v1/universes/:universeId/configuration/vip-servers

Get settings for an owned universe’s VIP servers.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidConfigurationVipServers } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseidConfigurationVipServers, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe Id.
FieldTypeDescription
isEnabledboolean
pricenumber
activeServersCountnumber
activeSubscriptionsCountnumber
StatusDescription
4001: The universe does not exist.
4010: Authorization has been denied for this request.
4032: You are not authorized to configure this universe.

POST /v1/universes/:universeId/deactivate

Deactivates a universe.

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

Type: unknown

StatusDescription
4001: The universe does not exist.
2: This universe does not have a root place.
4010: Authorization has been denied for this request.
4030: Token Validation Failed
3: You are not authorized to configure this universe.

GET /v1/universes/:universeId/permissions

Returns list of granted and declined permissions related to the universe with the id universeId for authenticated user

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidPermissions } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseidPermissions, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe id.
FieldTypeDescription
canManageboolean
canCloudEditboolean
StatusDescription
4001: The universe does not exist.
4010: Authorization has been denied for this request.

GET /v1/universes/:universeId/places

Gets a list of places for a universe.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidPlaces } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseidPlaces, {
universeId: /* integer */,
isUniverseCreation: /* boolean? */,
cursor: /* string? */,
sortOrder: /* enum */
});
NameTypeRequiredDescription
universeIdintegerYesThe asset id.
isUniverseCreationboolean?No
cursorstring?NoThe paging cursor for the previous or next page.
sortOrderenumYesSorted by placeId
FieldTypeDescription
previousPageCursorstring
nextPageCursorstring
dataunknown[]

GET /v1/universes/:universeId/teamcreate

Gets TeamCreate settings for an Roblox.Platform.Universes.IUniverse.

Usage
import { fetchApi } from 'rozod';
import { getUniversesUniverseidTeamcreate } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUniverseidTeamcreate, {
universeId: /* integer */
});
NameTypeRequiredDescription
universeIdintegerYesThe universe Id.
FieldTypeDescription
isEnabledboolean
StatusDescription
400Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.InvalidUniverse
4010: Authorization has been denied for this request.
403Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.Unauthorized

PATCH /v1/universes/:universeId/teamcreate

Edit team create settings for a universe.

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

Type: unknown

StatusDescription
400Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.InvalidUniverse
4010: Authorization has been denied for this request.
403Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.Unauthorized
0: Token Validation Failed

deleteUniversesUniverseidTeamcreateMemberships

Section titled “deleteUniversesUniverseidTeamcreateMemberships”

DELETE /v1/universes/:universeId/teamcreate/memberships

Removes a user from a TeamCreate permissions list.

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

Type: unknown

StatusDescription
400Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.InvalidUniverse OR Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.InvalidUser
4010: Authorization has been denied for this request.
403Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.TeamCreateDisabled
0: Token Validation Failed

GET /v1/universes/multiget

Gets a list of universes.

Usage
import { fetchApi } from 'rozod';
import { getUniversesMultiget } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesMultiget, {
ids: /* number */
});
NameTypeRequiredDescription
idsnumberYesThe universe IDs to get. Limit 100.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
descriptionstring
isArchivedboolean
rootPlaceIdnumber
isActiveboolean
privacyTypestring
creatorTypestring
creatorTargetIdnumber
creatorNamestring
createdstring
updatedstring
StatusDescription
4008: No universe IDs sent to get.
9: Too many universe IDs sent to get, the limit is:

GET /v1/universes/multiget/permissions

Returns an array of granted and declined permissions related to the universes with the ids in ids for the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getUniversesMultigetPermissions } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesMultigetPermissions, {
ids: /* number */
});
NameTypeRequiredDescription
idsnumberYesThe universe ids.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
universeIdnumber
canManageboolean
canCloudEditboolean
StatusDescription
4008: No universe IDs sent to get.
9: Too many universe IDs sent to get, the limit is:
4010: Authorization has been denied for this request.

GET /v1/universes/multiget/teamcreate

Gets TeamCreate settings for multiple universes specified by Ids

Usage
import { fetchApi } from 'rozod';
import { getUniversesMultigetTeamcreate } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesMultigetTeamcreate, {
ids: /* number */
});
NameTypeRequiredDescription
idsnumberYesThe universe Ids.
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
isEnabledboolean
StatusDescription
400Roblox.Api.Develop.ResponseEnums.TeamCreateErrors.TooManyUniverseIdsSent
4010: Authorization has been denied for this request.

GET /v1/universes/user-public-publish-eligibility

Returns the result of various checks for a user’s eligibility to publish a public universe

Usage
import { fetchApi } from 'rozod';
import { getUniversesUserPublicPublishEligibility } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUniversesUserPublicPublishEligibility, undefined);
FieldTypeDescription
isEligibleboolean
hasTransactions`“Incomplete""NotRequired"
idVerified`“Incomplete""NotRequired"
hasDevex`“Incomplete""NotRequired"

GET /v1/user/groups/canmanage

Gets a list of Groups that a user can manage.

Usage
import { fetchApi } from 'rozod';
import { getUserGroupsCanmanage } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUserGroupsCanmanage, undefined);
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/user/groups/canmanagegamesoritems

Gets a list of groups a user can manage games or items for.

Usage
import { fetchApi } from 'rozod';
import { getUserGroupsCanmanagegamesoritems } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUserGroupsCanmanagegamesoritems, undefined);
FieldTypeDescription
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/user/universes

Gets a list of universes for the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getUserUniverses } from 'rozod/lib/endpoints/developv1';
const data = await fetchApi(getUserUniverses, {
isArchived: /* boolean? */,
cursor: /* string? */,
sortOrder: /* enum */
});
NameTypeRequiredDescription
isArchivedboolean?NoWhether or not to return archived games.
cursorstring?NoThe paging cursor for the previous or next page.
sortOrderenumYesSorted by universeId
FieldTypeDescription
previousPageCursorstring
nextPageCursorstring
dataobject[]See below

data[] item fields:

FieldTypeDescription
idnumber
namestring
descriptionstring
isArchivedboolean
rootPlaceIdnumber
isActiveboolean
privacyTypestring
creatorTypestring
creatorTargetIdnumber
creatorNamestring
createdstring
updatedstring
StatusDescription
400cursor is not valid.
4010: Authorization has been denied for this request.