Evaluate — API reference

Judges, scores, enrichments, datasets, human annotations & review, and pre-prod eval runs.

Generated from the live OpenAPI schema (version 0.16.6). Download the full spec at /docs/openapi.json.

judges

POST /eval-runs

Create Eval Run

Details

Request body (application/json) — required

FieldTypeRequiredDescription
deployment_idstringyes
pool_connection_idsstring[] | nullno
success_thresholdnumber | nullno
sample_sizeinteger | nullnoCap THIS run at this many of the deployment’s eligible traces (most-recent first), leaving the deployment’s stored sampling filter unchanged — e.g. 1000 to score the 1000 most-recent eligible traces without editing the deployment. The response total is the number actually queued (smaller than sample_size when fewer traces are eligible). Omit to let the deployment’s filter decide the count.

Responses

StatusDescription
200Successful Response
422Validation Error

GET /eval-runs/export

Export Eval Run Scores

Export a judge run’s (or several runs’) scores WITH each target’s input + output.

Details

Parameters

ParameterInTypeRequiredDescription
runsquerystringyesComma-separated eval_run ids
formatquerystringno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /eval-runs/{run_id}

Get Eval Run

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes
limitqueryintegerno
offsetqueryintegerno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /eval-runs/{run_id}/cancel

Cancel Eval Run

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /eval-targets/estimate

Estimate Targets

Details

Request body (application/json) — required

FieldTypeRequiredDescription
filterobjectno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /judges

List Judges

Details

Parameters

ParameterInTypeRequiredDescription
viewquerystringno
qquerystring | nullno
typequerystring[] | nullno
targetquerystring[] | nullno
levelquerystring[] | nullno
versionquerystring[] | nullno
configuredquerystring | nullno
triggerquerystring[] | nullno
statusquerystring[] | nullno
runningqueryboolean | nullno
sort_byquerystring | nullno
sort_dirquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /judges

Create Judge

Details

Request body (application/json) — required

FieldTypeRequiredDescription
namestringyes
typestringyes
scopestringno
descriptionstringno
levelstringno
definitionobjectno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /judges/preview

Preview Judge Prompt

Render the EXACT prompt a judge would send to the LLM, hydrated on a real sample session.

Details

Request body (application/json) — required

FieldTypeRequiredDescription
definitionobjectno
target_typestring | nullno
sample_session_idstring | nullno
typestring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /judges/run-status

List Run Status

Poll-friendly, status-ONLY projection of every enabled deployment.

Details

Responses

StatusDescription
200Successful Response

POST /judges/test-run

Test Run Judge Prompt

Execute the in-progress judge prompt against a real sample session ON THE FLY and return the model’s verdict — WITHOUT persisting anything.

Details

Request body (application/json) — required

FieldTypeRequiredDescription
definitionobjectno
target_typestring | nullno
sample_session_idstring | nullno
typestring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /judges/{judge_id}

Patch Judge

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
namestring | nullno
descriptionstring | nullno
typestring | nullno
scopestring | nullno
levelstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

DELETE /judges/{judge_id}

Delete Judge

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /judges/{judge_id}/compare

Compare Judge Runs

Compare two eval runs of the SAME judge — typically two different versions.

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes
runAquerystringyes
runBquerystringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /judges/{judge_id}/deployments

Create Deployment

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
version_idstringyes
scopestring | nullno
trigger_policystringno
filterobjectno
pool_connection_idsstring[]no
success_thresholdnumber | nullno
run_target_idstring | nullno
dedupebooleanno

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /judges/{judge_id}/deployments/{deployment_id}

Patch Deployment

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes
deployment_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
statusstring | nullno
trigger_policystring | nullno
scopestring | nullno
filterobject | nullno
pool_connection_idsstring[] | nullno
success_thresholdnumber | nullno
run_target_idstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

DELETE /judges/{judge_id}/deployments/{deployment_id}

Delete Deployment

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes
deployment_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /judges/{judge_id}/lifecycle

Patch Judge Lifecycle

Promote/demote a judge through its lifecycle: experimental → finalized → archived.

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
stagestringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /judges/{judge_id}/runs

List Judge Runs

All eval runs for a judge (current + historical), in the Activity-run shape so the UI can reuse the same row layout. Joins eval_runs → judge_deployments and left-joins activity_runs (act_eval_{run_id}) for name / duration / errors.

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /judges/{judge_id}/targets

