Develop v2
Reference for the Develop v2 endpoints on Roblox.
Base URL: https://develop.roblox.com
Endpoints
Section titled “Endpoints”| Method | Path | Name |
|---|---|---|
GET |
/v2/assets/:id/versions |
getAssetsIdVersions |
GET |
/v2/places/:placeId |
getPlacesPlaceid |
PATCH |
/v2/places/:placeId |
patchPlacesPlaceid |
DELETE |
/v2/teamtest/:placeId |
deleteTeamtestPlaceid |
PATCH |
/v2/universes/:universeId/configuration |
patchUniversesUniverseidConfiguration |
getAssetsIdVersions
Section titled “getAssetsIdVersions”GET /v2/assets/:id/versions
Retrieves asset information for the specified asset ID. The authenticated user must be able to manage the asset
Usage
import { fetchApi } from 'rozod';import { getAssetsIdVersions } from 'rozod/endpoints/developv2';
const data = await fetchApi(getAssetsIdVersions, { id: /* integer */, cursor: /* string? */, sortOrder: /* enum */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
id |
integer |
Yes | The ID of the asset.Roblox.Platform.Assets.IAsset |
cursor |
string? |
No | The paging cursor for the previous or next page. |
sortOrder |
enum |
Yes | Sort by version number, default is desc. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor |
string |
|
nextPageCursor |
string |
|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
Id |
number |
|
assetId |
number |
|
assetVersionNumber |
number |
|
creatorType |
string |
|
creatorTargetId |
number |
|
creatingUniverseId |
number |
|
created |
string |
|
isEqualToCurrentPublishedVersion |
boolean |
|
isPublished |
boolean |
getPlacesPlaceid
Section titled “getPlacesPlaceid”GET /v2/places/:placeId
Gets the place configuration for the place with the id placeId
Usage
import { fetchApi } from 'rozod';import { getPlacesPlaceid } from 'rozod/endpoints/developv2';
const data = await fetchApi(getPlacesPlaceid, { placeId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
placeId |
integer |
Yes | The place id for the place to be updated. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
maxPlayerCount |
number |
|
socialSlotType |
string |
|
customSocialSlotsCount |
number |
|
allowCopying |
boolean |
|
currentSavedVersion |
number |
|
isAllGenresAllowed |
boolean |
|
allowedGearTypes |
`0 | 8 |
maxPlayersAllowed |
number |
|
created |
string |
|
updated |
string |
|
id |
number |
|
universeId |
number |
|
name |
string |
|
description |
string |
|
isRootPlace |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
| 403 | Authenticated user is not authorized to manage this place. |
| 404 | placeId Place not found. |
patchPlacesPlaceid
Section titled “patchPlacesPlaceid”PATCH /v2/places/:placeId
Updates the place configuration for the place with the id placeId
Usage
import { fetchApi } from 'rozod';import { patchPlacesPlaceid } from 'rozod/endpoints/developv2';
const data = await fetchApi(patchPlacesPlaceid, { placeId: /* integer */, body: { /* ... */ }});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
placeId |
integer |
Yes | The place id for the place to be updated. |
Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
name |
string |
|
description |
string |
|
maxPlayerCount |
number |
|
socialSlotType |
string |
|
customSocialSlotsCount |
number |
|
allowCopying |
boolean |
|
allowedGearTypes |
string[] |
|
isAllGenresAllowed |
boolean |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
maxPlayerCount |
number |
|
socialSlotType |
string |
|
customSocialSlotsCount |
number |
|
allowCopying |
boolean |
|
currentSavedVersion |
number |
|
isAllGenresAllowed |
boolean |
|
allowedGearTypes |
`0 | 8 |
maxPlayersAllowed |
number |
|
created |
string |
|
updated |
string |
|
id |
number |
|
universeId |
number |
|
name |
string |
|
description |
string |
|
isRootPlace |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
| 403 | Authenticated user is not authorized to manage this place. 0: Token Validation Failed |
| 404 | placeId Place not found. |
deleteTeamtestPlaceid
Section titled “deleteTeamtestPlaceid”DELETE /v2/teamtest/:placeId
Close a game instance that is being used for team testing
Usage
import { fetchApi } from 'rozod';import { deleteTeamtestPlaceid } from 'rozod/endpoints/developv2';
const data = await fetchApi(deleteTeamtestPlaceid, { placeId: /* integer */, gameId: /* string */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
placeId |
integer |
Yes | The Id of the place we are setting the metadata for. |
gameId |
string |
Yes | the Guid of the game instance System.Guid |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed |
patchUniversesUniverseidConfiguration
Section titled “patchUniversesUniverseidConfiguration”PATCH /v2/universes/:universeId/configuration
Update universe settings for an owned universe.
Usage
import { fetchApi } from 'rozod';import { patchUniversesUniverseidConfiguration } from 'rozod/endpoints/developv2';
const data = await fetchApi(patchUniversesUniverseidConfiguration, { universeId: /* integer */, body: { /* ... */ }});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes | The universeId. |
Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
allowPrivateServers |
boolean |
|
privateServerPrice |
number |
|
name |
string |
|
description |
string |
|
promotionalText |
string |
|
universeAvatarType |
`1 | 2 |
universeAnimationType |
`1 | 2` |
universeCollisionType |
`1 | 2` |
universeJointPositioningType |
`1 | 2` |
engineAvatarSettings |
string |
|
isArchived |
boolean |
|
isFriendsOnly |
boolean |
|
genre |
`0 | 1 |
playableDevices |
`1 | 2 |
isForSale |
boolean |
|
price |
number |
|
universeAvatarAssetOverrides |
object[] |
See below |
universeAvatarMinScales |
object |
See below |
universeAvatarMaxScales |
object |
See below |
studioAccessToApisAllowed |
boolean |
|
permissions |
object |
See below |
optInRegions |
`0 | 1[]` |
optOutRegions |
`0 | 1[]` |
isMeshTextureApiAccessAllowed |
boolean |
|
isRewardedOnDemandAdsAllowed |
boolean |
|
fiatBasePriceId |
string |
|
fiatProductChangeType |
`0 | 1 |
audiences |
`0 | 1 |
demoModeEnabled |
boolean |
universeAvatarAssetOverrides[] item fields:
| Field | Type | Description |
|---|---|---|
assetID |
number |
|
assetTypeID |
number |
|
isPlayerChoice |
boolean |
universeAvatarMinScales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
universeAvatarMaxScales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
permissions fields:
| Field | Type | Description |
|---|---|---|
IsThirdPartyTeleportAllowed |
boolean |
|
IsThirdPartyAssetAllowed |
boolean |
|
IsThirdPartyPurchaseAllowed |
boolean |
|
IsClientTeleportAllowed |
boolean |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
allowPrivateServers |
boolean |
|
privateServerPrice |
number |
|
optInRegions |
object[] |
See below |
isMeshTextureApiAccessAllowed |
boolean |
|
isRewardedOnDemandAdsAllowed |
boolean |
|
id |
number |
|
name |
string |
|
description |
string |
|
promotionalText |
string |
|
universeAvatarType |
`“MorphToR6” | “PlayerChoice” |
universeAnimationType |
`“Standard” | “PlayerChoice”` |
universeCollisionType |
`“InnerBox” | “OuterBox”` |
universeJointPositioningType |
`“Standard” | “ArtistIntent”` |
engineAvatarSettings |
string |
|
isArchived |
boolean |
|
isFriendsOnly |
boolean |
|
genre |
`“All” | “Tutorial” |
playableDevices |
`1 | 2 |
isForSale |
boolean |
|
price |
number |
|
universeAvatarAssetOverrides |
object[] |
See below |
universeAvatarMinScales |
object |
See below |
universeAvatarMaxScales |
object |
See below |
studioAccessToApisAllowed |
boolean |
|
permissions |
object |
See below |
isForSaleInFiat |
boolean |
|
fiatBasePriceId |
string |
|
fiatModerationStatus |
`“Invalid” | “NotModerated” |
audiences |
`0 | 1 |
demoModeEnabled |
boolean |
|
demoModeChangeableAfter |
string |
optInRegions[] item fields:
| Field | Type | Description |
|---|---|---|
region |
`“Unknown” | “China”` |
status |
string |
universeAvatarAssetOverrides[] item fields:
| Field | Type | Description |
|---|---|---|
assetID |
number |
|
assetTypeID |
number |
|
isPlayerChoice |
boolean |
universeAvatarMinScales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
universeAvatarMaxScales fields:
| Field | Type | Description |
|---|---|---|
height |
number |
|
width |
number |
|
head |
number |
|
depth |
number |
|
proportion |
number |
|
bodyType |
number |
permissions fields:
| Field | Type | Description |
|---|---|---|
IsThirdPartyTeleportAllowed |
boolean |
|
IsThirdPartyAssetAllowed |
boolean |
|
IsThirdPartyPurchaseAllowed |
boolean |
|
IsClientTeleportAllowed |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: 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 28: OptIn/Out Regions Not Supported. 41: You cannot change the private server price again so soon after the previous change. Please try again later. 44: The provided audience configuration is invalid. Ensure the audience list contains only supported audience values. 52: Promotional text has been rejected. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 2: You are not authorized to configure this universe. 14: You are not authorized to sell games. 29: Luobu app terms of service user agreement is missing. 30: Unknown error while updating Opt in out region. 45: The creator of this experience is not eligible to set this audience. |
| 409 | 9: Failed to shutdown all intances of game after changing AvatarType. The change has been reverted. |
| 500 | 43: Failed to update the audience configuration. The change was not applied. Please try again. |
| 503 | 53: Promotional text safety validation is temporarily unavailable. |