Amplitude · JSON Structure

Experiment Management Api Experiment Structure

Experiment schema from Amplitude Experiment Management API

Type: object Properties: 16
A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser Behavior

Experiment is a JSON Structure definition published by Amplitude, describing 16 properties. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

id projectId key name description enabled evaluationMode bucketingKey bucketingSalt variants deployments segments state rolledOutVariant startDate endDate

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-structure/experiment-management-api-experiment-structure.json",
  "name": "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": "int32",
            "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": "int32",
            "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": "datetime",
      "description": "The date and time the experiment started running."
    },
    "endDate": {
      "type": "datetime",
      "description": "The date and time the experiment stopped running."
    }
  }
}