List Judge Targets

Per-binding aggregate for the scorer’s “results by target” table: one row per enabled deployment with its Run Target summary and the latest scored/avg/passRate over that target’s population. Project-scoped; NULL-not-zero on an empty population. A legacy inline binding (no Run Target) still appears, with runTarget: null.

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /judges/{judge_id}/versions

Create Version

Details

Parameters

ParameterInTypeRequiredDescription
judge_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
definitionobjectno
notestring | nullno
namestring | nullno
descriptionstring | nullno
typestring | nullno
scopestring | nullno
levelstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

scores

GET /scores

List Scores

Details

Parameters

ParameterInTypeRequiredDescription
metric_keyquerystring | nullno
rangequerystringno
fromquerystring | nullno
toquerystring | nullno
targetIdquerystring | nullno
targetTypequerystring | nullno
statusquerystring | nullno
min_scorequerynumber | nullno
max_scorequerynumber | nullno
sourcequerystring | nullno
lifecyclequerystringno
runIdquerystring | nullno
pagequeryintegerno
limitqueryintegerno
sortquerystringno
sort_byquerystring | nullno
sort_dirquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /scores/display-settings

Get Display Settings

Resolved score-display config for the current project (scale + green/yellow/red bands + per-metric overrides). Readable by anyone who can read the project — the UI needs it to render every score. Falls back to platform defaults when nothing is persisted.

Details

Responses

StatusDescription
200Successful Response

PATCH /scores/display-settings

Patch Display Settings

Update the project’s score-display config. Admin-only (MANAGE_SCORE_DISPLAY) — it changes what every viewer sees. Presentation only: it never alters stored scores or grading. Values are clamped to safe ranges and bands kept non-inverted (warn <= pass).

Details

Request body (application/json) — required

FieldTypeRequiredDescription
scaleMaxnumber | nullno
passThresholdnumber | nullno
warnThresholdnumber | nullno
metricOverridesobject | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /scores/distribution

Distribution

The label breakdown for one score type — the drill-down’s answer to /scores/timeseries.

Details

Parameters

ParameterInTypeRequiredDescription
metric_keyquerystringyes
sourcequerystring | nullno
targetTypequerystring | nullno
rangequerystringno
fromquerystring | nullno
toquerystring | nullno
lifecyclequerystringno
bucketsqueryintegerno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /scores/metrics

List Metrics

Details

Parameters

ParameterInTypeRequiredDescription
rangequerystringno
fromquerystring | nullno
toquerystring | nullno
lifecyclequerystringno

Responses

StatusDescription
200Successful Response
422Validation Error

PUT /scores/prefs

Upsert Pref

Details

Request body (application/json) — required

FieldTypeRequiredDescription
metricKeystringyes
sourcestringyes
targetTypestringyes
favoriteboolean | nullno
hiddenboolean | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /scores/timeseries

Timeseries

Details

Parameters

ParameterInTypeRequiredDescription
metric_keyquerystringyes
rangequerystringno
fromquerystring | nullno
toquerystring | nullno
lifecyclequerystringno

Responses

StatusDescription
200Successful Response
422Validation Error

enrichments

GET /enrichment-catalog

Enrichment Catalog

Details

Parameters

ParameterInTypeRequiredDescription
targetTypequerystringno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /enrichment-fields

Enrichment Fields

The enrichment output fields that actually have values in this project, with the distinct values observed (capped). Drives the Traces/Sessions enrichment filter and the “Create dataset from enrichment” picker. Only fields with at least one output are returned, so the UI never offers a filter that can’t match anything.

Details

Responses

StatusDescription
200Successful Response

POST /user-enrichment-runs

Create Run

Details

Request body (application/json) — required

FieldTypeRequiredDescription
idsstring[] | nullno
filterobject | nullno
dataset_idstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /user-enrichment-runs/{run_id}

Get Run

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes
samplequeryintegerno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /user-enrichments

List Enrichments

Details

Parameters

ParameterInTypeRequiredDescription
namequerystring | nullno
modequerystring | nullno
statusquerystring | nullno
target_typequerystring | nullno
sort_byquerystring | nullno
sort_dirquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /user-enrichments

Create Enrichment

Details

Request body (application/json) — required

