Create an experiment
Creates a new experiment in draft status. name, universe, and groups are required; everything else has sensible defaults.
Returns 409 if name already exists, 422 if the named universe doesn't exist, 403 if a plan-gated option is set (sequential_testing, custom significance_threshold) on a plan that doesn't include it.
- Minimal 50/50 —
name+universe+ two equal-weight groups. - Targeted rollout — supply
targeting_gateto restrict the eligible audience andallocation_pctto enrol a slice of it. - Multivariant — three or more groups with weights summing to 10000.
- Sequential testing —
sequential_testing: truefor Premium plans.
Authorization
bearerSdkKey Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".
In: header
Header Parameters
Project the request operates on. Must match the project the SDK key belongs to.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://shipeasy.ai/api/admin/experiments" \ -H "X-Project-Id: string" \ -H "Content-Type: application/json" \ -d '{ "name": "checkout_button_color", "universe": "primary_users", "groups": [ { "name": "control", "weight": 5000 }, { "name": "treatment", "weight": 5000 } ] }'{
"id": "exp_01j7wb12c3d4e5f6g7h8j9k0l1",
"name": "checkout_button_color"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}{
"error": "string",
"code": "string",
"detail": "string"
}