Skip to content

Create A/B experiment

Requires ADMIN. Validates campaign uniqueness (one running experiment per campaign) and that variant weights sum to trafficPercent*100.

projectId
required
string

Project (tenant) identifier. Row-level tenant isolation is enforced on every query.

Media typeapplication/json
object
name
required
string
>= 1 characters <= 120 characters
campaignId
string | null
trafficPercent
integer
default: 100 >= 1 <= 100
minSampleSize
integer
default: 1000 >= 1
guardrails
object
key
additional properties
number
variants
required
Array<object>
>= 2 items
object
key
required
string
>= 1 characters <= 60 characters
weight
required
integer
<= 10000
campaignOverrides
object
key
additional properties
any

Created experiment (status=draft).

Media typeapplication/json
object
experiment
object
id
string
projectId
string
campaignId
string | null
name
string
variantsJson
string
guardrailsJson
string
trafficPercent
integer
minSampleSize
integer
status
string
startedAt
string | null
endedAt
string | null
conclusionJson
string | null
createdAt
string
updatedAt
string

Missing/invalid path input (e.g. projectId) or invalid JSON body.

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Not authenticated (401 via requireAuthenticated) or insufficient project role (403).

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Campaign already has a running experiment (error=campaign_experiment_conflict).

Media typeapplication/json
object
error
required

Human-readable error message.

string
message
string
Examplegenerated
json
{
"error": "example",
"message": "example"
}

Zod validation failed (error=‘参数校验失败’ with issues[]).

Media typeapplication/json
object
error
required
string
issues
Array<object>
object
path
string
message
string
details
Array<object>
object
key
additional properties
any
key
additional properties
any
Example
json
{
"error": "参数校验失败"
}