Skip to content

A judging rule's results

GET
/v1/projects/{projectId}/judging-rules/{ruleId}/results
curl --request GET \
--url https://example.com/v1/projects/example/judging-rules/example/results \
--header 'Authorization: Bearer <token>'

By the rule’s version and the agent’s: the runs it queued (open, judged, dismissed, erased), the ones its maxOpen skipped, and the live judgments on them, with their class-weighted yes share and a count by class. Never pooled with another rule’s, or across a rule’s versions: each is a sample of its own when. Needs read on the project.

projectId
required
string

ProjectId — opaque branded string.

ruleId
required
string
since
string format: date-time

Only runs queued from this time on.

The results.

Media typeapplication/json
object
ruleId
required
string
since
string format: date-time
groups
required

By the rule’s version and the agent’s, newest rule version first: two versions of a rule are two sampling designs, never pooled.

Array<object>

One rule version’s runs of one agent version. added = open + judged + dismissed + erased.

object
ruleVersion
required
integer
>= 1
agentVersion
required

null: a flow run, or one from before versions were recorded.

string | null
added
required
integer
open
required
integer
judged
required
integer
dismissed
required
integer
erased
required
integer
skippedByCap
required

Runs the rule matched and sampled but didn’t queue, because maxOpen were waiting, even when another rule queued them. Non-zero: the queued runs lean toward quiet times. added + skippedByCap = every run the rule matched and sampled.

integer
judgments
required

Live judgments on the queued runs: each is one person’s verdict on one item of a run’s output.

integer
yesShare
required

The yes share of those judgments, each weighted by its class (unclassified: 1). null with none.

number | null
byClass
required

The same judgments by class, unweighted.

Array<object>
object
judgeClassId
required

null: unclassified.

string | null
judgments
required
integer
yes
required
integer
Examplegenerated
{
"ruleId": "example",
"since": "2026-04-15T12:00:00Z",
"groups": [
{
"ruleVersion": 1,
"agentVersion": "example",
"added": 1,
"open": 1,
"judged": 1,
"dismissed": 1,
"erased": 1,
"skippedByCap": 1,
"judgments": 1,
"yesShare": 1,
"byClass": [
{
"judgeClassId": "example",
"judgments": 1,
"yes": 1
}
]
}
]
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

No such rule (judging-rule-not-found).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}