Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
POST /creator-configs-public-api/v1/configs/universes/{universeId}/repositories/{repository}/publish — openapi
Publishes draft changes.
Applies the current draft to the published config. Requires a draft hash and optional message and deployment strategy.
Endpoint
Method: POST
Path: /creator-configs-public-api/v1/configs/universes/{universeId}/repositories/{repository}/publish
Servers:
https://apis.roblox.com
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
| universeId | path | true | |
| repository | path | true | InExperienceConfig RecommendationServicesConfig DataStoresConfig ExtendedServicesConfig LeaderboardsConfig ExperienceUserConfig JourneysConfig AntiCheatConfig |
[
{
"name": "universeId",
"in": "path",
"description": "",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "repository",
"in": "path",
"description": "\n\nInExperienceConfig\n\nRecommendationServicesConfig\n\nDataStoresConfig\n\nExtendedServicesConfig\n\nLeaderboardsConfig\n\nExperienceUserConfig\n\nJourneysConfig\n\nAntiCheatConfig",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Repository"
}
],
"description": "Public API repository identifier. Only values exposed by the public API are included;\r\ninternal repository types are not exposed to allow development and testing before enabling.",
"x-enum-varnames": [
"InExperienceConfig",
"RecommendationServicesConfig",
"DataStoresConfig",
"ExtendedServicesConfig",
"LeaderboardsConfig",
"ExperienceUserConfig",
"JourneysConfig",
"AntiCheatConfig"
]
},
"x-enum-varnames": [
"InExperienceConfig",
"RecommendationServicesConfig",
"DataStoresConfig",
"ExtendedServicesConfig",
"LeaderboardsConfig",
"ExperienceUserConfig",
"JourneysConfig",
"AntiCheatConfig"
]
}
] Request Body
{
"description": "",
"content": {
"application/json-patch+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
},
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
}
}
} Responses
| Status | Description |
|---|---|
| 200 | OK |
| 400 | Bad Request |
| 401 | Unauthorized |
| 404 | Not Found |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublishDraftResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionResult"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionResult"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionResult"
}
}
}
}
} Authentication
{
"security": [
{
"roblox-legacy-cookie": []
},
{
"roblox-api-key": []
},
{
"roblox-oauth2": [
"universe:write"
]
}
],
"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.",
"name": "x-api-key",
"in": "header"
},
"roblox-legacy-cookie": {
"type": "apiKey",
"description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
"in": "cookie",
"name": ".ROBLOSECURITY"
},
"roblox-oauth2": {
"type": "oauth2",
"description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
"tokenUrl": "https://apis.roblox.com/oauth/v1/token",
"refreshUrl": "https://apis.roblox.com/oauth/v1/token",
"scopes": {}
}
}
}
}
} Related Schemas
Complete Operation Definition
{
"tags": [
"Configs"
],
"summary": "Publishes draft changes.",
"description": "Applies the current draft to the published config. Requires a draft hash and optional message and deployment strategy.",
"operationId": "CreatorConfigsPublicApi_PublishDraft",
"parameters": [
{
"name": "universeId",
"in": "path",
"description": "",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "repository",
"in": "path",
"description": "\n\nInExperienceConfig\n\nRecommendationServicesConfig\n\nDataStoresConfig\n\nExtendedServicesConfig\n\nLeaderboardsConfig\n\nExperienceUserConfig\n\nJourneysConfig\n\nAntiCheatConfig",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/Repository"
}
],
"description": "Public API repository identifier. Only values exposed by the public API are included;\r\ninternal repository types are not exposed to allow development and testing before enabling.",
"x-enum-varnames": [
"InExperienceConfig",
"RecommendationServicesConfig",
"DataStoresConfig",
"ExtendedServicesConfig",
"LeaderboardsConfig",
"ExperienceUserConfig",
"JourneysConfig",
"AntiCheatConfig"
]
},
"x-enum-varnames": [
"InExperienceConfig",
"RecommendationServicesConfig",
"DataStoresConfig",
"ExtendedServicesConfig",
"LeaderboardsConfig",
"ExperienceUserConfig",
"JourneysConfig",
"AntiCheatConfig"
]
}
],
"requestBody": {
"description": "",
"content": {
"application/json-patch+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
},
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PublishDraftRequest"
}
],
"description": "Request model for publishing a draft."
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublishDraftResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionResult"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionResult"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionResult"
}
}
}
}
},
"x-roblox-stability": "BETA",
"x-roblox-rate-limits": {
"perApiKeyOwner": {
"period": "MINUTE",
"maxInPeriod": 10
},
"perOauth2Authorization": {
"period": "MINUTE",
"maxInPeriod": 10
}
},
"x-roblox-scopes": [
{
"name": "universe:write",
"targetResourceSpecifier": "universes"
}
],
"x-roblox-engine-usability": {
"apiKeyWithHttpService": true
},
"security": [
{
"roblox-legacy-cookie": []
},
{
"roblox-api-key": []
},
{
"roblox-oauth2": [
"universe:write"
]
}
],
"externalDocs": {
"url": "https://create.roblox.com/docs/cloud/reference/features/configs#CreatorConfigsPublicApi_PublishDraft"
}
}