Skip to Content
API ReferenceEval Cases

Eval Cases API

List cases

GET /v1/suites/:suiteId/cases?page=1&pageSize=20

Returns 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/cases

Request body

FieldTypeRequiredDefaultDescription
namestringYesCase name
descriptionstringNonullDescription (max 2,000 chars)
inputobjectYesInput data for the scorer
expectedanyNonullExpected output (used by some scorers)
scorer_idUUIDYesScorer to evaluate with
thresholdnumberNo0.50–1; minimum score to pass
weightnumberNo1.0Relative weight in pass rate calculation — a case with weight: 2.0 counts twice as much as one with weight: 1.0
is_activebooleanNotrueWhen 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/:caseId

Update case

PATCH /v1/cases/:caseId

All fields from the create request are updatable.


Delete case

DELETE /v1/cases/:caseId

Soft-deletes the case. Returns 204 No Content.


Reorder cases

POST /v1/suites/:suiteId/cases/reorder

Request 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