Skip to content

API: Test Management

All test management endpoints are under /api/settings/.

GET /api/settings/domains
{
"domains": [
{
"id": "math",
"name": "Mathematics",
"description": "...",
"evaluator_id": "two_pass",
"enabled": true
}
]
}
GET /api/settings/domains/<domain_id>
POST /api/settings/domains
Content-Type: application/json
{
"id": "my_domain",
"name": "My Domain",
"description": "Custom evaluation domain",
"evaluator_id": "keyword",
"system_prompt": "You are a helpful assistant.",
"icon": "brain",
"color": "#3B82F6"
}
PUT /api/settings/domains/<domain_id>
DELETE /api/settings/domains/<domain_id>

Deletes the domain and all its tests and level configs.


GET /api/settings/levels/<domain_id>/<level>
PUT /api/settings/levels/<domain_id>/<level>
Content-Type: application/json
{
"system_prompt": "Level-specific instructions...",
"system_prompt_mode": "append"
}

GET /api/settings/tests?domain=math&level=1

Both domain and level are optional query parameters.

GET /api/settings/tests/<test_id>
POST /api/settings/tests
Content-Type: application/json
{
"domain_id": "math",
"level": 1,
"name": "Addition Test",
"prompt": "What is 2 + 2?",
"expected": {"answer": "4", "type": "numeric"},
"evaluator_id": "two_pass"
}
PUT /api/settings/tests/<test_id>
DELETE /api/settings/tests/<test_id>
POST /api/settings/tests/<test_id>/move
Content-Type: application/json
{"domain_id": "reasoning", "level": 3}

GET /api/settings/evaluators
GET /api/settings/evaluators/<evaluator_id>
POST /api/settings/evaluators
Content-Type: application/json
{
"id": "my_regex",
"name": "My Regex Evaluator",
"type": "regex",
"extraction_regex": "(\\d+)",
"uses_pass2": false
}
PUT /api/settings/evaluators/<evaluator_id>
DELETE /api/settings/evaluators/<evaluator_id>

GET /api/settings/tools
GET /api/settings/tools/<tool_id>
POST /api/settings/tools
Content-Type: application/json
{
"id": "my_tool",
"name": "My Tool",
"description": "Does something useful",
"function": {
"name": "my_tool",
"description": "Does something useful",
"parameters": {
"type": "object",
"properties": {
"input": {"type": "string"}
},
"required": ["input"]
}
},
"mock_response": {"result": "mock output"}
}
PUT /api/settings/tools/<tool_id>
DELETE /api/settings/tools/<tool_id>

GET /api/settings/export

Returns a JSON dump of all domains, tests, evaluators, and tools.

POST /api/settings/import
Content-Type: application/json
{ "merge": true, "domains": [...], "tests": [...] }

Set merge: false to overwrite instead of merging.

POST /api/settings/sync

Re-syncs JSON files on disk to the database cache.