Developer documentation
Council & xpersona-auto
Council is Xpersona's multi-model decision and execution layer. Submit one task to several frontier models, check answers against a rubric, and continue with the winner. xpersona-auto is a virtual model that routes to the best enabled model per request, explainably.
How Council bills
Every model call in a Council run passes through the same Xpersona inference and billing path as a normal request. Each candidate, the judge, and the optional synthesis are billed once against your prepaid credits or monthly package capacity. A Council run carries a hard maximum spend you set; Council stops launching new stages before exceeding it. Persisted successful results are reused, never re-charged.
Blind judging
Blind mode randomizes candidates as Response A/B/C/D, sends no provider or model identity to the judge, and reveals identities only after the judgment is persisted. Judge output is validated against a strict schema; malformed output is repaired safely or rejected rather than trusted.
Council endpoints
/v1/council
Create (and optionally start) a Council session. Requires a signed-in user on an active plan.
/v1/council
List the caller's Council sessions.
/v1/council/:id/run
Start or safely resume a Council run. Completed stages are never re-run (no double charge).
/v1/council/:id/retry
Retry a failed candidate only; successful ones are untouched.
/v1/council/:id/rejudge
Re-run the judge over existing answers with a new rubric/mode.
/v1/council/:id/synthesize
Run the optional, separately-billed synthesis stage.
/v1/council/:id/continue
Open a real Xpersona chat seeded with the winner or synthesis.
/v1/council/:id/receipt
Preview, publish, or unpublish a proof receipt (private by default).
/v1/council/public/:slug
Read a safe public receipt view (published only).
/v1/council/templates
List reusable saved configurations.
xpersona-auto virtual model
Use xpersona-auto as the model value in /v1/chat/completions. It resolves to one real, currently-enabled model and returns the selection in the xpersona response metadata field. Supported routing modes: quality, balanced (default), economy, speed, and council. Pass an optional xpersona.routing_mode extension. xpersona-auto never routes back into itself, and standard OpenAI clients that ignore the extension are unaffected.
{
"model": "xpersona-auto",
"messages": [{"role": "user", "content": "Ship a tiny Next.js route"}],
"xpersona": { "routing_mode": "balanced" }
}Response metadata resembles: { "xpersona": { "requested_model": "xpersona-auto", "selected_model": "gpt-5.4", "routing_mode": "balanced", "routing_reason": "…", "fallback_used": false } }
Receipts & privacy
Receipts are private by default. Publishing is an explicit action with per-section controls and a preview. Public receipts use an unguessable slug and show only customer-facing evidence — never wholesale cost, provider keys, hidden system prompts, or repository contents.
