List judgments
const url = 'https://example.com/v1/judgments?limit=25&verdict=yes&scopeKind=tenant';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/judgments?limit=25&verdict=yes&scopeKind=tenant' \ --header 'Authorization: Bearer <token>'Live judgments (not removed or superseded), newest first, cursor-paginated. Filter by run, agent (and version), flow, verdict, judge class or participant; ?scopeKind + ?scopeId narrow to a project.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”1..100. Default 25.
Where the previous page ended: its nextCursor, as it came. A runtime that seals cursors takes one only for the same list, filters and caller, within a day; otherwise 400 bad-input, and the list starts again without it. Absent → first page.
Only judgments of this run.
Only judgments of runs of this agent.
Only judgments of runs of this agent version. Needs agentId.
Only judgments of runs of this flow.
Only judgments with this verdict.
Only judgments recorded under this judge class.
Only judgments made for this app end user’s opaque id.
Discriminator for the ?scopeKind + ?scopeId + ?inherit triplet. Tenant carries no id (implicit from session); org/project require scopeId.
Optional scope discriminator. If absent, no scope filter is applied.
Required IF scopeKind is org or project. MUST be absent if scopeKind=tenant (tenant is implicit from the session). Malformed combinations return 400 scope-invalid.
Responses
Section titled “Responses”Page of judgments.
object
object
What a judged run ran: an agent at a version, or a flow at a version.
object
The judged item of a run’s output.
object
The caller’s stable id for the item.
Where the item is in the run’s output, as a JSON Pointer (RFC 6901), e.g. /matches/2. "" is the whole output.
The item’s position in a ranked list (0 = first).
The judge class the judgment is recorded under. Absent when unclassified (counts with weight 1).
Present (true) when the judge class was restricted (assertableBy) when the judgment was recorded, so the judge was checked against it. A restriction added or lifted later doesn’t change it.
Who asserted a judgment: the authenticated caller, never a typed name.
object
A user id, or for a service token its token or session id.
The app’s opaque id for its end user who judged, when an app judged on their behalf.
Set when the judgment was removed or superseded.
The judgment that replaced this one.
Opaque cursor. Treat as opaque on the client.
Example
{ "data": [ { "subject": { "kind": "agent" }, "verdict": "yes", "restricted": true, "assertedBy": { "kind": "user" } } ]}Malformed query parameter.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}