4 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

PATCH /creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId} — openapi

Updates an existing experiment.

The payload is a full replacement of the mutable experiment fields. Returns an ExperimentOperation describing the async update.

Endpoint

Method: PATCH

Path: /creator-configs-public-api/v1/experimentation/universes/{universeId}/experiments/{experimentId}

Servers:

Parameters

NameLocationRequiredDescription
universeIdpathtrue
experimentIdpathtrue
[
  {
    "name": "universeId",
    "in": "path",
    "required": true,
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  },
  {
    "name": "experimentId",
    "in": "path",
    "required": true,
    "schema": {
      "type": "string"
    }
  }
]

Request Body

{
  "content": {
    "application/json-patch+json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateExperimentData"
          }
        ],
        "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
      }
    },
    "application/json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateExperimentData"
          }
        ],
        "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
      }
    },
    "text/json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateExperimentData"
          }
        ],
        "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
      }
    },
    "application/*+json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateExperimentData"
          }
        ],
        "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
      }
    }
  },
  "required": true
}

Responses

StatusDescription
200OK
400Bad Request
401Unauthorized
404Not Found
{
  "200": {
    "description": "OK",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/UpdateExperimentResponse"
        }
      }
    }
  },
  "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": {}
        }
      }
    }
  }
}

Complete Operation Definition

{
  "tags": [
    "Experiments"
  ],
  "summary": "Updates an existing experiment.",
  "description": "The payload is a full replacement of the mutable experiment fields. Returns an\r\nExperimentOperation describing the async update.",
  "operationId": "PublicExperimentation_UpdateExperiment",
  "parameters": [
    {
      "name": "universeId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    },
    {
      "name": "experimentId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json-patch+json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateExperimentData"
            }
          ],
          "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
        }
      },
      "application/json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateExperimentData"
            }
          ],
          "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
        }
      },
      "text/json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateExperimentData"
            }
          ],
          "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
        }
      },
      "application/*+json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateExperimentData"
            }
          ],
          "description": "Request body for\r\n`PATCH /v1/experimentation/universes/{universeId}/experiments/{experimentId}`.\r\nMirrors CreatorConfigsPublicApi.Models.Experimentation.CreateExperimentData; updating is modeled as a full replace of these fields."
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/UpdateExperimentResponse"
          }
        }
      }
    },
    "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": "EXPERIMENTAL",
  "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": false
  },
  "security": [
    {
      "roblox-legacy-cookie": []
    },
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "universe:write"
      ]
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/experiments#PublicExperimentation_UpdateExperiment"
  }
}