Skip to content

List the cases of a corrections test set version

View as Markdown
GET
/v1/test-sets/{testSetId}/versions/{version}/cases
curl --request GET \
--url 'https://example.com/v1/test-sets/example/versions/example/cases?limit=25' \
--header 'Authorization: Bearer <token>'

Cursor-paginated, in the order the cases were stored (newest corrected run first).

testSetId
required
string
>= 1 characters

TestSetId — stable string chosen by the caller (e.g. acme.drafting-accuracy).

version
required
string
/^\d+\.\d+\.\d+$/

Semver version string of the test set (e.g. 1.2.0).

limit
integer
default: 25 >= 1 <= 100

1..100. Default 25.

cursor
string

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.

Page of cases.

Media typeapplication/json
object
data
required
Array<object>

One case of a corrections test set: a copy of a corrected run with its items’ corrections summed up.

object
caseId
required

The case’s id. A frozen case of an agent’s test set has its correction’s id, or a case- id when it was added by hand. A corrections test set built before 0.4.0 used the corrected run’s id.

string
runId

The run the case was copied from. Absent from older servers: there a case of a corrections test set built before 0.4.0 has the run’s id as its caseId.

string
subject
required

What a corrected run ran: an agent at a version, or a flow at a version.

object
kind
required
string
Allowed values: agent flow
id
required
string
version
required
string
input
required
context

What a corrected run needs besides its input to be replayed, captured when it was first corrected. For an agent turn: the conversation before it, what its retrievals returned, and the decision at its session approval gate. For a flow run: its tool calls with their results. For both: the env values its tools were sent.

object
history

The conversation’s messages before the turn, oldest first (at most the last 200).

Array
historyTruncated

Whether older messages were left out of history.

boolean
retrieved

What the turn’s retrievals returned.

recalled

Messages of earlier conversations the turn recalled (intents over conversations), as quoted to the model.

sessionApproval

The reviewer’s decision at the turn’s session approval gate, when the turn waited on one. A replay of the turn follows it.

object
approved
required
boolean
rationale

The reviewer’s reason for a rejection.

string
flow

For a flow run: what it did, kept at its first correction so it can be replayed. Every tool call it made with its result (at its tool nodes, in its agent steps’ turns and in its sub-flows), at most 500, and its agent steps.

object
calls
required
Array<object>
object
runId
required

The run that made it: the flow run, a sub-flow’s, or an agent step’s turn.

string
nodeId

The tool node that made it, or the agent step whose turn did.

string
scope

The loop iteration, in a loop body.

string
toolId
required
string
arguments
result
fromEvent

An agent step’s turn kept the result as outside data: another system’s answer to a paused call, or a result its tool says is outside data. A replay hands it to the model as data, as the turn did. Absent for a tool node’s call, and for a run corrected before the mark was kept.

boolean
steps
required
Array<object>
object
runId
required
string
nodeId
string
scope
string
agentId
required
string
agentVersion
required
string
retrieved

What the step’s turn retrieved.

recalled

Messages of earlier conversations the step’s turn recalled.

truncated

More calls were made than were kept.

boolean
toolEnv

The env values each tool’s calls were sent (needsSpec.env), by tool id: its first call’s, as the run recorded them. A replay sends them to a read-only tool it runs live, so the tool reads the config the run saw, not today’s. Absent for a run from before env was recorded.

object
key
additional properties
object
key
additional properties
string
replayOf

When the corrected run is a comparison’s replay: the run it re-ran, stamped at its first correction. A test set built from corrections leaves replays out.

string
output
required
segments

The segment path its run was started with, coarse to fine (empty: none). Set on a frozen case of an agent’s test set when its run’s copy has it.

Array<object>
object
key
required

Lowercase, like an identifier: company, contact-role.

string
/^[a-z][a-z0-9_-]{0,63}$/
value
required
string
>= 1 characters <= 256 characters
items
required
Array<object>

The corrections of one item of a case’s output, summed up.

object
key
required
string
pointer
string
rank
integer
yes
required

How many corrections said yes.

integer
no
required

How many corrections said no.

integer
yesWeight
required