FieldTypeRequiredDescription
namestringyes
modestringyes
targetTypestringyes
outputFieldsOutputField[]no
prerequisitesobjectno
definitionobjectno

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /user-enrichments/{enrichment_id}

Update Enrichment

Edit an enrichment. Metadata (name / output fields / prerequisites / status) mutates in place; a changed definition (prompt or LLM connection) creates a new immutable version and promotes it (version history stays append-only, matching POST.../versions). Disable = status='draft' (also drops the on-ingest trigger back to manual); re-enable = status='enabled'.

Details

Parameters

ParameterInTypeRequiredDescription
enrichment_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
namestring | nullno
outputFieldsOutputField[] | nullno
prerequisitesobject | nullno
statusstring | nullno
definitionobject | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

DELETE /user-enrichments/{enrichment_id}

Delete Enrichment

Hard-delete an enrichment and everything it owns — versions, runs, computed outputs, and its Activity-feed reflections — project-scoped so a scoped caller can’t delete another project’s enrichment.

Details

Parameters

ParameterInTypeRequiredDescription
enrichment_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /user-enrichments/{enrichment_id}/dataset

Create Dataset From Enrichment

The enrichment→dataset→judge bridge: materialize a dataset whose membership is every session whose enrichment output field == value. The dataset carries an enrichment_filter source config, so (when streaming) hourly sync keeps the cohort fresh as new traces are enriched — then any judge eval-run can target it via dataset_id.

Details

Parameters

ParameterInTypeRequiredDescription
enrichment_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
namestringyes
descriptionstring | nullno
fieldstringyes
valuestringyes
streamingbooleanno
fieldsstring[] | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /user-enrichments/{enrichment_id}/deployments

Create Deployment

Details

Parameters

ParameterInTypeRequiredDescription
enrichment_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
schedulestring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /user-enrichments/{enrichment_id}/versions

Create Version

Details

Parameters

ParameterInTypeRequiredDescription
enrichment_idpathstringyes

Request body (application/json) — required

FieldTypeRequiredDescription
definitionobjectno
notestring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

datasets

GET /datasets

List Datasets

Details

Responses

StatusDescription
200Successful Response

POST /datasets

Create Dataset

Details

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

POST /datasets/from-selection

Create From Selection

One-call “create dataset from selected rows”: create a manual dataset, bulk-add the selected sessions/traces, and — when golden — snapshot an immutable v1 marked golden. Returns the dataset dict with a versions summary (newest first).

Details

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

POST /datasets/preview

Preview Dataset

Mirror /eval-targets/estimate for dataset sources: count eligible + sampled sessions for a source config, without persisting anything. Project-scoped.

Details

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /datasets/{id_or_name}

Update Dataset

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

DELETE /datasets/{id_or_name}

Delete Dataset

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /datasets/{id_or_name}/export

Export Dataset

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
formatquerystringno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /datasets/{id_or_name}/items

List Items

List a dataset’s items with optional text search (input/output/expected), kind + captured-field-presence filters, and whitelisted server-side sort. All params are additive: with none supplied the historical ORDER BY created_at ASC is preserved.

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
qquerystring | nullno
kindquerystring | nullno
hasquerystring[]no
sort_byquerystring | nullno
sort_dirquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /datasets/{id_or_name}/items

Add Item

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

DELETE /datasets/{id_or_name}/items

Delete Item

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
trace_idquerystring | nullno
session_idquerystring | nullno
item_idquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /datasets/{id_or_name}/items/bulk

Bulk Add Items

Bulk-add sessions/traces to an existing dataset, de-duped against what’s already in it. Sessions are field-captured (respecting the dataset’s fields unless the body overrides fields); traces are added as reference rows. Returns {added, skipped}. Project-scoped.

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /datasets/{id_or_name}/items/{item_id}

Update Item

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
item_idpathstringyes

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

POST /datasets/{id_or_name}/sync

Sync Dataset

Re-run a filter/cluster dataset’s stored source config, adding newly-matching sessions not already present. Respects sampling and (for streaming) the last_synced_at high-water mark. Returns {added, total}. 404 unless the dataset is a filter/cluster source. Project-scoped.

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /datasets/{id_or_name}/versions

List Versions

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /datasets/{id_or_name}/versions

Create Version

