Skip to main content
POST
Create an experiment

Authorizations

Authorization
string
header
required

API key with the vk_ prefix. Create one from the dashboard.

Body

application/json
name
string
required

1-128 characters.

dataset
string
required

Dataset id or name, optionally @snap-N or @latest. A stream with no suffix pins @latest (reusing the newest snapshot when it is at the head, else cutting one).

target
object
required

{kind: "deployment", deployment_id, model?} | {kind: "model_version", model_version_id} | {kind: "none"} (score each row's recorded output).

evaluators
string[]
required

Evaluator ids or names, each optionally @N (default: the latest version). llm_judge and code evaluators only.

bindings
any

Variable name -> JSONPath, layered over every evaluator's bindings.

generation
null | object

{temperature?, max_tokens?} for the target's calls.

trials
integer<int32> | null

Runs per row, 1-10 (default 1).

baseline_experiment_id
string | null

A previous experiment to diff against at completion (comparable only on the same snapshot with identical evaluator pins).

Response

Accepted (status queued); items are materialized

One experiment.

object
string
required

Always "experiment".

id
string
required

exp_...

name
string
required
status
string
required

queued | running | awaiting_local | completed | failed | canceled

dataset_id
string
required
dataset_snapshot_id
string
required

The snapshot the run is pinned to (<dataset_id>@snap-N).

target
object
required

The target as requested.

evaluators
object[]
required

The pinned evaluator versions (+ each judge's served model).

bindings
object
required
generation
object
required

Sampling params for the target's calls. Omitted = the server default.

trials
integer<int32>
required
items_total
integer<int32>
required

Items = rows x trials; done counts finished items (ok or error).

items_done
integer<int32>
required
created_at
string<date-time>
required
target_deployment_id
string | null

Resolved at create: the deployment called, the request model sent (an adapter's versioned internal name for a model version on a fleet), the model version, and the served model's identity.

target_model
string | null
target_model_version_id
string | null
target_served_model
string | null
aggregates
object | null

Per evaluator at completion: n, ok, errors, skipped, pass_rate (all items in the denominator), mean, label_counts, critical_failures.

passed
boolean | null

Every evaluator with a pass rule passed every item with no errors; null until completed, or when no evaluator has a pass rule.

baseline_experiment_id
string | null
diff
object | null

The diff against the baseline, computed at completion.

error
string | null
created_by
string | null
started_at
string<date-time> | null
finished_at
string<date-time> | null