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