Snapshot the dataset’s current items into a new immutable version (version = max+1). Body {name?, notes?, golden?}. When golden is set, sibling versions are un-goldened (one golden per dataset). Returns the version row.

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

PATCH /datasets/{id_or_name}/versions/{version}

Update Version

Mutate version METADATA only — {name?, notes?, golden?}. Snapshot items are immutable. Setting golden:true un-goldens sibling versions (one golden per dataset).

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
versionpathintegeryes

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

GET /datasets/{id_or_name}/versions/{version}/export

Export Version

Export an immutable version’s snapshot (json|csv), same shape as the dataset export (plus a version summary in the JSON body).

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
versionpathintegeryes
formatquerystringno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /datasets/{id_or_name}/versions/{version}/items

List Version Items

List an immutable version’s snapshot items — paged/searchable/sortable exactly like the live /items endpoint. Read-only.

Details

Parameters

ParameterInTypeRequiredDescription
id_or_namepathstringyes
versionpathintegeryes
qquerystring | nullno
kindquerystring | nullno
hasquerystring[]no
sort_byquerystring | nullno
sort_dirquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

annotations

GET /annotations

List Annotations

Details

Parameters

ParameterInTypeRequiredDescription
targetTypequerystring | nullno
valuequerystring | nullno
reviewerquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /annotations

Create Annotation

Details

Request body (application/json) — required

FieldTypeRequiredDescription
targetTypestringyes
targetIdstringyes
valuestringyes
commentstring | nullno
reviewerstring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /annotations/reviewers

List Reviewers

Details

Responses

StatusDescription
200Successful Response

GET /annotations/trend

Annotations Trend

Annotation-throughput trend for the Review Queue page: per-day (or per-hour) count of annotations created over the selected window, plus a period-over-period total. Scoped to the current project — the review loop’s output volume over time.

Details

Parameters

ParameterInTypeRequiredDescription
rangequerystring | nullno
fromquerystring | nullno
toquerystring | nullno
grainquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

review

POST /review

Create Review

Write a ground-truth label. Reviewer + role resolved from the request identity.

Details

Request body (application/json) — required

FieldTypeRequiredDescription
target_typestringno
target_idstringyes
verdictstringyes
critiquestring | nullno
failure_mode_idstring | nullno
cluster_idstring | nullno
is_goldbooleanno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /review-queue

Review Queue

Active-learning-ranked sessions a human should review next.

Details

Parameters

ParameterInTypeRequiredDescription
limitqueryinteger | nullno
novelty_budgetqueryinteger | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /review/adjudicate

Adjudicate

Principal override: supersede every conflicting active label on a target and write the authoritative one.

Details

Request body (application/json) — required

FieldTypeRequiredDescription
target_idstringyes
verdictstringyes
critiquestring | nullno
is_goldbooleanno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /review/alignment

List Alignment

Persisted judge↔expert alignment rows (the trend), newest first. Project-scoped.

Details

Parameters

ParameterInTypeRequiredDescription
judge_idquerystring | nullno
rangequerystringno
fromquerystring | nullno
toquerystring | nullno
latest_onlyquerybooleanno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /review/alignment/disagreements

Alignment Disagreements

Sessions where this judge disagreed with expert ground truth, split FN/FP. Project-scoped.

Details

Parameters

ParameterInTypeRequiredDescription
judge_idquerystringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /review/alignment/refresh

Refresh Alignment

Recompute + persist judge↔expert alignment for every judge that has scores.

Details

Responses

StatusDescription
200Successful Response

GET /review/gold

List Gold

List the active gold-standard labels (is_gold = 1), newest first. Project-scoped.

Details

Responses

StatusDescription
200Successful Response

GET /review/label-options

Label Options

Grouped options a reviewer can tag a verdict with: confirmed taxonomy failure modes and discovered clusters (each carrying its finite L1 bucket/bucketLabel + session count).

Details

Responses

StatusDescription
200Successful Response

GET /review/labels

List Labels

Unified human-label history — the source the Annotations tab renders.

Details

Parameters

ParameterInTypeRequiredDescription
targetTypequerystring | nullno
verdictquerystring | nullno
reviewerquerystring | nullno
failureModeIdquerystring | nullno
clusterIdquerystring | nullno
isGoldqueryboolean | nullno
includeSupersededquerybooleanno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /review/leaderboard

