Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
PUT /creator-configs-public-api/v1/configs/universes/{universeId}/repositories/{repository}/draft:overwrite — openapi
Overwrites the entire draft with the request payload.
Full overwrite of current draft. The payload is the expected final state after publish (not a merge with the draft or published config from the client’s perspective). The service aligns that intent with CMS validation by emitting explicit deletions for published keys and conditional branches omitted from the body. If a key is not included, it is interpreted as removed. When conditionalRules is included, conditionalRules.rules is authoritative for rule definitions: any conditional rule that exists on the latest published configuration but is omitted from rules is removed (same as sending an empty RPN rule). When conditionalRules is omitted, all published conditional rules are removed; entries must not use conditional branches or .RBX.conditional.* keys unless you send conditionalRules. If draftHash is provided, this call will fail if the hash doesn't match. Entry count and per-value size limits are enforced here via CreatorConfigsPublicApi.Utils.DraftValidationHelper; further schema validation is performed by Config Management.
Endpoint
Method: PUT
Path: /creator-configs-public-api/v1/configs/universes/{universeId}/repositories/{repository}/draft:overwrite
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/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
},
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
}
}
} Responses
| Status | Description |
|---|---|
| 200 | OK |
| 400 | Bad Request |
| 401 | Unauthorized |
| 404 | Not Found |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DraftHashResponse"
}
}
}
},
"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": "Overwrites the entire draft with the request payload.",
"description": "Full overwrite of current draft. The payload is the expected final state after publish (not a merge with the draft or published config from the client’s perspective).\r\nThe service aligns that intent with CMS validation by emitting explicit deletions for published keys and conditional branches omitted from the body.\r\nIf a key is not included, it is interpreted as removed.\r\nWhen `conditionalRules` is included, `conditionalRules.rules` is authoritative for rule definitions:\r\nany conditional rule that exists on the latest published configuration but is omitted from `rules` is removed (same as sending an empty RPN rule).\r\nWhen `conditionalRules` is omitted, all published conditional rules are removed; entries must not use conditional branches or `.RBX.conditional.*` keys unless you send `conditionalRules`.\r\nIf draftHash is provided, this call will fail if the hash doesn't match.\r\nEntry count and per-value size limits are enforced here via CreatorConfigsPublicApi.Utils.DraftValidationHelper; further schema validation is performed by Config Management.",
"operationId": "CreatorConfigsPublicApi_OverwriteDraft",
"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/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
},
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateDraftRequest"
}
],
"description": "Request model for draft updates: PATCH uses a partial merge; PUT `draft:overwrite` treats the body as the full intended configuration after publish."
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DraftHashResponse"
}
}
}
},
"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": 50
},
"perOauth2Authorization": {
"period": "MINUTE",
"maxInPeriod": 50
}
},
"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_OverwriteDraft"
}
}