{
"error": {
"message": "Insufficient balance: deploying this endpoint requires at least 1h of runway. Top up and try again.",
"type": "insufficient_quota",
"code": "insufficient_balance"
}
}
Compare a baseline model against up to 3 candidates on your own prompts, scored by an LLM judge.
Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a fresh answer to each prompt — the baseline included — so you’re comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure).
Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll GET /v1/evals/{id} until status is DONE or ERROR.
Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.
{
"error": {
"message": "Insufficient balance: deploying this endpoint requires at least 1h of runway. Top up and try again.",
"type": "insufficient_quota",
"code": "insufficient_balance"
}
}
The model you run today — or the literal __stored__ to use your logged answers as the baseline arm (the certified-switch shape): candidates are judged against what you actually shipped, a calibrated judge criterion is required, population matching is strict (a mismatched judge/sample population refuses instead of warning), and the gate applies a noninferiority margin scaled by the judge's measured error. An underpowered run answers 412 rather than concluding.
Up to 6. Every candidate answers every sample and is judged, so cost is linear in this number. Comparison runs need at least 1; a criterion run may grade the baseline alone. A registered customer endpoint is a candidate too: endpoint/<name> (see POST /v1/endpoints) — it generates through your URL at $0 and is judged exactly like a catalog model.
Screening mode: the server auto-fills the run like the dashboard's one-click screening (incumbent = your dominant logged model, baseline = its stored answers, candidates = the cheapest model of each distinct family, fixed quality rubric, sample_count = min(40, population)). With screening: true every other field becomes an optional override; name, sample_count, max_output_tokens, candidate_models (1-6, validated against the catalog), and sample_filters.dataset_id are honored.
What "good" means for this task. The judge uses it verbatim. Required for comparison runs; ignored for criterion runs (the criterion's judge prompt is the rubric).
Required string length: 10 - 2000
Example:
"Answers must be accurate, concise, and follow the system prompt's tone. Penalize hallucinated product features."
direct: which answer better satisfies the rubric. adherence: which answer is closer to the stored reference (the logged reply, or the dataset's assistant turn) — use this to check a cheaper or fine-tuned model against answers you already trust.
Which prompts to run. Omit to sample recent logged traffic. Keys: tag (X-Errorbar-Tag), model (sample only that model's traffic), segment (an auto-detected traffic segment, a segment value from GET /v1/logs), dataset_id (sample a managed dataset, e.g. a holdout split, instead of live logs), trace_replay (replay bake-off: sample whole completed agent runs, one teacher-forced sample per step; requires baseline_model "stored").
comparison: pairwise judging of candidates against the baseline. criterion: every model is graded pass/fail against a validated criterion, reported with the Rogan–Gladen correction from your alignment run.
Required when eval_kind is criterion. The run freezes the criterion's judge prompt, judge model, and alignment metrics at creation — a later re-alignment never rewrites a finished run's corrected rates.
Deterministic checks run against every generated response at finalize (final answer, reasoning stripped). Free, exact, and CI-gateable via GET /v1/evals/{id}/gate. Configs are validated at create time: an uncompilable regex or unparseable schema is a 400, never a queued-broken run.
Per-answer generation output cap. Sized by default so thinking models can finish reasoning AND answer — a candidate cut mid-reasoning loses comparisons for reasons unrelated to quality. The cost estimate shown before a run uses your traffic's MEASURED median tokens; this cap bounds the worst case.
Criterion runs only: the judge frozen at creation (name, prompt, and its TPR/TNR/kappa at that moment), so the run's corrected rates stay reproducible after the judge changes.
Where the prompts came from: tag, model, segment, dataset_id, trace_replay, and screening (set on screening runs). Echoes what the run was created with.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"errorbar","colors":{"primary":"#3f7d39","light":"#3bd495","dark":"#2f5e2a"},"logo":{"light":"https://mintcdn.com/omnia-9828cd09/dR-r1msnM4tGAtp4/logo/light.svg?fit=max\u0026auto=format\u0026n=dR-r1msnM4tGAtp4\u0026q=85\u0026s=0a8e72505cf8b9297d6df70ae03e61f1","dark":"https://mintcdn.com/omnia-9828cd09/dR-r1msnM4tGAtp4/logo/dark.svg?fit=max\u0026auto=format\u0026n=dR-r1msnM4tGAtp4\u0026q=85\u0026s=f68c0d824584773dfd066ad0a450f930"},"favicon":"https://mintcdn.com/omnia-9828cd09/dR-r1msnM4tGAtp4/favicon.svg?fit=max\u0026auto=format\u0026n=dR-r1msnM4tGAtp4\u0026q=85\u0026s=cb75d200c189cf8c0f5c83af1e8bb3b3","navbar":{"links":[{"href":"https://www.errorbar.ai/sign-up","label":"Sign up"}]},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"omnia-9828cd09","hasAudioNarration":false,"actualSubdomain":"omnia-9828cd09","customDomains":["docs.errorbar.ai"],"gitSource":{"type":"github","owner":"matiyas-h","repo":"omnia-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"b1fec96f-b9e8-4f8d-8036-90b4f2784b52","liveDeploymentHistoryId":"6aa66951a2a95f72566e8b62","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aa66951a2a95f72566e8b62"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aa66951a2a95f72566e8b62","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":99},{"language":"default","tag":"Documentation","count":53},{"language":"default","tag":"Judges (criteria) API","count":16},{"language":"default","tag":"Evals API","count":13},{"language":"default","tag":"Platform","count":12},{"language":"default","tag":"Run at scale","count":11},{"language":"default","tag":"Certified reward API","count":10},{"language":"default","tag":"Improve","count":9},{"language":"default","tag":"Reinforcement learning API","count":9},{"language":"default","tag":"Fine-tuning API","count":8}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/evals/queue-an-eval-run","slug":"/api-reference/evals/queue-an-eval-run","pageMetadata":{"title":"Queue an eval run","description":"Compare a baseline model against up to 3 candidates on **your own prompts**, scored by an LLM judge.\n\nPrompts are sampled from your logged traffic (or a managed dataset). Every model generates a **fresh** answer to each prompt — the baseline included — so you're comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure).\n\nRequires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll `GET /v1/evals/{id}` until `status` is `DONE` or `ERROR`.\n\nRequires request logging to be on, with at least 5 distinct captured prompts matching your filter.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/evals","href":"/api-reference/evals/queue-an-eval-run","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Compare a baseline model against up to 3 candidates on \", _jsx(_components.strong, {\n children: \"your own prompts\"\n }), \", scored by an LLM judge.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a \", _jsx(_components.strong, {\n children: \"fresh\"\n }), \" answer to each prompt — the baseline included — so you’re comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure).\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll \", _jsx(_components.code, {\n children: \"GET /v1/evals/{id}\"\n }), \" until \", _jsx(_components.code, {\n children: \"status\"\n }), \" is \", _jsx(_components.code, {\n children: \"DONE\"\n }), \" or \", _jsx(_components.code, {\n children: \"ERROR\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Queue an eval run","description":"Compare a baseline model against up to 3 candidates on **your own prompts**, scored by an LLM judge.\n\nPrompts are sampled from your logged traffic (or a managed dataset). Every model generates a **fresh** answer to each prompt — the baseline included — so you're comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure).\n\nRequires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll `GET /v1/evals/{id}` until `status` is `DONE` or `ERROR`.\n\nRequires request logging to be on, with at least 5 distinct captured prompts matching your filter.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/evals","href":"/api-reference/evals/queue-an-eval-run","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Evals"],"summary":"Queue an eval run","description":"Compare a baseline model against up to 3 candidates on **your own prompts**, scored by an LLM judge.\n\nPrompts are sampled from your logged traffic (or a managed dataset). Every model generates a **fresh** answer to each prompt — the baseline included — so you're comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure).\n\nRequires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll `GET /v1/evals/{id}` until `status` is `DONE` or `ERROR`.\n\nRequires request logging to be on, with at least 5 distinct captured prompts matching your filter.","operationId":"createEvalRun","requestBody":"4e9e0b79-8875-4116-af41-0eb3609d4550","responses":{"201":"ad490c5d-808d-4606-b6b3-b3c112139706","400":"20afb89d-af98-4c71-b223-a6f65a52cd15","401":"bc620082-0a16-4e63-918c-633d1daa32ac","402":"cfd2c2d0-cd1f-45bd-b604-aac62652f1a1","403":"24503f4f-91d4-4e35-b3fe-a0c34d68e1fb","422":"e3fe3bfe-7b35-4df4-9f43-91cfe5279529"},"method":"post","type":"path","servers":["7225afda-fbb9-43d7-bb56-160196b3872f","a0fa1f4b-c484-4da1-9eb0-0d3cf3ec20d1"],"security":["d7249d09-10f7-465d-b688-3db83ef725e0"],"path":"/v1/evals","baseUrlOptions":["https://gateway.errorbar.ai","https://www.errorbar.ai/api"],"title":"Queue an eval run","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","baseline_model","candidate_models","sample_count"],"properties":{"name":{"type":"string","maxLength":80,"example":"support-bot: 32B vs 235B","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"baseline_model":{"type":"string","description":"The model you run today — or the literal `__stored__` to use your logged answers as the baseline arm (the certified-switch shape): candidates are judged against what you actually shipped, a calibrated judge criterion is required, population matching is strict (a mismatched judge/sample population refuses instead of warning), and the gate applies a noninferiority margin scaled by the judge's measured error. An underpowered run answers 412 rather than concluding.","example":"Qwen/Qwen3-32B","isRequired":true,"uniqueKey":"baseline_model","typeLabel":"string"},"candidate_models":{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","uniqueKey":"candidate_models.items.[INDEX]","typeLabel":"string"},"example":["Qwen/Qwen3-30B-A3B-Instruct-2507"],"description":"Up to 6. Every candidate answers every sample and is judged, so cost is linear in this number. Comparison runs need at least 1; a criterion run may grade the baseline alone. A registered customer endpoint is a candidate too: `endpoint/\u003cname>` (see POST /v1/endpoints) — it generates through your URL at $0 and is judged exactly like a catalog model.","isRequired":true,"uniqueKey":"candidate_models","typeLabel":"string[]"},"sample_count":{"type":"integer","minimum":5,"maximum":500,"example":20,"isRequired":true,"uniqueKey":"sample_count","typeLabel":"integer"},"screening":{"type":"boolean","description":"Screening mode: the server auto-fills the run like the dashboard's one-click screening (incumbent = your dominant logged model, baseline = its stored answers, candidates = the cheapest model of each distinct family, fixed quality rubric, sample_count = min(40, population)). With screening: true every other field becomes an optional override; name, sample_count, max_output_tokens, candidate_models (1-6, validated against the catalog), and sample_filters.dataset_id are honored.","default":false,"uniqueKey":"screening","typeLabel":"boolean"},"rubric":{"type":"string","minLength":10,"maxLength":2000,"description":"What \"good\" means for this task. The judge uses it verbatim. Required for comparison runs; ignored for criterion runs (the criterion's judge prompt is the rubric).","example":"Answers must be accurate, concise, and follow the system prompt's tone. Penalize hallucinated product features.","uniqueKey":"rubric","typeLabel":"string"},"rubric_type":{"type":"string","enum":["direct","adherence"],"default":"direct","description":"direct: which answer better satisfies the rubric. adherence: which answer is closer to the stored reference (the logged reply, or the dataset's assistant turn) — use this to check a cheaper or fine-tuned model against answers you already trust.","uniqueKey":"rubric_type","typeLabel":"enum\u003cstring>"},"judge_model":{"type":"string","description":"Defaults to a strong instruct model. Prefer a judge from a different family than your candidates — LLM judges measurably favour their own family.","uniqueKey":"judge_model","typeLabel":"string"},"sample_filters":{"type":"object","description":"Which prompts to run. Omit to sample recent logged traffic. Keys: tag (X-Errorbar-Tag), model (sample only that model's traffic), segment (an auto-detected traffic segment, a `segment` value from GET /v1/logs), dataset_id (sample a managed dataset, e.g. a holdout split, instead of live logs), trace_replay (replay bake-off: sample whole completed agent runs, one teacher-forced sample per step; requires baseline_model \"__stored__\").","properties":{"tag":{"type":"string","description":"The X-Errorbar-Tag your requests carried.","example":"support-bot","uniqueKey":"sample_filters.tag","typeLabel":"string"},"model":{"type":"string","description":"Only prompts originally served by this model.","uniqueKey":"sample_filters.model","typeLabel":"string"},"segment":{"type":"string","description":"Auto-detected traffic segment (a `segment` value from GET /v1/logs — the family of system prompts sharing one template) — sample only that application surface's traffic. Composes with tag.","uniqueKey":"sample_filters.segment","typeLabel":"string"},"dataset_id":{"type":"string","description":"Sample a managed dataset instead of live logs.","uniqueKey":"sample_filters.dataset_id","typeLabel":"string"},"trace_replay":{"type":"boolean","description":"Sample whole completed agent runs, one teacher-forced sample per step; the recorded actions are the incumbent. Requires baseline_model \"__stored__\". Results gain per-candidate replay {traces, clean_runs}.","uniqueKey":"sample_filters.trace_replay","typeLabel":"boolean"}},"uniqueKey":"sample_filters","typeLabel":"object"},"eval_kind":{"type":"string","enum":["comparison","criterion"],"default":"comparison","description":"comparison: pairwise judging of candidates against the baseline. criterion: every model is graded pass/fail against a validated criterion, reported with the Rogan–Gladen correction from your alignment run.","uniqueKey":"eval_kind","typeLabel":"enum\u003cstring>"},"criterion_id":{"type":"string","description":"Required when eval_kind is criterion. The run freezes the criterion's judge prompt, judge model, and alignment metrics at creation — a later re-alignment never rewrites a finished run's corrected rates.","uniqueKey":"criterion_id","typeLabel":"string"},"assertions":{"type":"array","maxItems":10,"description":"Deterministic checks run against every generated response at finalize (final answer, reasoning stripped). Free, exact, and CI-gateable via GET /v1/evals/{id}/gate. Configs are validated at create time: an uncompilable regex or unparseable schema is a 400, never a queued-broken run.","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["json_valid","json_schema","regex_match","contains","not_contains","max_length","min_length","completed","tool_called","no_tool_call"],"isRequired":true,"uniqueKey":"assertions.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"Pattern / substring / length bound / tool name / stringified JSON Schema (full JSON Schema is enforced at run time). json_valid, completed and no_tool_call take no value.","uniqueKey":"assertions.items.[INDEX].value","typeLabel":"string"}},"description":"tool_called (value = tool name) and no_tool_call check the canonical action notation — generations offer the sample's tool definitions and every tool call renders as \"[tool call] name(args)\".","uniqueKey":"assertions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"assertions","typeLabel":"object[]"},"max_output_tokens":{"type":"integer","minimum":256,"maximum":16384,"default":4096,"description":"Per-answer generation output cap. Sized by default so thinking models can finish reasoning AND answer — a candidate cut mid-reasoning loses comparisons for reasons unrelated to quality. The cost estimate shown before a run uses your traffic's MEASURED median tokens; this cap bounds the worst case.","uniqueKey":"max_output_tokens","typeLabel":"integer"}},"description":"Snake_case body. Comparison runs also require rubric. Criterion runs require criterion_id. With screening: true, no field is required at all.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"support-bot: 32B vs 235B","baseline_model":"Qwen/Qwen3-32B","candidate_models":["Qwen/Qwen3-30B-A3B-Instruct-2507"],"sample_count":20,"screening":false,"rubric":"Answers must be accurate, concise, and follow the system prompt's tone. Penalize hallucinated product features.","rubric_type":"direct","judge_model":"\u003cstring>","sample_filters":{"tag":"support-bot","model":"\u003cstring>","segment":"\u003cstring>","dataset_id":"\u003cstring>","trace_replay":true},"eval_kind":"comparison","criterion_id":"\u003cstring>","assertions":[{"value":"\u003cstring>"}],"max_output_tokens":4096}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"ad490c5d-808d-4606-b6b3-b3c112139706":{"description":"The queued run.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","uniqueKey":"name","typeLabel":"string"},"rubric":{"type":"string","description":"What \"good\" means, in plain English. The judge scores against this.","uniqueKey":"rubric","typeLabel":"string"},"rubric_type":{"type":"string","enum":["direct","adherence"],"uniqueKey":"rubric_type","typeLabel":"enum\u003cstring>"},"eval_kind":{"type":"string","description":"comparison: pairwise judging against the baseline. criterion: a saved judge grades each model pass/fail.","enum":["comparison","criterion"],"uniqueKey":"eval_kind","typeLabel":"enum\u003cstring>"},"criterion_snapshot":{"oneOf":[{"type":"object","description":"Criterion runs only: the judge frozen at creation (name, prompt, and its TPR/TNR/kappa at that moment), so the run's corrected rates stay reproducible after the judge changes.","uniqueKey":"criterion_snapshot.oneOf.0","typeLabel":"object"},{"type":"null","description":"Criterion runs only: the judge frozen at creation (name, prompt, and its TPR/TNR/kappa at that moment), so the run's corrected rates stay reproducible after the judge changes.","uniqueKey":"criterion_snapshot.oneOf.1","typeLabel":"null"}],"uniqueKey":"criterion_snapshot","typeLabel":"object | null"},"baseline_model":{"type":"string","uniqueKey":"baseline_model","typeLabel":"string"},"candidate_models":{"type":"array","items":{"type":"string","uniqueKey":"candidate_models.items.[INDEX]","typeLabel":"string"},"uniqueKey":"candidate_models","typeLabel":"string[]"},"judge_model":{"type":"string","uniqueKey":"judge_model","typeLabel":"string"},"sample_count":{"type":"integer","uniqueKey":"sample_count","typeLabel":"integer"},"gen_max_output_tokens":{"type":"integer","description":"Per-answer generation cap the run was created with (see max_output_tokens on create).","uniqueKey":"gen_max_output_tokens","typeLabel":"integer"},"sample_filters":{"type":"object","description":"Where the prompts came from: tag, model, segment, dataset_id, trace_replay, and screening (set on screening runs). Echoes what the run was created with.","uniqueKey":"sample_filters","typeLabel":"object"},"status":{"type":"string","enum":["PENDING","RUNNING","DONE","ERROR","CANCELLED"],"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"error":{"oneOf":[{"type":"string","uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"string | null"},"assertions":{"oneOf":[{"type":"array","description":"The deterministic assertion configs the run was created with, when any.","uniqueKey":"assertions.oneOf.0","typeLabel":"array"},{"type":"null","description":"The deterministic assertion configs the run was created with, when any.","uniqueKey":"assertions.oneOf.1","typeLabel":"null"}],"uniqueKey":"assertions","typeLabel":"array | null"},"progress_ratio":{"type":"number","description":"0–1. Completed inference calls over total.","uniqueKey":"progress_ratio","typeLabel":"number"},"results":{"oneOf":[{"type":"object","description":"Present when status is DONE. Comparison runs: sample_count, clipped_samples, baseline {model, stored_answers, truncated, avg_latency_ms, eval_cost_micros}, per_candidate [{model, win_rate, wins, ties, losses, ci95, failed, attempted, unreportable, truncated, avg_latency_ms, eval_cost_micros, savings_pct, replay?}], judge_cost_micros, and screening (screening runs only: incumbent, token_shape, per_candidate similarity + estimated cost placement, recommendation). Criterion runs: per_model [{model, observed_pass_rate, observed_ci, corrected_pass_rate, corrected_ci, ...}] using the frozen judge's measured error rates. Assertion runs add assertion_results.","uniqueKey":"results.oneOf.0","typeLabel":"object"},{"type":"null","description":"Present when status is DONE. Comparison runs: sample_count, clipped_samples, baseline {model, stored_answers, truncated, avg_latency_ms, eval_cost_micros}, per_candidate [{model, win_rate, wins, ties, losses, ci95, failed, attempted, unreportable, truncated, avg_latency_ms, eval_cost_micros, savings_pct, replay?}], judge_cost_micros, and screening (screening runs only: incumbent, token_shape, per_candidate similarity + estimated cost placement, recommendation). Criterion runs: per_model [{model, observed_pass_rate, observed_ci, corrected_pass_rate, corrected_ci, ...}] using the frozen judge's measured error rates. Assertion runs add assertion_results.","uniqueKey":"results.oneOf.1","typeLabel":"null"}],"uniqueKey":"results","typeLabel":"object | null"},"created_at":{"type":"string","format":"date-time","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","name":"\u003cstring>","rubric":"\u003cstring>","rubric_type":"direct","eval_kind":"comparison","criterion_snapshot":{},"baseline_model":"\u003cstring>","candidate_models":["\u003cstring>"],"judge_model":"\u003cstring>","sample_count":123,"gen_max_output_tokens":123,"sample_filters":{},"status":"PENDING","error":"\u003cstring>","assertions":"\u003carray>","progress_ratio":123,"results":{},"created_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"20afb89d-af98-4c71-b223-a6f65a52cd15":{"description":"Malformed request or invalid field.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","description":"invalid_request_error, insufficient_quota, rate_limit_error, or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","description":"Machine-stable cause, e.g. invalid_api_key, not_found, insufficient_permissions, precondition_failed.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"}},"required":["message","type","code"],"uniqueKey":"error","typeLabel":"object"}},"description":"Every refusal — gateway and management API alike — uses this one envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>","type":"\u003cstring>","code":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"bc620082-0a16-4e63-918c-633d1daa32ac":{"description":"Missing, malformed, or revoked API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","description":"invalid_request_error, insufficient_quota, rate_limit_error, or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","description":"Machine-stable cause, e.g. invalid_api_key, not_found, insufficient_permissions, precondition_failed.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"}},"required":["message","type","code"],"uniqueKey":"error","typeLabel":"object"}},"description":"Every refusal — gateway and management API alike — uses this one envelope.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"message":"Invalid API key","type":"invalid_request_error","code":"invalid_api_key"}},"examples":{"Example":{"title":"Example","value":{"error":{"message":"Invalid API key","type":"invalid_request_error","code":"invalid_api_key"}}}},"exampleType":"examples"}},"exampleType":"examples"},"cfd2c2d0-cd1f-45bd-b604-aac62652f1a1":{"description":"Your wallet can't cover the required prepaid runway.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","description":"invalid_request_error, insufficient_quota, rate_limit_error, or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","description":"Machine-stable cause, e.g. invalid_api_key, not_found, insufficient_permissions, precondition_failed.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"}},"required":["message","type","code"],"uniqueKey":"error","typeLabel":"object"}},"description":"Every refusal — gateway and management API alike — uses this one envelope.","uniqueKey":"","typeLabel":"object"},"example":{"error":{"message":"Insufficient balance: deploying this endpoint requires at least 1h of runway. Top up and try again.","type":"insufficient_quota","code":"insufficient_balance"}},"examples":{"Example":{"title":"Example","value":{"error":{"message":"Insufficient balance: deploying this endpoint requires at least 1h of runway. Top up and try again.","type":"insufficient_quota","code":"insufficient_balance"}}}},"exampleType":"examples"}},"exampleType":"examples"},"24503f4f-91d4-4e35-b3fe-a0c34d68e1fb":{"description":"The key lacks the required owner/admin permission.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","description":"invalid_request_error, insufficient_quota, rate_limit_error, or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","description":"Machine-stable cause, e.g. invalid_api_key, not_found, insufficient_permissions, precondition_failed.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"}},"required":["message","type","code"],"uniqueKey":"error","typeLabel":"object"}},"description":"Every refusal — gateway and management API alike — uses this one envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>","type":"\u003cstring>","code":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"e3fe3bfe-7b35-4df4-9f43-91cfe5279529":{"description":"Screening only: nothing to screen. There is no (or too little) logged traffic; the error names the fix, and screening also works on imported provider logs via sample_filters.dataset_id.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"type":{"type":"string","description":"invalid_request_error, insufficient_quota, rate_limit_error, or api_error.","isRequired":true,"uniqueKey":"error.type","typeLabel":"string"},"code":{"type":"string","description":"Machine-stable cause, e.g. invalid_api_key, not_found, insufficient_permissions, precondition_failed.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"}},"required":["message","type","code"],"uniqueKey":"error","typeLabel":"object"}},"description":"Every refusal — gateway and management API alike — uses this one envelope.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"message":"\u003cstring>","type":"\u003cstring>","code":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d7249d09-10f7-465d-b688-3db83ef725e0":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your workspace API key, e.g. `sk_sovereign_...`, sent as `Authorization: Bearer \u003ckey>`.","scopes":[]}}},"servers":{"7225afda-fbb9-43d7-bb56-160196b3872f":{"url":"https://gateway.errorbar.ai","description":"Production"},"a0fa1f4b-c484-4da1-9eb0-0d3cf3ec20d1":{"url":"https://www.errorbar.ai/api","description":"Control plane (also served at this base URL)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Your workspace API key, e.g. `sk_sovereign_...`, sent as `Authorization: Bearer \u003ckey>`.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Your workspace API key, e.g. `sk_sovereign_...`, sent as `Authorization: Bearer \u003ckey>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"omnia-9828cd09","siteName":"errorbar","title":"Queue an eval run - errorbar","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-13T09:14:06.879Z","originalFileLocation":"api-reference/evals/queue-an-eval-run.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Compare a baseline model against up to 3 candidates on your own prompts, scored by an LLM judge. Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a fresh answer to each prompt — the baseline included — so you\u0026#x27;re comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure). Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll GET /v1/evals/{id} until status is DONE or ERROR. Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.\">\u003cmeta data-mint-head name=\"application-name\" content=\"errorbar\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Queue an eval run - errorbar\">\u003cmeta data-mint-head property=\"og:description\" content=\"Compare a baseline model against up to 3 candidates on your own prompts, scored by an LLM judge. Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a fresh answer to each prompt — the baseline included — so you\u0026#x27;re comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure). Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll GET /v1/evals/{id} until status is DONE or ERROR. Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"errorbar\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://omnia-9828cd09.mintlify.app/_mintlify/api/og/v2?division=Evals+API\u0026amp;title=Queue+an+eval+run\u0026amp;description=Compare+a+baseline+model+against+up+to+3+candidates+on+**your+own+prompts**%2C+scored+by+an+LLM+judge.%0A%0APrompts+are+sampled+from+your+logged+traffic+%28or+a+managed\u0026amp;theme=4890a253571116e8d6e1ff75\u0026amp;signature=6c02e641bc7b907e33ef3e2655a61679cc1c56719f62d7bcba83421c3b6bad0f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Queue an eval run - errorbar\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Compare a baseline model against up to 3 candidates on your own prompts, scored by an LLM judge. Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a fresh answer to each prompt — the baseline included — so you\u0026#x27;re comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure). Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll GET /v1/evals/{id} until status is DONE or ERROR. Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://omnia-9828cd09.mintlify.app/_mintlify/api/og/v2?division=Evals+API\u0026amp;title=Queue+an+eval+run\u0026amp;description=Compare+a+baseline+model+against+up+to+3+candidates+on+**your+own+prompts**%2C+scored+by+an+LLM+judge.%0A%0APrompts+are+sampled+from+your+logged+traffic+%28or+a+managed\u0026amp;theme=4890a253571116e8d6e1ff75\u0026amp;signature=6c02e641bc7b907e33ef3e2655a61679cc1c56719f62d7bcba83421c3b6bad0f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/omnia-9828cd09/ubKwIdVYRFtlXDaF/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"errorbar\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3f7d39\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/evals/queue-an-eval-run.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.errorbar.ai/#organization\",\"name\":\"errorbar\",\"url\":\"https://docs.errorbar.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/omnia-9828cd09/dR-r1msnM4tGAtp4/logo/light.svg?fit=max\u0026auto=format\u0026n=dR-r1msnM4tGAtp4\u0026q=85\u0026s=0a8e72505cf8b9297d6df70ae03e61f1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.errorbar.ai#website\",\"name\":\"errorbar\",\"url\":\"https://docs.errorbar.ai\",\"publisher\":{\"@id\":\"https://docs.errorbar.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run#webpage\",\"url\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run\",\"name\":\"Queue an eval run\",\"description\":\"Compare a baseline model against up to 3 candidates on your own prompts, scored by an LLM judge. Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a fresh answer to each prompt — the baseline included — so you're comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure). Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll GET /v1/evals/{id} until status is DONE or ERROR. Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.\",\"dateModified\":\"2026-09-13T09:14:06.879Z\",\"isPartOf\":{\"@id\":\"https://docs.errorbar.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Evals API\",\"item\":\"https://docs.errorbar.ai/api-reference/evals/list-eval-runs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Queue an eval run\",\"item\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run#apireference\",\"headline\":\"Queue an eval run\",\"name\":\"Queue an eval run\",\"description\":\"Compare a baseline model against up to 3 candidates on your own prompts, scored by an LLM judge. Prompts are sampled from your logged traffic (or a managed dataset). Every model generates a fresh answer to each prompt — the baseline included — so you're comparing models, not comparing a new answer against a stale logged one. Each pair is judged twice with the answers swapped; a candidate must win both orderings to score a win (position bias is the classic LLM-judge failure). Requires an owner/admin key: generations and judging bill your wallet as normal usage. The run is queued and processed in the background — poll GET /v1/evals/{id} until status is DONE or ERROR. Requires request logging to be on, with at least 5 distinct captured prompts matching your filter.\",\"url\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run\",\"mainEntityOfPage\":{\"@id\":\"https://docs.errorbar.ai/api-reference/evals/queue-an-eval-run#webpage\"},\"dateModified\":\"2026-09-13T09:14:06.879Z\",\"publisher\":{\"@id\":\"https://docs.errorbar.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.errorbar.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"errorbar\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"errorbar","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API overview","href":"/api-reference/introduction"}]},{"group":"Inference API","pages":[{"title":"Create chat completion","deprecated":null,"version":null,"openapi":"/openapi-inference.json post /chat/completions","href":"/api-reference/chat/create-chat-completion"},{"title":"Create embeddings","deprecated":null,"version":null,"openapi":"/openapi-inference.json post /embeddings","href":"/api-reference/embeddings/create-embeddings"},{"title":"Rerank documents","deprecated":null,"version":null,"openapi":"/openapi-inference.json post /rerank","href":"/api-reference/rerank/rerank-documents"},{"title":"Create a response","deprecated":null,"version":null,"openapi":"/openapi-inference.json post /responses","href":"/api-reference/responses/create-a-response"},{"title":"List models","deprecated":null,"version":null,"openapi":"/openapi-inference.json get /models","href":"/api-reference/models/list-models"}]},{"group":"Capture \u0026 setup API","pages":[{"title":"OTLP trace ingest","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/traces","href":"/api-reference/otlp-trace-ingest"},{"title":"Setup status","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/setup/status","href":"/api-reference/setup-status"}]},{"group":"Logs \u0026 datasets API","pages":[{"title":"List logged exchanges","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/logs","href":"/api-reference/logs/list-logged-exchanges"},{"title":"Export logged exchanges as JSONL","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/logs/export","href":"/api-reference/logs/export-logged-exchanges-as-jsonl"},{"title":"Import graded traffic","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/logs/import","href":"/api-reference/logs/import-graded-traffic"},{"title":"Get an agent run / grouped conversation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/traces/{trace_id}","href":"/api-reference/get-an-agent-run-grouped-conversation"},{"title":"Create a dataset from logs","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/datasets/from_logs","href":"/api-reference/logs/create-a-dataset-from-logs"},{"title":"Check texts for benchmark contamination","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/datasets/decontaminate","href":"/api-reference/logs/check-texts-for-benchmark-contamination"}]},{"group":"Grades (labels) API","pages":[{"title":"List trace labels","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/labels","href":"/api-reference/labels/list-trace-labels"},{"title":"Label a trace","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/labels","href":"/api-reference/labels/label-a-trace"},{"title":"List label sets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/label_sets","href":"/api-reference/labels/list-label-sets"},{"title":"Create a label set","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/label_sets","href":"/api-reference/labels/create-a-label-set"},{"title":"Attach a label set","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/label_sets/{id}/attach","href":"/api-reference/labels/attach-a-label-set"},{"title":"Freeze a label set","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/label_sets/{id}/freeze","href":"/api-reference/labels/freeze-a-label-set"}]},{"group":"Judges (criteria) API","pages":[{"title":"List criteria","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/criteria","href":"/api-reference/criteria/list-criteria"},{"title":"Create a criterion","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/criteria","href":"/api-reference/criteria/create-a-criterion"},{"title":"List criterion templates","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/criteria/templates","href":"/api-reference/list-criterion-templates"},{"title":"Get a criterion","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/criteria/{id}","href":"/api-reference/get-a-criterion"},{"title":"Update a criterion","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/criteria/{id}","href":"/api-reference/update-a-criterion"},{"title":"Delete a criterion","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/criteria/{id}","href":"/api-reference/delete-a-criterion"},{"title":"Align a criterion against your labels","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/criteria/{id}/align","href":"/api-reference/criteria/align-a-criterion-against-your-labels"},{"title":"Get the persistent alignment report","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/criteria/{id}/alignment","href":"/api-reference/get-the-persistent-alignment-report"},{"title":"Scan unlabeled traffic for suspected failures","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/criteria/{id}/scan","href":"/api-reference/criteria/scan-unlabeled-traffic-for-suspected-failures"},{"title":"Suggest judges from your failure critiques","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/criteria/suggest","href":"/api-reference/criteria/suggest-judges-from-your-failure-critiques"},{"title":"Run one auto-improve iteration on a judge","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/criteria/{id}/auto_improve","href":"/api-reference/criteria/run-one-auto-improve-iteration-on-a-judge"},{"title":"Get a calibration certificate","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/criteria/{id}/certificate","href":"/api-reference/criteria/get-a-calibration-certificate"},{"title":"The certificate before and after adjudication","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/criteria/{id}/adjudication","href":"/api-reference/judges/the-certificate-before-and-after-adjudication"},{"title":"Adjudicate a judge/human disagreement","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/labels/{id}/adjudicate","href":"/api-reference/judges/adjudicate-a-judgehuman-disagreement"},{"title":"Get judge settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings/judge","href":"/api-reference/criteria/get-judge-settings"},{"title":"Update judge settings","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/settings/judge","href":"/api-reference/criteria/update-judge-settings"}]},{"group":"Evals API","pages":[{"title":"List eval runs","description":"This workspace's eval runs, newest first (max 50), in the {\"object\": \"list\", \"data\": [...]} envelope.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals","href":"/api-reference/evals/list-eval-runs"},{"title":"Queue an eval run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/evals","href":"/api-reference/evals/queue-an-eval-run"},{"title":"Get an eval run","description":"Status and, once `status` is `DONE`, the report: per-candidate win rate, W/T/L, average latency, cost, and savings versus the baseline on the same prompts. Poll this after queueing a run.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals/{id}","href":"/api-reference/evals/get-an-eval-run"},{"title":"Delete an eval run","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/evals/{id}","href":"/api-reference/evals/delete-an-eval-run"},{"title":"Cancel an eval run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/evals/{id}/cancel","href":"/api-reference/evals/cancel-an-eval-run"},{"title":"Get an eval run's test cases","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals/{id}/samples","href":"/api-reference/evals/get-an-eval-runs-test-cases"},{"title":"Gate a deploy on an eval run","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals/{id}/gate","href":"/api-reference/evals/gate-a-deploy-on-an-eval-run"},{"title":"Compare two eval runs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals/compare","href":"/api-reference/evals/compare-two-eval-runs"},{"title":"List failure clusters","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals/failure_clusters","href":"/api-reference/evals/list-failure-clusters"},{"title":"Get an evidence bundle","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/evals/{id}/evidence","href":"/api-reference/evals/get-an-evidence-bundle"},{"title":"List registered endpoints","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/endpoints","href":"/api-reference/evals/list-registered-endpoints"},{"title":"Register an endpoint","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/endpoints","href":"/api-reference/evals/register-an-endpoint"},{"title":"Remove an endpoint","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/endpoints/{id}","href":"/api-reference/evals/remove-an-endpoint"}]},{"group":"Alerts API","pages":[{"title":"List fired alerts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/alerts","href":"/api-reference/alerts/list-fired-alerts"}]},{"group":"Fine-tuning API","pages":[{"title":"List training files","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fine_tuning/files","href":"/api-reference/fine-tuning/list-training-files"},{"title":"Upload training file","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fine_tuning/files","href":"/api-reference/fine-tuning/upload-training-file"},{"title":"List fine-tuning jobs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fine_tuning/jobs","href":"/api-reference/fine-tuning/list-fine-tuning-jobs"},{"title":"Create fine-tuning job","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fine_tuning/jobs","href":"/api-reference/fine-tuning/create-fine-tuning-job"},{"title":"Get fine-tuning job","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fine_tuning/jobs/{id}","href":"/api-reference/fine-tuning/get-fine-tuning-job"},{"title":"Cancel fine-tuning job","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/fine_tuning/jobs/{id}","href":"/api-reference/fine-tuning/cancel-fine-tuning-job"},{"title":"Start a bake-off","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fine_tuning/jobs/{id}/bakeoff","href":"/api-reference/fine-tuning/start-a-bake-off"},{"title":"Get bake-off state","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fine_tuning/jobs/{id}/bakeoff","href":"/api-reference/fine-tuning/get-bake-off-state"}]},{"group":"Certified reward API","pages":[{"title":"Create a reward session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reward/sessions","href":"/api-reference/certified-reward/create-a-reward-session"},{"title":"List reward sessions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reward/sessions","href":"/api-reference/certified-reward/list-reward-sessions"},{"title":"Get a reward session","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reward/sessions/{id}","href":"/api-reference/certified-reward/get-a-reward-session"},{"title":"Stop a reward session","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/reward/sessions/{id}","href":"/api-reference/certified-reward/stop-a-reward-session"},{"title":"Score a rollout group","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reward/score","href":"/api-reference/certified-reward/score-a-rollout-group"},{"title":"Mid-run anchor check","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reward/sessions/{id}/anchor","href":"/api-reference/certified-reward/mid-run-anchor-check"},{"title":"The anchor report","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reward/sessions/{id}/anchor","href":"/api-reference/certified-reward/the-anchor-report"},{"title":"Resume a held session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reward/sessions/{id}/resume","href":"/api-reference/certified-reward/resume-a-held-session"},{"title":"Export the graded trajectories","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reward/sessions/{id}/export","href":"/api-reference/certified-reward/export-the-graded-trajectories"},{"title":"Export the environment bundle","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reward/sessions/{id}/environment","href":"/api-reference/certified-reward/export-the-environment-bundle"}]},{"group":"Reinforcement learning API","pages":[{"title":"List GRPO runs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/grpo/runs","href":"/api-reference/reinforcement-learning/list-grpo-runs"},{"title":"Start a GRPO run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/grpo/runs","href":"/api-reference/reinforcement-learning/start-a-grpo-run"},{"title":"Get a GRPO run","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/grpo/runs/{id}","href":"/api-reference/reinforcement-learning/get-a-grpo-run"},{"title":"Stop a GRPO run","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/grpo/runs/{id}/stop","href":"/api-reference/reinforcement-learning/stop-a-grpo-run"},{"title":"Download trained adapter weights","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/grpo/runs/{id}/weights","href":"/api-reference/reinforcement-learning/download-trained-adapter-weights"},{"title":"List RAFT rounds","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/raft/rounds","href":"/api-reference/reinforcement-learning/list-raft-rounds"},{"title":"List declared agent tools","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/env/tools","href":"/api-reference/reinforcement-learning/list-declared-agent-tools"},{"title":"Register or update a tool","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/env/tools","href":"/api-reference/reinforcement-learning/register-or-update-a-tool"},{"title":"Revoke a tool registration","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/env/tools/{id}","href":"/api-reference/reinforcement-learning/revoke-a-tool-registration"}]},{"group":"Dedicated endpoints API","pages":[{"title":"List dedicated endpoints","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/dedicated","href":"/api-reference/dedicated-endpoints/list-dedicated-endpoints"},{"title":"List deploy templates","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/dedicated/templates","href":"/api-reference/dedicated-endpoints/list-deploy-templates"},{"title":"Create dedicated endpoint","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/dedicated","href":"/api-reference/dedicated-endpoints/create-dedicated-endpoint"},{"title":"Get dedicated endpoint","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/dedicated/{id}","href":"/api-reference/dedicated-endpoints/get-dedicated-endpoint"},{"title":"Update dedicated endpoint","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/dedicated/{id}","href":"/api-reference/dedicated-endpoints/update-dedicated-endpoint"},{"title":"Delete dedicated endpoint","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/dedicated/{id}","href":"/api-reference/dedicated-endpoints/delete-dedicated-endpoint"}]},{"group":"Batches API","pages":[{"title":"List batches","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/batches","href":"/api-reference/batches/list-batches"},{"title":"Create a batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/batches","href":"/api-reference/batches/create-a-batch"},{"title":"Retrieve a batch","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/batches/{id}","href":"/api-reference/batches/retrieve-a-batch"},{"title":"Cancel a batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/batches/{id}/cancel","href":"/api-reference/batches/cancel-a-batch"}]},{"group":"Model aliases API","pages":[{"title":"List aliases","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/aliases","href":"/api-reference/model-aliases/list-aliases"},{"title":"Create or repoint an alias","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/aliases","href":"/api-reference/model-aliases/create-or-repoint-an-alias"},{"title":"Delete an alias","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/aliases/{id}","href":"/api-reference/model-aliases/delete-an-alias"}]},{"group":"Model versions API","pages":[{"title":"List model versions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/model_versions","href":"/api-reference/list-model-versions"},{"title":"Get a model version","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/model_versions/{id}","href":"/api-reference/get-a-model-version"},{"title":"Adopt a model version (or roll back)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/model_versions/{id}/adopt","href":"/api-reference/model-versions/adopt-a-model-version-or-roll-back"}]},{"group":"Audit \u0026 proving API","pages":[{"title":"Export the audit log","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/audit/export","href":"/api-reference/audit-\u0026-proving/export-the-audit-log"},{"title":"Verify the audit chain","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/audit/verify","href":"/api-reference/audit-\u0026-proving/verify-the-audit-chain"},{"title":"List deletion tombstones","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/audit/tombstones","href":"/api-reference/audit-\u0026-proving/list-deletion-tombstones"},{"title":"Record a deletion tombstone","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/audit/tombstones","href":"/api-reference/audit-\u0026-proving/record-a-deletion-tombstone"},{"title":"List enforcement refusals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/enforcement/refusals","href":"/api-reference/audit-\u0026-proving/list-enforcement-refusals"},{"title":"Verify a signed document","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/verify","href":"/api-reference/audit-\u0026-proving/verify-a-signed-document"}]}]}]},"title":"Queue an eval run - errorbar","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}