Run eval suite

Run every enabled case of the suite against its target and grade the outputs with the suite graders. Suites within the synchronous case limit (50) run inline and return the full scored result; larger suites are queued as a durable run (202) that is graded when it completes — poll GET /eval/runs/{runId}/scores. Both paths persist per-case scores to the same run history.

Authentication

AuthorizationBearer
API key or Clerk session token

Path parameters

idstringRequired>=1 character

Request

This endpoint expects an object.
modeenumOptional

Force the execution path. Default: sync for suites within the synchronous case limit (50), batch above it.

Allowed values:
strictbooleanOptional

Strict grading: a soft grader miss fails its case like a gate miss.

Response

Suite ran synchronously — 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