The weight behind “yes” (an unclassified correction counts 1).

number
totalWeight
required

The weight behind all corrections of the item.

number
expert

The same weights, counting only corrections recorded while their group was restricted (Correction.expert), for a comparison weighted experts-only. Absent from a test set built before restrictions.

object
yesWeight
required
number
totalWeight
required
number
correctionIds

The corrections behind these two. Absent from a test set built before correction ids.

Array<string>
correctionIds

The corrections summed into the item, by id: what a comparison on this case counts. Absent from a test set built before correction ids.

Array<string>
reasons
required

The reasons given, newest first.

Array<object>
object
verdict
required
string
Allowed values: yes no
reason
required
string
correctorGroupId

The correction’s group, when it had one.

string
expert

Set when the correction was recorded while its group was restricted (Correction.expert).

boolean
corrections

Experts’ expected decisions carried onto this case from its corrections, each graded on the replay. Empty or absent when none. experts-only keeps only the entries whose correction was restricted.

Array<object>
object
correctionId
required

The correction they were recorded on.

string
correctorGroupId

The correction’s group, when it had one.

string
expert

Set when the correction was recorded while its group was restricted (Correction.expert).

boolean
calls
required

The calls the agent should have made.

Array<object>
<= 50 items
object
tool
required
string
>= 1 characters <= 200 characters
args
required

The partial set of top-level argument fields to compare, by value. Fields left out are not compared; an empty object asks only that the tool was called. At most 4000 characters in canonical JSON.

object
<= 100 properties
notCalled
required

Tools that should not have been called at all.

Array<string>
<= 50 items
expect

What the case expects of a run, as the agent’s test set lists it. Set on a frozen case of an agent’s test set, from its own correction or hand case, which also fill items and corrections. A grader reads it when it’s present, and items and corrections otherwise.

object
decisions

right: it calls the same tools the corrected run called, by name, in any order (args aren’t compared). wrong: it calls every shouldCall tool (with its args where given) and none of mustNotCall, checked exactly, without a model.

object
verdict
required
string
Allowed values: right wrong
shouldCall
Array<object>
object
tool
required
string
>= 1 characters <= 200 characters
args
required

The partial set of top-level argument fields to compare, by value. Fields left out are not compared; an empty object asks only that the tool was called. At most 4000 characters in canonical JSON.

object
<= 100 properties
mustNotCall
Array<string>
answer

A judging model checks it. right: it says what the corrected run’s answer said. wrong: it does what shouldSay or why asks.

object
verdict
required
string
Allowed values: right wrong
shouldSay
string
why
string
items

A ranked answer’s items, scored as weightedPrecisionAtK.

Array<object>
object
key
required

The caller’s stable id for the item, such as a matched case’s id, never the item’s own text.

string
>= 1 characters
pointer

Where the item is in the run’s output, as a JSON Pointer (RFC 6901), e.g. /matches/2.

string
rank

The item’s position in the ranked list (0 = first).

integer
verdict
required
string
Allowed values: right wrong
expert

Present (true) on a frozen case whose test case is an expert’s: a test run weighted experts-only grades its expect, and drops the expect of every other case. Absent from older servers.

boolean
erased

An erasure cleared this case (a person’s words were erased): input and output are null, items empty, corrections, expect and segments gone, and test runs leave it out (counted as erased).

boolean
nextCursor

Opaque cursor. Treat as opaque on the client.

string
hasMore
required
boolean
Example
{
"data": [
{
"subject": {
"kind": "agent"
},
"context": {
"flow": {
"calls": [
{
"fromEvent": true
}
]
}
},
"items": [
{
"reasons": [
{
"verdict": "yes",
"expert": true
}
]
}
],
"corrections": [
{
"expert": true
}
],
"expect": {
"decisions": {
"verdict": "right"
},
"answer": {
"verdict": "right"
},
"items": [
{
"verdict": "right"
}
]
},
"expert": true,
"erased": true
}
]
}

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 test set with that id.

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"
}
}

The database was too busy to answer in time (database-busy); Retry-After (whole seconds) says when to try again.

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"
}
}

See also