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. |
JSON Schema
{
"$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."
}
}
}