Eval runs

Cancel a run

Request cancellation of an in-flight run; marks the run and its pending/running iterations cancelled. A no-op success when the run is already cancelled; returns 409 when the run already reached a terminal status (completed/failed/timed_out).

post/projects/{projectId}/eval-runs/{runId}/cancel

Path parameters

projectIdstring required

ID of the hosted project that contains the server.

runIdstring required

Eval run ID, as returned by POST /eval-runs.

Response

The cancelled run.

idstring required
suiteIdstring required
runNumberinteger nullable
status'pending' | 'running' | 'completed' | 'failed' | 'cancelled' required

Poll until terminal: completed, failed, or cancelled.

result'passed' | 'failed' | 'inconclusive' | 'null' nullable

Verdict once terminal. inconclusive exists only under verdictPolicyVersion: 2 and is NOT a failure: the run did not measure the server well enough to say (too few gradeable trials, too many evaluator errors), so a gate that folds it into failed reports a defect the run never observed. Read verdictSummary.reasons for the check that withheld the verdict.

source'ui' | 'api' | 'sdk' required

Run origin. API-created runs are api.

notesstring nullable
createdAtnumber required

Epoch milliseconds.

completedAtnumber nullable

Epoch milliseconds, null until terminal.

scoreIntegrity'valid' | 'invalid' | 'null' nullable

Whether the run's score evidence verified at ingest. TRI-STATE, and the third state matters: valid means the backend checked and definitions and results agree; invalid means they do not; null (or absent) means NO VERDICT was produced, on a deployment that predates integrity checking. A score gate must treat null exactly like invalid — absent evidence is not valid evidence.

verdictPolicyVersion2

The verdict policy this run was decided under, frozen at run start. ABSENT means legacy percent-threshold grading — result cannot then be inconclusive and there is no verdictSummary. A caller gating on fractions or on validity must read this FIRST rather than assume a missing summary means a clean run.

verdictSummaryobject

How a policy-2 verdict was reached: the resolved validity policy, the measured completion and evaluator-error rates with their denominators and exclusions, the per-case and per-execution-variant aggregates, and the exact reasons. Absent when the run is legacy, or when the stored summary failed contract validation at the boundary — a partially-valid decision is never published, because a gate cannot tell a missing field from a satisfied check.

verdictPolicyIntegrityErrorstring

Why a policy-2 run could not be decided from its own evidence (a missing or malformed policy snapshot, mixed evaluator configs). Accompanies an inconclusive result; it is never a task failure.

runGroupIdstring

Shared by every per-target run from the same fan-out launch. Absent on a single-target launch and on rows created before run groups.

effectiveModelIdstring

Model the run actually executed with. Absent on pre-attribution rows.

modelSource'client_default' | 'override'

client_default inherited the host model; override used the environment's modelId.

executionEnginestring

Which engine executed the run: emulated (the platform's own turn loop) or harness:<id> (a real agent runtime such as Claude Code). ABSENT means the run recorded no engine — a run created before the platform attributed one. Treat that as UNKNOWN, never as emulated: those are different claims, and the runs whose engine was never recorded are exactly the ones a reader must not vouch for.

Changes

Changed in 12 of the 71 revisions of this API.3816

    • added the optional property judges/allOf[EvalRunJudges]/goalCompletion/cases/items/iterationId to the response with the 200 status

      response-optional-property-added

    • added the optional property judges/allOf[EvalRunJudges]/groundedness/cases/items/iterationId to the response with the 200 status

      response-optional-property-added

    • added the optional property importEligibility to the response with the 200 status

      response-optional-property-added

    • added the optional property gateWaiver to the response with the 200 status

      response-optional-property-added

  • c479eeceb7a313See the full diff
    • added the new inconclusive enum value to the result response property for the response status 200

      response-property-enum-value-added

    • added the optional property verdictPolicyIntegrityError to the response with the 200 status

      response-optional-property-added

    • added the optional property verdictPolicyVersion to the response with the 200 status

      response-optional-property-added

    • added the optional property verdictSummary to the response with the 200 status

      response-optional-property-added

    • added the optional property effectiveModelId to the response with the 200 status

      response-optional-property-added

    • added the optional property modelSource to the response with the 200 status

      response-optional-property-added

    • added the optional property runGroupId to the response with the 200 status

      response-optional-property-added

    • added the optional property executionEngine to the response with the 200 status

      response-optional-property-added

    • added the optional property judges to the response with the 200 status

      response-optional-property-added

  • d3adfe49fbbf321See the full diff
    • added EvalRunEnvironment subschema #2 to the environment response property oneOf list for the response status 200

      response-property-one-of-added

    • the environment response's property type/format changed from object null/ to / for status 200

      response-property-type-changed

    • removed the required property environment/id from the response with the 200 status

      response-required-property-removed

    • removed the optional property environment/name from the response with the 200 status

      response-optional-property-removed

    • removed the optional property environment/revision from the response with the 200 status

      response-optional-property-removed

    • added the optional property insights to the response with the 200 status

      response-optional-property-added

    • added the optional property scoreIntegrity to the response with the 200 status

      response-optional-property-added

    • added the optional property environment to the response with the 200 status

      response-optional-property-added