Amplitude · Schema
Amplitude Experiment
Schema for an Amplitude experiment or feature flag configuration including variants, targeting segments, and deployment settings.
A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser Behavior
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier for the experiment or flag. |
| projectId | string | The project ID the experiment belongs to. |
| key | string | The unique key used to reference the experiment or flag in code. |
| name | string | The display name of the experiment or flag. |
| description | string | A description of the experiment's purpose and hypothesis. |
| type | string | The type of configuration. |
| enabled | boolean | Whether the experiment or flag is currently enabled. |
| evaluationMode | string | The evaluation mode determining where variants are computed. |
| state | string | The lifecycle state of the experiment or flag. |
| bucketingKey | string | The user property used for deterministic bucketing. |
| bucketingSalt | string | The salt used with the bucketing key for hash computation. |
| variants | array | Array of variant configurations for the experiment. |
| segments | array | Array of targeting segments that control which users see which variants. |
| deployments | array | Array of deployment IDs where this experiment is active. |
| rolledOutVariant | string | The variant key that was rolled out after the experiment concluded. |
| startDate | string | The date and time the experiment started. |
| endDate | string | The date and time the experiment ended. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://amplitude.com/schemas/amplitude/experiment.json",
"title": "Amplitude Experiment",
"description": "Schema for an Amplitude experiment or feature flag configuration including variants, targeting segments, and deployment settings.",
"type": "object",
"required": ["key"],
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the experiment or flag."
},
"projectId": {
"type": "string",
"description": "The project ID the experiment belongs to."
},
"key": {
"type": "string",
"description": "The unique key used to reference the experiment or flag in code.",
"minLength": 1,
"pattern": "^[a-z0-9_-]+$"
},
"name": {
"type": "string",
"description": "The display name of the experiment or flag.",
"maxLength": 255
},
"description": {
"type": "string",
"description": "A description of the experiment's purpose and hypothesis."
},
"type": {
"type": "string",
"description": "The type of configuration.",
"enum": ["experiment", "flag", "release"]
},
"enabled": {
"type": "boolean",
"description": "Whether the experiment or flag is currently enabled."
},
"evaluationMode": {
"type": "string",
"description": "The evaluation mode determining where variants are computed.",
"enum": ["local", "remote"]
},
"state": {
"type": "string",
"description": "The lifecycle state of the experiment or flag.",
"enum": ["draft", "running", "stopped", "active", "archived"]
},
"bucketingKey": {
"type": "string",
"description": "The user property used for deterministic bucketing."
},
"bucketingSalt": {
"type": "string",
"description": "The salt used with the bucketing key for hash computation."
},
"variants": {
"type": "array",
"description": "Array of variant configurations for the experiment.",
"items": {
"$ref": "#/$defs/Variant"
}
},
"segments": {
"type": "array",
"description": "Array of targeting segments that control which users see which variants.",
"items": {
"$ref": "#/$defs/Segment"
}
},
"deployments": {
"type": "array",
"description": "Array of deployment IDs where this experiment is active.",
"items": {
"type": "string"
}
},
"rolledOutVariant": {
"type": "string",
"description": "The variant key that was rolled out after the experiment concluded."
},
"startDate": {
"type": "string",
"format": "date-time",
"description": "The date and time the experiment started."
},
"endDate": {
"type": "string",
"format": "date-time",
"description": "The date and time the experiment ended."
}
},
"$defs": {
"Variant": {
"type": "object",
"description": "A variant in an experiment or feature flag.",
"required": ["key"],
"properties": {
"key": {
"type": "string",
"description": "The unique key identifying this variant.",
"minLength": 1
},
"name": {
"type": "string",
"description": "The display name of the variant."
},
"description": {
"type": "string",
"description": "A description of what this variant does."
},
"payload": {
"description": "An optional JSON payload associated with the variant for client-side configuration."
},
"rolloutWeight": {
"type": "integer",
"description": "The traffic allocation percentage for this variant.",
"minimum": 0,
"maximum": 100
}
}
},
"Segment": {
"type": "object",
"description": "A targeting segment that defines which users receive a specific variant.",
"properties": {
"name": {
"type": "string",
"description": "The display name of the segment."
},
"conditions": {
"type": "array",
"description": "Array of targeting conditions that must all be true for the segment to match.",
"items": {
"$ref": "#/$defs/Condition"
}
},
"variant": {
"type": "string",
"description": "The variant key to assign when this segment matches."
},
"percentage": {
"type": "integer",
"description": "The percentage of matching users to include.",
"minimum": 0,
"maximum": 100
}
}
},
"Condition": {
"type": "object",
"description": "A single targeting condition used in segment evaluation.",
"properties": {
"type": {
"type": "string",
"description": "The type of targeting condition.",
"enum": ["user_property", "cohort", "device_id", "user_id"]
},
"prop": {
"type": "string",
"description": "The property name to evaluate."
},
"op": {
"type": "string",
"description": "The comparison operator.",
"enum": ["is", "is_not", "contains", "does_not_contain", "greater_than", "less_than", "set", "not_set", "glob_match", "glob_does_not_match"]
},
"values": {
"type": "array",
"description": "The values to compare against.",
"items": {
"type": "string"
}
}
}
}
}
}