blueprint to check personas against the exact field set and consistency
rules they were generated from. Omit it to run the structural checks alone.
Use this to quality-check personas you have — your own, or the personas returned
by Personas and Enhance.
This endpoint is asynchronous, in the same shape as
Personas: the POST returns 200 OK with an
id, and you GET the evaluation repository route until the report is ready.
Authorization
Your bearer token:
Bearer <token>. See Authentication.Request body
The personas to check. Each entry is a persona in the shape returned by
Personas:
persona_id, a flat fields
map, system_prompt, and markdown. Must contain at least one persona.Optional. The population blueprint the
personas were generated from. When present, personas are checked against its
field set, its
ordered_values, and its constraints, and marginal fidelity is
scored against its declared distributions.Request
Start an evaluation
ThePOST returns 200 OK with an id used with the evaluation repository route.
The evaluation’s identifier. Use it to poll for the report.
Always
pending in this response — the evaluation has been accepted and queued.200 OK
The gates run deterministically over the personas you send and make no
generation calls, so an evaluation finishes quickly — but it is still
asynchronous and polled by
id, the same as
population generation.
A constraint that references a field that is missing or not numeric is reported
as not applicable rather than failing.Poll for the report
GET with the returned id until status is succeeded or failed.
The evaluation’s identifier, the same value you started.
Where the evaluation is in its lifecycle. One of
pending, running,
succeeded, or failed. Keep polling on pending and running; stop on
succeeded and failed.The evaluation report, present only when
status is succeeded. Its shape
is described under The report below.A stable failure category such as
provider_error. Present only when status
is failed.A
succeeded evaluation means the gates ran to completion — it does not mean
the personas passed. Read result.passed for the quality verdict. A failed
status means the evaluation itself could not run (for example a malformed
request body), not that a persona failed a gate.The report
Whenstatus is succeeded, the poll carries the report under result.
The overall verdict:
true only when every gate on every persona and every
batch-level gate passed.Batch-level gates not tied to a single persona — for example a diversity floor
or a marginal-fidelity check across the whole set.
One scorecard per input persona.
How varied the set is, in the same shape as the population
diversity report. Present for
multi-persona inputs.
Per-field marginal fidelity, in the same shape as the population
marginals. Present when a
blueprint
is supplied and the input holds more than one persona.result:
200 OK (succeeded)
succeeded — result.passed is
false and the failing gate carries a detail explaining why:
200 OK (persona failed a gate)
result.passed: false is a successful run reporting a
quality failure; inspect each scorecards[].gates entry and the batch gates for
the ones whose passed is false.
When the evaluation fails
If the evaluation itself cannot run — for example a malformed request body — the poll returns200 OK with status: "failed" and an error instead of a
result:
200 OK (failed)
status and error, not on the HTTP status of the
poll — a failed evaluation is reported with 200 OK. A persona failing a gate is
not a failed evaluation; that is a succeeded evaluation with
result.passed: false (see above).
Errors
ThePOST rejects a bad request before any evaluation starts:
| Status | Code | When |
|---|---|---|
401 | UNAUTHORIZED | The bearer token is missing, invalid, or expired. |
402 | PAYMENT_REQUIRED | Your credit balance can’t cover the request. See Credits and billing. |
422 | validation_failed | personas is missing, empty, or a persona is malformed. |
Example
Start the evaluation, poll its repository route until it succeeds, then read the report fromresult.
Next
- Personas — generate a population to validate.
- Enhance a persona — improve a persona, then re-validate it.
- Errors — the full error model and how to recover.

