API reference

The EvalLite API

Base URL https://evallite.com. Authenticate with Authorization: Bearer evl_…. JSON in, JSON out.

GET/health

Liveness. Returns brand and domain.

auth: none · success: 200

POST/v1/keys

Create an API key. The plaintext token is returned only here.

auth: session or evl_ · success: 201

{ "label": "ci" }
GET/v1/keys

List active keys. Never includes token or hash.

auth: session or evl_ · success: 200

DELETE/v1/keys/:id

Revoke a key. 404 if not found or not yours.

auth: session or evl_ · success: 200

POST/v1/runs

Open a run. 1 event.

auth: evl_ · success: 201

{ "name": "agent@v42", "metadata": { "env": "ci" } }
POST/v1/runs/:id/traces

Append spans. Each span is 1 event. prompt/output are redacted unless store_raw: true or redact: false.

auth: evl_ · success: 201

{ "spans": [{ "name": "plan", "prompt": "…", "output": "…" }] }
POST/v1/runs/:id/scores

Record a score. metric and value required; reason trimmed to 280 chars. 1 event.

auth: evl_ · success: 201

{ "metric": "task_success", "value": 1, "reason": "…" }
GET/v1/usage

Plan, current period, api_calls, eval_runs and events (used / included / remaining / overage).

auth: evl_ · success: 200

Errors

Every error body is { "error": "<code>", "message": "…" }.

400bad_requestInvalid JSON or missing fields
401unauthorizedMissing, invalid or revoked credentials — checked first
403forbiddenAccount lacks API access entitlement
404not_foundRun or key not found, or not yours
413payload_too_largeA record exceeds 64 KB of UTF-8 JSON (not counted)
429quota_exceededFree plan monthly event cap reached