Skip to main content
POST
/
v1
/
ab-tests
Create a new A/B test (experiment)
curl --request POST \
  --url https://api.verlon.ai/v1/ab-tests \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "testType": "<string>",
  "hypothesis": "<string>",
  "gateId": "<string>",
  "variantAConfig": "<unknown>",
  "variantBConfig": "<unknown>",
  "gateAId": "<string>",
  "gateBId": "<string>",
  "splitPercentage": 50,
  "sticky": true,
  "universePercentage": 100,
  "universeAssignment": "deterministic",
  "goalMetric": "<string>",
  "goalTarget": 123,
  "goalMde": 123,
  "goalMetrics": [
    "<unknown>"
  ],
  "statisticalMethod": "sequential",
  "testMode": "split",
  "shadowSampleRate": 123,
  "shadowBudgetUsd": 123,
  "immediateEvaluation": false,
  "judgeEvalSampleRate": 1,
  "guardrailMetrics": [],
  "diagnosticMetrics": [],
  "minSampleSize": 100,
  "maxRequests": 123,
  "durationDays": 123,
  "evaluationRubric": "<unknown>",
  "randomizationUnit": "user"
}
'
{
  "error": "<string>",
  "message": "<string>",
  "details": "<unknown>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.verlon.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Layer API key (prefixed sk-). Generated from the dashboard under Settings → API Keys, or via layer key create in the CLI.

Body

application/json
name
string
required
Minimum string length: 1
description
string
required
Minimum string length: 1
testType
string
required
Minimum string length: 1
hypothesis
string
gateId
string
variantAConfig
any
variantBConfig
any
gateAId
string
gateBId
string
splitPercentage
number
default:50
sticky
boolean
default:true
universePercentage
number
default:100
universeAssignment
string
default:deterministic
goalMetric
string
goalTarget
number
goalMde
number
goalMetrics
any[]
statisticalMethod
string
default:sequential
testMode
string
default:split
shadowSampleRate
number
shadowBudgetUsd
number
immediateEvaluation
boolean
default:false
judgeEvalSampleRate
number
default:1
guardrailMetrics
any[]
diagnosticMetrics
any[]
minSampleSize
number
default:100
maxRequests
number
durationDays
number
evaluationRubric
any
variantType
enum<string>
Available options:
model,
prompt,
parameters,
tools,
provider,
output_format,
other
randomizationUnit
enum<string>
default:user
Available options:
user,
session,
request

Response

Experiment created (in draft state).