{ "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 ''\n" } ], "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" } } } }