3 min read

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

ProductExperiment — openapi

Config-based experiment for a given product. Returned by the Get endpoint and embedded in a successful experiment operation.

Properties

NameTypeRequiredDescription
idstringfalseExperiment ID.
namestringfalseExperiment display name.
descriptionstringfalseExperiment description.
createdTimestringfalseUTC time the experiment was created.
lastUpdatedTimestringfalseUTC time the experiment was last updated.
startedTimestringfalseUTC time the experiment was started (running), if it has been.
stoppedTimestringfalseUTC time the experiment was stopped, if it has been.
statefalseLifecycle state. EXPERIMENT_STATE_DRAFT EXPERIMENT_STATE_SCHEDULED EXPERIMENT_STATE_RUNNING EXPERIMENT_STATE_COMPLETED EXPERIMENT_STATE_CANCELLED EXPERIMENT_STATE_DELETED
experimentConfigurationfalseExperiment configuration (variants and product-type-specific data).
exposurePercentintegerfalseExposure percent in range 0-100.
targetingCriteriafalseTargeting criteria scoping which users are eligible for the experiment.
operationalStatusfalseCurrent operational status of an in-flight async operation (if any). OPERATIONAL_STATUS_READY OPERATIONAL_STATUS_CREATING OPERATIONAL_STATUS_UPDATING OPERATIONAL_STATUS_STARTING OPERATIONAL_STATUS_STOPPING OPERATIONAL_STATUS_SCHEDULING OPERATIONAL_STATUS_DELETING OPERATIONAL_STATUS_RAMPING_UP OPERATIONAL_STATUS_SYNCING OPERATIONAL_STATUS_ROLLING_OUT
createdBystringfalseUser ID of the creator of the experiment.
scheduledTimestringfalseUTC time the experiment is scheduled to start, if scheduled.
durationSecondsintegerfalseExperiment duration in whole seconds.
universeMetricConfigurationfalseMetric configuration (goal + learning metrics).

Complete Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Experiment ID.",
      "nullable": true
    },
    "name": {
      "type": "string",
      "description": "Experiment display name.",
      "nullable": true
    },
    "description": {
      "type": "string",
      "description": "Experiment description.",
      "nullable": true
    },
    "createdTime": {
      "type": "string",
      "description": "UTC time the experiment was created.",
      "format": "date-time"
    },
    "lastUpdatedTime": {
      "type": "string",
      "description": "UTC time the experiment was last updated.",
      "nullable": true
    },
    "startedTime": {
      "type": "string",
      "description": "UTC time the experiment was started (running), if it has been.",
      "nullable": true
    },
    "stoppedTime": {
      "type": "string",
      "description": "UTC time the experiment was stopped, if it has been.",
      "nullable": true
    },
    "state": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExperimentState"
        }
      ],
      "description": "Lifecycle state.\n\nEXPERIMENT_STATE_DRAFT\n\nEXPERIMENT_STATE_SCHEDULED\n\nEXPERIMENT_STATE_RUNNING\n\nEXPERIMENT_STATE_COMPLETED\n\nEXPERIMENT_STATE_CANCELLED\n\nEXPERIMENT_STATE_DELETED",
      "x-enum-varnames": [
        "Draft",
        "Scheduled",
        "Running",
        "Completed",
        "Cancelled",
        "Deleted"
      ]
    },
    "experimentConfiguration": {
      "allOf": [
        {
          "$ref": "#/components/schemas/ExperimentConfiguration"
        }
      ],
      "description": "Experiment configuration (variants and product-type-specific data).",
      "nullable": true
    },
    "exposurePercent": {
      "type": "integer",
      "description": "Exposure percent in range 0-100.",
      "format": "int32"
    },
    "targetingCriteria": {
      "allOf": [
        {
          "$ref": "#/components/schemas/TargetingCriteria"
        }
      ],
      "description": "Targeting criteria scoping which users are eligible for the experiment.",
      "nullable": true
    },
    "operationalStatus": {
      "allOf": [
        {
          "$ref": "#/components/schemas/OperationalStatus"
        }
      ],
      "description": "Current operational status of an in-flight async operation (if any).\n\nOPERATIONAL_STATUS_READY\n\nOPERATIONAL_STATUS_CREATING\n\nOPERATIONAL_STATUS_UPDATING\n\nOPERATIONAL_STATUS_STARTING\n\nOPERATIONAL_STATUS_STOPPING\n\nOPERATIONAL_STATUS_SCHEDULING\n\nOPERATIONAL_STATUS_DELETING\n\nOPERATIONAL_STATUS_RAMPING_UP\n\nOPERATIONAL_STATUS_SYNCING\n\nOPERATIONAL_STATUS_ROLLING_OUT",
      "x-enum-varnames": [
        "Ready",
        "Creating",
        "Updating",
        "Starting",
        "Stopping",
        "Scheduling",
        "Deleting",
        "RampingUp",
        "Syncing",
        "RollingOut"
      ]
    },
    "createdBy": {
      "type": "string",
      "description": "User ID of the creator of the experiment.",
      "nullable": true
    },
    "scheduledTime": {
      "type": "string",
      "description": "UTC time the experiment is scheduled to start, if scheduled.",
      "nullable": true
    },
    "durationSeconds": {
      "type": "integer",
      "description": "Experiment duration in whole seconds.",
      "format": "int64"
    },
    "universeMetricConfiguration": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UniverseMetricConfiguration"
        }
      ],
      "description": "Metric configuration (goal + learning metrics).",
      "nullable": true
    }
  },
  "additionalProperties": false,
  "description": "Config-based experiment for a given product. Returned by the Get endpoint and embedded in\r\na successful experiment operation."
}