Run eval suite synchronously

Run every case of an eval suite against its target flow/agent and grade the outputs with the suite graders, returning the suite score + per-case gate outcomes in one response. Powers the `runtype eval` CI gate. Saved-suite runs persist by default: the run gets a durable id (`runId`) and per-case scores queryable via GET /eval/runs/{runId}/scores; pass `virtual: true` to skip persistence. Inline definition runs are always ephemeral. Bounded — suites over the case limit must use the batch path (/eval/submit). Flow and standard-agent targets are supported (in both saved and inline/virtual modes); external and claude_managed agent targets are not.

Authentication

AuthorizationBearer
API key or Clerk session token

Request

This endpoint expects an object.
definitionobjectOptional
strictbooleanOptional

Strict mode (the runtype eval --strict gate): a soft grader miss fails its case like a gate miss. Default false — soft misses are reported per-outcome but do not fail the suite.

suiteIdstringOptional>=1 character
virtualbooleanOptional

Skip persistence for a saved-suite run: no run row, no persisted scores. Saved-suite runs persist by default; inline definition runs are always ephemeral regardless of this flag.

Response

Suite score + per-case grader outcomes

caseslist of objects
namestring
passedboolean
True when every case passed every grader.
passedCasesinteger
runIdstring or null

The persisted run id — query its scores via GET /eval/runs/{runId}/scores. Null for an ephemeral (virtual/inline) run.

scoredouble

Suite score, 0..1 (passed cases / total cases).

suiteIdstring or null
targetTypeenum
totalCasesinteger

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error