Leaderboard

Per-reviewer QUALITY = agreement with the expert/consensus on gold items, not volume.

Details

Responses

StatusDescription
200Successful Response

GET /review/queue-config

Get Queue Config

Current review-queue config for the project (defaults synthesized when unset).

Details

Responses

StatusDescription
200Successful Response

PUT /review/queue-config

Put Queue Config

Upsert the project’s review-queue config (gated require_action('review')).

Details

Request body (application/json) — required

FieldTypeRequiredDescription
statusesstring[] | nullno
scoreFiltersobject[] | nullno
includeFailureModeIdsstring[] | nullno
includeClusterIdsstring[] | nullno
includeTaxonomyboolean | nullno
onlyUnlabeledboolean | nullno
noveltyBudgetinteger | nullno
queueLimitinteger | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /review/reviewers

List Label Reviewers

Distinct reviewers that have written a label in this project. Project-scoped.

Details

Responses

StatusDescription
200Successful Response

preprod-evals

GET /preprod-compare

Compare Runs

Aligned N-run comparison over a shared golden version.

Details

Parameters

ParameterInTypeRequiredDescription
runsquerystring | nullnocomma-separated run ids (A,B,C…)
runquerystring[] | nullnorepeatable run id param
baselinequerystring | nullnoa run id (must be in the set) to mark per-row regressions against

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-compare/trajectory

Trajectory Diff

Diff the candidate’s captured trajectory against the baseline run’s captured trajectory for the SAME golden prompt.

Details

Parameters

ParameterInTypeRequiredDescription
runquerystringyescandidate run id
itemquerystringyesdataset_version_item_id of the golden prompt
baselinequerystringyesbaseline run id to diff against

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals

List Preprod Evals

List pre-prod eval runs (project-scoped) with progress counts.

Details

Responses

StatusDescription
200Successful Response

POST /preprod-evals

Create Preprod Eval

Create a pre-prod eval run + snapshot the golden version’s items into pending item rows.

Details

Request body (application/json) — required

Schema: object.

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals/trend

Preprod Trend

Run-cadence and pass-rate trend for the Pre-prod Evals page. Primary series: per-day (or per-hour) count of runs created over the window. Secondary: the pass-rate across scored items in the same window. A window with no scored items reports a null pass-rate, never a fabricated 0%. Scoped to the current project.

Details

Parameters

ParameterInTypeRequiredDescription
rangequerystring | nullno
fromquerystring | nullno
toquerystring | nullno
grainquerystring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

POST /preprod-evals/verify

Verify Fix

Verification webhook — PROVE a fix against a candidate endpoint/branch.

Details

Request body (application/json) — required

FieldTypeRequiredDescription
endpoint_urlstring | nullno
agent_connection_idstring | nullno
auth_tokenstring | nullno
request_shapestring | nullno
dataset_idstring | nullno
remediation_idstring | nullno
version_labelstringyes
min_pass_ratenumber | nullno
max_regressionsinteger | nullno
namestring | nullno

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals/{run_id}

Get Preprod Eval

Run detail: the run header + per-item summary + an aggregate rollup.

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /preprod-evals/{run_id}/cancel

Cancel Preprod Eval

Cancel a run (terminal). A completed run cannot be cancelled.

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals/{run_id}/comparison

Comparison

Candidate-vs-baseline comparison.

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes
baselinequerystring | nullnooverride baseline kind

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals/{run_id}/gate

Gate

Evaluate the run’s gate_json against the candidate results → pass/fail + reasons.

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals/{run_id}/items

Get Preprod Items

The frozen prompt list for the harness/runner: [{item_id, input, expected_output}].

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

GET /preprod-evals/{run_id}/metrics

Metrics

Per-metric score rollup for a run’s captured+scored sessions — the CI-gate surface.

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /preprod-evals/{run_id}/run

Run Preprod Eval Route

Trigger a PUSH run: Neens HTTP-calls the run’s agent endpoint for every frozen golden prompt, captures + links each response, then scores it — no user harness.

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error

POST /preprod-evals/{run_id}/start

Start Preprod Eval

Transition awaiting_traces → running (idempotent).

Details

Parameters

ParameterInTypeRequiredDescription
run_idpathstringyes

Responses

StatusDescription
200Successful Response
422Validation Error