Eval Cases API
List cases
GET /v1/suites/:suiteId/cases?page=1&pageSize=20Returns paginated list of cases for a suite.
Response
{
"data": [
{
"id": "uuid",
"suite_id": "uuid",
"name": "Contains source citation",
"description": null,
"input": { "query": "When was it built?" },
"expected": null,
"scorer_id": "uuid",
"threshold": 1.0,
"weight": 1.0,
"is_active": true,
"sort_order": 0,
"created_at": "2026-04-07T12:00:00.000Z",
"updated_at": "2026-04-07T12:00:00.000Z"
}
],
"pagination": { "page": 1, "pageSize": 20, "total": 1, "hasMore": false }
}Create case
POST /v1/suites/:suiteId/casesRequest body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | — | Case name |
description | string | No | null | Description (max 2,000 chars) |
input | object | Yes | — | Input data for the scorer |
expected | any | No | null | Expected output (used by some scorers) |
scorer_id | UUID | Yes | — | Scorer to evaluate with |
threshold | number | No | 0.5 | 0–1; minimum score to pass |
weight | number | No | 1.0 | Relative weight in pass rate calculation — a case with weight: 2.0 counts twice as much as one with weight: 1.0 |
is_active | boolean | No | true | When false, the case is excluded from runs entirely — it does not appear in results and does not affect total_cases or pass rate |
{
"name": "Contains source citation",
"input": { "query": "What year was it built?" },
"scorer_id": "scorer-uuid-here",
"threshold": 1.0
}Get case
GET /v1/cases/:caseIdUpdate case
PATCH /v1/cases/:caseIdAll fields from the create request are updatable.
Delete case
DELETE /v1/cases/:caseIdSoft-deletes the case. Returns 204 No Content.
Reorder cases
POST /v1/suites/:suiteId/cases/reorderRequest body
{
"case_ids": [
"case-uuid-1",
"case-uuid-2",
"case-uuid-3"
]
}The array must contain all active case IDs in the desired order.
Last updated on