Amplitude · Schema

Experiment

Experiment schema from Amplitude Experiment Management API

A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser Behavior

Properties

Name Type Description
id string The unique identifier for the experiment.
projectId string The project ID the experiment belongs to.
key string The unique key used to reference the experiment in code.
name string The display name of the experiment.
description string A description of the experiment's purpose.
enabled boolean Whether the experiment is enabled.
evaluationMode string The evaluation mode, either local or remote.
bucketingKey string The property used for bucketing.
bucketingSalt string The salt used for hashing.
variants array Array of variant configurations including control and treatment groups.
deployments array Array of deployment IDs.
segments array Array of targeting segments.
state string The current state of the experiment.
rolledOutVariant string The variant key that was rolled out, if the experiment has concluded.
startDate string The date and time the experiment started running.
endDate string The date and time the experiment stopped running.
View JSON Schema on GitHub

JSON Schema

experiment-management-api-experiment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-schema/experiment-management-api-experiment-schema.json",
  "title": "Experiment",
  "description": "Experiment schema from Amplitude Experiment Management API",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique identifier for the experiment."
    },
    "projectId": {
      "type": "string",
      "description": "The project ID the experiment belongs to."
    },
    "key": {
      "type": "string",
      "description": "The unique key used to reference the experiment in code."
    },
    "name": {
      "type": "string",
      "description": "The display name of the experiment."
    },
    "description": {
      "type": "string",
      "description": "A description of the experiment's purpose."
    },
    "enabled": {
      "type": "boolean",
      "description": "Whether the experiment is enabled."
    },
    "evaluationMode": {
      "type": "string",
      "description": "The evaluation mode, either local or remote.",
      "enum": [
        "local",
        "remote"
      ]
    },
    "bucketingKey": {
      "type": "string",
      "description": "The property used for bucketing."
    },
    "bucketingSalt": {
      "type": "string",
      "description": "The salt used for hashing."
    },
    "variants": {
      "type": "array",
      "description": "Array of variant configurations including control and treatment groups.",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique key for the variant."
          },
          "name": {
            "type": "string",
            "description": "The display name of the variant."
          },
          "payload": {
            "description": "An optional JSON payload associated with the variant."
          },
          "description": {
            "type": "string",
            "description": "A description of what this variant does."
          },
          "rolloutWeight": {
            "type": "integer",
            "description": "The rollout weight as a percentage (0-100) controlling traffic allocation to this variant.",
            "minimum": 0,
            "maximum": 100
          }
        }
      }
    },
    "deployments": {
      "type": "array",
      "description": "Array of deployment IDs.",
      "items": {
        "type": "string"
      }
    },
    "segments": {
      "type": "array",
      "description": "Array of targeting segments.",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The display name of the segment."
          },
          "conditions": {
            "type": "array",
            "description": "Array of targeting conditions that define this segment.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "The condition type."
                },
                "prop": {
                  "type": "string",
                  "description": "The property to evaluate."
                },
                "op": {
                  "type": "string",
                  "description": "The comparison operator."
                },
                "values": {
                  "type": "array",
                  "description": "The values to compare against.",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "variant": {
            "type": "string",
            "description": "The variant key to assign when this segment matches."
          },
          "percentage": {
            "type": "integer",
            "description": "The percentage of matching users to include (0-100).",
            "minimum": 0,
            "maximum": 100
          }
        }
      }
    },
    "state": {
      "type": "string",
      "description": "The current state of the experiment.",
      "enum": [
        "draft",
        "running",
        "stopped",
        "archived"
      ]
    },
    "rolledOutVariant": {
      "type": "string",
      "description": "The variant key that was rolled out, if the experiment has concluded."
    },
    "startDate": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the experiment started running."
    },
    "endDate": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the experiment stopped running."
    }
  }
}