Create Experiment
Create a new experiment.
/api/v1/experiments/Authentication
Syllable-API-KeyrequiredSend Syllable-API-Key in the header.
Need a credential? Create or manage an API token in the Syllable Console.
Parameters
This endpoint has no declared parameters.
Request body
application/json
body
ExperimentCreateRequest
required
4 fields
namestringrequiredThe name of the experiment
descriptionstring | nulloptionalThe hypothesis under test
variantsDaoExperimentVariantWrite[]optionalRequired by the API: submit the complete variant set with at least two variants, each using a different agent. Exactly one must be the control, every weight must be a positive whole number, and all weights must total 100.
Item schema
itemsDaoExperimentVariantWriterequiredOne variant in an experiment. Submit variants as a complete set with at least two different agents, exactly one control, and positive whole-number percentage weights totaling 100.
4 fields
namestringrequiredThe name of the variant, unique within the experiment
weightintegerrequiredThe positive whole-number percentage of the channel target's traffic this variant answers. The complete set of variant weights must total 100.
is_controlbooleanoptionalWhether this is the reference variant the others are measured against
falseagent_idintegerrequiredThe agent this variant runs
target_idintegerrequiredThe channel target being split
Request example
{
"name": "string",
"description": "string",
"variants": [
{
"name": "string",
"weight": 0,
"is_control": false,
"agent_id": 0
}
],
"target_id": 0
}Responses
200Successful Response
application/json
response
ExperimentResponse
required
12 fields
idintegerrequiredThe internal ID of the experiment
namestringrequiredThe name of the experiment
target_idinteger | nullrequiredThe channel target being split, or null if that target has since been deleted. A running experiment always has one.
variantsDaoExperimentVariantDetail[]requiredThe variants of the experiment, in a stable order
Item schema
itemsDaoExperimentVariantDetailrequiredA variant, with the name of the agent it runs resolved for display.
6 fields
idintegerrequiredThe internal ID of the variant
namestringrequiredThe name of the variant, which is the grouping key in reports
weightintegerrequiredThe percentage of the channel target's traffic this variant answers. The weights of an experiment's variants must add up to 100. (E.g., two variants with a weight of 50 each split the traffic evenly.)
is_controlbooleanrequiredWhether this is the reference variant the others are measured against
agent_idintegerrequiredThe agent this variant runs
agent_namestringrequiredThe name of that agent
descriptionstring | nulloptionalThe hypothesis under test
statusenum<string>requireddraft, running, or stopped
["draft","running","stopped"]started_atstring (date-time) | nulloptionalWhen the experiment started
stopped_atstring (date-time) | nulloptionalWhen the experiment stopped
created_atstring (date-time)requiredWhen the experiment was created
updated_atstring (date-time)requiredWhen the experiment was last written
last_updated_bystringrequiredWho last wrote it
targetDaoExperimentTargetSummary | nulloptionalThe channel target being split, resolved for display. Null when the target has since been deleted, and when the read did not load it.
5 options
idintegerrequiredThe internal ID of the channel target
targetstringrequiredThe target itself, such as a phone number
target_modeenum<string>requiredThe mode of the channel target
["voice","chat","sms","email","whatsapp"]channel_idintegerrequiredThe channel the target belongs to
channel_namestringrequiredThe name of that channel
Response example
{
"id": 0,
"name": "string",
"target_id": "string",
"variants": [
{
"id": 0,
"name": "string",
"weight": 0,
"is_control": true,
"agent_id": 0,
"agent_name": "string"
}
],
"description": "string",
"status": "string",
"started_at": "string",
"stopped_at": "string",
"created_at": "string",
"updated_at": "string",
"last_updated_by": "string",
"target": "string"
}No response body is declared.
No response body is declared.
422Validation Error
application/json
response
HTTPValidationError
required
1 field
detailValidationError[]optionalItem schema
itemsValidationErrorrequired3 fields
locstring | integer[]requiredItem schema
itemsstring | integerrequired2 options
Option 1stringrequiredOption 2integerrequiredmsgstringrequiredtypestringrequiredResponse example
{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}
