Create A/B test
POST
/api/v1/gtm/ab-tests
const url = 'https://api.ultimateteam.ai/api/v1/gtm/ab-tests';const options = { method: 'POST', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"campaign_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","hypothesis":"example","metric_name":"example","min_observations":100,"name":"example","split_ratio":{},"variants":[{"config":{},"name":"example"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.ultimateteam.ai/api/v1/gtm/ab-tests \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "campaign_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "hypothesis": "example", "metric_name": "example", "min_observations": 100, "name": "example", "split_ratio": {}, "variants": [ { "config": {}, "name": "example" } ] }'Create a new A/B test.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
ABTestCreate
Request body for creating an A/B test.
object
hypothesis
required
Hypothesis
string
metric_name
required
Metric Name
string
min_observations
Min Observations
integer
name
required
Name
string
split_ratio
Split Ratio
object
key
additional properties
any
variants
Any of:
Array<object>
VariantCreateRequest body for creating a test variant.
object
config
Config
object
key
additional properties
any
name
required
Name
string
null
Responses
Section titled “ Responses ”Successful Response
Media typeapplication/json
ABTestResponse
Response body for a single A/B test.
object
created_at
required
Created At
string format: date-time
hypothesis
required
Hypothesis
string
id
required
Id
string format: uuid
metric_name
required
Metric Name
string
min_observations
required
Min Observations
integer
name
required
Name
string
significance_threshold
required
Significance Threshold
number
split_ratio
required
Split Ratio
object
key
additional properties
any
status
required
Status
string
tenant_id
required
Tenant Id
string format: uuid
variants
Variants
Array<object>
VariantResponseResponse body for a single variant.
object
config
required
Config
object
key
additional properties
any
created_at
required
Created At
string format: date-time
id
required
Id
string format: uuid
name
required
Name
string
observations
required
Observations
integer
successes
required
Successes
integer
test_id
required
Test Id
string format: uuid
Examplegenerated
{ "campaign_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "concluded_at": "2026-04-15T12:00:00Z", "created_at": "2026-04-15T12:00:00Z", "hypothesis": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "metric_name": "example", "min_observations": 1, "name": "example", "significance_threshold": 1, "split_ratio": {}, "status": "example", "tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "variants": [ { "config": {}, "created_at": "2026-04-15T12:00:00Z", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "observations": 1, "successes": 1, "test_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ], "winner_variant": "example"}Validation Error
Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationErrorobject
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}