Get run status
Run status, result, and summary. Poll until status is terminal (completed, failed, or cancelled).
Authorizations
MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.
Path Parameters
ID of the hosted project that contains the server.
Eval run ID, as returned by POST /eval-runs.
Response
The run.
Poll until terminal: completed, failed, or cancelled.
pending, running, completed, failed, cancelled Run origin. API-created runs are api.
ui, api, sdk Epoch milliseconds.
Pass/fail verdict once terminal.
passed, failed, null Epoch milliseconds, null until terminal.
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.
valid, invalid, null The environment revision this run is pinned to. null on a legacy run that recorded none — always present, so a caller never has to distinguish absent from unpinned.
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.
Model the run actually executed with. Absent on pre-attribution rows.
client_default inherited the host model; override used the environment's modelId.
client_default, override 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.
The common actionable-insights envelope. Present on the DETAIL response only — lists stay compact — and absent when the caller may not have it or the deployment cannot produce one. Treat absence exactly like status: "not_available".
Advisory LLM graders on this run. Present on the DETAIL response only — lists stay compact — and absent on deployments that predate the envelope.

