rojo/.cursor/rules/roblox/reference/cloud/universes-api/v1.json
2026-02-02 12:08:47 -06:00

127 lines
4.4 KiB
JSON

{
"openapi": "3.0.1",
"info": {
"title": "Place publishing",
"description": "You can send and receive the following request and response payloads to publish and update your places on Roblox. For information on the usage of the API, see the [usage guide](/cloud/guides/usage-place-publishing.md).",
"version": "v1",
"x-roblox-extensions-version": "1.0.0"
},
"servers": [
{
"url": "https://apis.roblox.com/universes/"
}
],
"paths": {
"/v1/{universeId}/places/{placeId}/versions": {
"post": {
"tags": ["Places"],
"operationId": "Places_CreatePlaceVersionApiKey",
"x-roblox-cloud-api-operation-name": "Publish a Place",
"x-roblox-stability": "BETA",
"description": "Publish a new place or update an existing place with a new version. Provide a RBXL or RBXLX file in the data-binary.",
"parameters": [
{
"name": "universeId",
"in": "path",
"required": true,
"description": "The identifier of the experience in which you want to publish your place to. You can [copy your experience's Universe ID](/cloud/guides/usage-place-publishing.md#publishing-a-place) on **Creator Dashboard**.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "placeId",
"in": "path",
"required": true,
"description": "The identifier of your place. See [Publishing places with API keys](/cloud/guides/usage-place-publishing.md) on obtaining a Place ID.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "versionType",
"in": "query",
"description": "Can only be either: \n- `Saved`: the place file should be saved, but not published. \n - `Published`: the place file should be saved and published.",
"schema": {
"type": "string",
"nullable": true
}
}
],
"responses": {
"200": {
"description": "Returns the published place's version number.",
"content": {
"text/plain": {
"schema": {
"type": "string",
"example": "{\"versionNumber\":7}"
}
}
}
},
"400": {
"description": "Invalid request / Invalid file content."
},
"401": {
"description": "API key not valid for operation, user does not have authorization."
},
"403": {
"description": "Publish not allowed on place."
},
"404": {
"description": "Place or universe does not exist."
},
"409": {
"description": "Place not part of the universe."
},
"500": {
"description": "Server internal error / Unknown error."
}
},
"security": [
{
"roblox-api-key": ["universe-places:write"]
}
],
"x-roblox-scopes": [{ "name": "universe-places:write" }],
"x-roblox-cloud-api-operation": true,
"x-roblox-code-samples": [
{
"language": "curl",
"script": "curl --location --request POST 'https://apis.roblox.com/universes/v1/{universeId}/places/{placeId}/versions?versionType=Published' \n--header 'x-api-key: abc...' \n--header 'Content-Type: application/xml' \n--data-raw '<roblox></roblox>'\n"
}
],
"x-roblox-rate-limits": {
"perIp": {
"period": "MINUTE",
"maxInPeriod": 30
},
"perApiKeyOwner": {
"period": "MINUTE",
"maxInPeriod": 30
}
},
"x-roblox-throttling-limit": {
"perApiKey": {
"periodInSeconds": "60",
"maxInPeriod": 30
}
},
"x-roblox-size-limit": 10485760
}
}
},
"components": {
"securitySchemes": {
"roblox-api-key": {
"type": "apiKey",
"description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
"in": "header",
"name": "x-api-key"
}
}
}
}