Publishing Places with API Keys

Place Publishing API fulfills the same functionality as Publish to Roblox in Studio plus extra permission control and automation in continuous release workflow. You can use this API to update existing places of an experience to a new version, making it useful to build a CI/CD pipeline. For example, you can call the API from a GitHub action, and it automatically pushes a binary place file to Roblox Cloud after successful integration testing.

Places on Roblox

Roblox supports experiences to have multiple places, with one starting place that all users load into when they join and optional other places that you can teleport users between. You can use Place Publishing API to publish either the starting place or other places of your experience with version control.

Before you can update an existing place of an experience, you need the place's Place ID and the experience's Universe ID. The Place ID identifies the place and the Universe ID identifies the experience. Each is unique even if your experience has only one place.

Publishing a Place

To publish an existing place of an experience with Place Publishing API:

  1. Create an API key on the Creator Dashboard. Make sure you perform the following settings:

    1. Add Place Publishing to Access Permissions.
    2. Add Write operation to your selected experience.
  2. Get the Universe ID of the experience in which you want to publish the place.

    1. Navigate to the Creations page on Creator Dashboard.
    2. Find the experience with the place that you want to update.
    3. Hover over the thumbnail of the target experience and click the ... button to display a list of options, then select Copy Universe ID from the list.
  3. Get the Place ID of the place that you want to update.

    1. Stay on the Creations page on Creator Dashboard and click the thumbnail of the target experience.
    2. On the left nevigation menu, click the Places tab.
    3. Find the place that you want to update and click its thumbnail.
    4. The Place ID is in the redirected URL. For example, in the URL https://create.roblox.com/creations/experiences/0000000/places/111111/configure, the Place ID is 111111.
  4. Add the API Key in the x-api-key header of a POST request to the API. The following two example requests reference a Roblox XML place file (.rbxlx) and a binary place file (.rbxl) at /home/placefiles/place1.rbxlx.

    XML place file request

    1$ curl --verbose --location POST 'https://apis.roblox.com/universes/v1/{universeId}/places/{placeId}/versions?versionType=Published' \
    2--header 'x-api-key: <your-api-key>' \
    3--header 'Content-Type: application/xml' \
    4-d @/home/placefiles/place1.rbxlx
    5
    Binary place file request

    1$ curl --verbose --location POST 'https://apis.roblox.com/universes/v1/{universeId}/places/{placeId}/versions?versionType=Published' \
    2--header 'x-api-key: <your-api-key>' \
    3--header 'Content-Type: application/octet-stream' \
    4--data-binary @/home/placefiles/place1.rbxl
    5

    To run the commands, replace {universeId} and {placeId} with the actual Universe ID and Place ID of the experience and place that you want to publish.

  5. If you send your request correctly, you receive a success response body with the place version number in the following format:


    1{ "versionNumber": 7 }
    2
  6. (Optional) Verify the upload in Studio or on Creator Dashboard.