Request to submit an uploaded conversation for evaluation.
Requirements:
At least one of: transcript, audio_url, or upload_id must be provided
audio_url and upload_id are mutually exclusive
Payload Size Limit: The combined queued payload is subject to a 256 KB limit (including large metadata values); oversized payloads return 413 PAYLOAD_TOO_LARGE.
Best Practices:
Provide both transcript and audio_url (or upload_id) when available (enables audio metrics)
Include start_time and end_time in transcript messages when submitting audio_url to avoid automatic retranscription
Include external_conversation_id for correlation with external systems
Add metadata for conditional metrics and analytics
Audio + Transcript Behavior:
If you submit both transcript and audio_url:
WITH timing (start_time/end_time on each message): Transcript is used as-is, audio metrics computed from timing
WITHOUT timing: Audio is automatically transcribed and diarized, provided transcript is ignored for metrics
Public or presigned HTTP/HTTPS URL to audio from any cloud provider.
Every resolved address must be publicly routable. Redirects are rejected.
Raw s3://bucket/key URLs are limited to Coval-issued uploads in the
shared or organization-specific audio bucket under
audio/<authenticated_organization_id>/. For other storage locations,
supply a presigned HTTPS URL or use upload_id from POST /v1/audio:upload.
Audio Validation Requirements:
Formats: WAV or MP3 ONLY (detected via magic bytes, not file extension)
Channels: Stereo (recommended) or mono. Stereo assigns speaker roles deterministically from channel position (channel 0 = agent, channel 1 = user); mono infers roles by classifying transcript content, which is typically accurate but less reliable than channel-based mapping.
Duration: 5 seconds minimum, 1 hour (3600 seconds) maximum
File Size: 200 MB maximum
Validation: Audio is validated BEFORE processing begins
Reference to a previously issued direct upload from POST /v1/audio:upload.
Use this when you've uploaded audio bytes directly via a Coval-issued
presigned PUT URL. The Coval backend resolves the staged upload, validates
it, and promotes it into managed recordings storage.
Mutually exclusive with audio and audio_url — provide exactly one
audio source.
Validation Errors:
404 NOT_FOUND: upload_id does not exist, has expired, has already been consumed,
or belongs to a different organization (404 is returned in all four cases to
avoid leaking ID existence across organizations).
Metric IDs or exact legacy metric_name values to evaluate. IDs take precedence.
Legacy names must resolve to a unique active metric visible in the request workspace.
Display names are not accepted. Unknown, ambiguous, inactive, hidden, deleted, or
inaccessible selections return 400 INVALID_ARGUMENT.
If not provided, uses your default metrics configured in the Coval dashboard.
Custom metadata for conditional metrics and tracking.
Used for:
Triggering conditional metrics
Filtering conversations
Custom analytics and reporting
Reserved key coval_simulation_id: set it to the value of the
X-Coval-Simulation-Id SIP header delivered with every inbound
simulation call. Organizations that opt in to the simulation
filter have submits carrying a matching platform-simulation id
dropped without creating a conversation (see the 200 response).
Optional tags to apply to this conversation for filtering and organization.
Tags are normalized case-insensitively and stored on the uploaded
conversation's backing run. Use them to group uploaded conversations
by product, workflow, customer segment, or other operational slices.
The instant the audio recording begins, in ISO 8601 with sub-second precision. Coval uses it to align the recording with trace spans in the trace viewer and to locate traces around the call.
Optional. Without it, the trace viewer draws the recording without aligning it to spans.
Agent resource ID (22-character ShortUUID) to associate with this conversation.
Must reference an existing agent within your organization. The agent is
validated at submission time:
400 INVALID_ARGUMENT: Malformed ID (wrong length or characters).
404 NOT_FOUND: Agent does not exist or belongs to a different organization.
Pattern: ^[A-Za-z0-9-]{22}$
Example:
"gk3jK9mPq2xRt5vW8yZaBc"
Response
Conversation submitted successfully. When the organization opts in
to the simulation filter and the submit carries a
coval_simulation_id metadata value that matches a platform
simulation, no conversation is created and a
FilteredSubmitResponse is returned instead.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Coval Documentation","colors":{"primary":"#000000","light":"#D9D9D9","dark":"#333333"},"logo":{"light":"https://mintcdn.com/coval-2e18a559/Notp6opJUCHArykW/logo/coval-logo-vector.svg?fit=max\u0026auto=format\u0026n=Notp6opJUCHArykW\u0026q=85\u0026s=f08474458e9c5bbff1e1d7119fdc8012","dark":"https://mintcdn.com/coval-2e18a559/Notp6opJUCHArykW/logo/coval-logo-vector-white.svg?fit=max\u0026auto=format\u0026n=Notp6opJUCHArykW\u0026q=85\u0026s=ed477a66f2ca12c3c7a0289aa7c5bfb4"},"favicon":"https://mintcdn.com/coval-2e18a559/h96r_q_HmNOhXnSr/favicon.png?fit=max\u0026auto=format\u0026n=h96r_q_HmNOhXnSr\u0026q=85\u0026s=3451522324a1d00b3ad7c50ef0b825b3","api":{"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://api.coval.dev"}},"appearance":{"default":"light"},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/coval-2e18a559/images/background/frame_16opblack.svg","color":{"light":"#F2F1EE","dark":"#000000"}},"navbar":{"links":[{"href":"/changelog","label":"Changelog"},{"href":"mailto:support@coval.dev","label":"Support"},{"href":"https://www.coval.dev","label":"Website"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.coval.dev"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/covaldev","twitter":"https://x.com/covaldev"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"coval-2e18a559","hasAudioNarration":false,"actualSubdomain":"coval-2e18a559","customDomains":["docs.coval.ai"],"gitSource":{"type":"github","owner":"coval-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adbd563b3e22c7e34d9012d","collectionId":"f08156e2-1f70-423c-a8c0-dac8fa400b7b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adbd563b3e22c7e34d9012d"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adbd563b3e22c7e34d9012d","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API","count":189},{"language":"default","tag":"Home","count":76},{"language":"default","tag":"Resources","count":43},{"language":"default","tag":"Simulated Conversations","count":39},{"language":"default","tag":"Metrics","count":34},{"language":"default","tag":"Agents","count":29},{"language":"default","tag":"CLI","count":21},{"language":"default","tag":"Test Sets","count":17},{"language":"default","tag":"Reviews","count":17},{"language":"default","tag":"Personas","count":15}]},"assistantConfig":{},"hasChatPermissions":true,"hasWebMcpPermissions":true,"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":[{"filePath":"style.css","content":".cl,.cl-entry{position:relative}.cl{max-width:880px}.cl-entry{display:grid;grid-template-columns:96px 1fr;column-gap:2.5rem;padding-bottom:2.5rem}.cl-entry::before{content:\"\";position:absolute;left:96px;top:8px;bottom:-8px;width:2px;background:#dcdad5}.cl-entry:last-child::before{display:none}.cl-entry::after{content:\"\";position:absolute;left:91px;top:7px;width:12px;height:12px;border-radius:50%;background:#11161f;box-shadow:0 0 0 4px #f2f1ee}.cl-rail{text-align:center}.cl-rail__date{font-size:1.4rem;font-weight:700;color:#1a1a1a;line-height:1.1}.cl-rail__year{font-size:1.05rem;color:#9a958c;font-weight:500}.cl-rail__count{margin-top:.35rem;font-size:.8rem;color:#a8a399}.cl-content{min-width:0}.cl-highlights{background:#0f1320;border-radius:16px;padding:1.4rem 1.75rem;margin-bottom:1.25rem}.cl-highlights__label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#8b94a5}.cl-highlights__list{margin:.65rem 0 0;padding:0;list-style:none}.cl-highlights__list li{position:relative;padding-left:1.1rem;margin:.3rem 0;font-size:1rem;line-height:1.45;color:#f5f6f8}.cl-highlights__list li::before{content:\"\";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:#8b94a5}.cl-card{position:relative;background:#fff;border:1px solid #ececec;border-radius:16px;padding:1.5rem 1.75rem;margin-bottom:1rem}.cl-card__title{font-size:1.25rem;font-weight:700;color:#1a1a1a;margin-bottom:.5rem}.cl-card__desc{color:#5b5b5b;line-height:1.55;margin:0}.cl-card__extra{display:none}.cl-card__divider{border:0;border-top:1px solid #ededed;margin:1.1rem 0}.cl-card__extra p{color:#5b5b5b;line-height:1.55}.cl-card__extra a,.cl-doc-link{color:#15803d;font-weight:600;text-decoration:none}.cl-card__extra a:hover{text-decoration:none;opacity:.8}.cl-card__footer{display:flex;align-items:center;gap:.75rem;margin-top:1.1rem}.cl-pill{font-size:.8rem;font-weight:600;padding:.25rem .7rem;border-radius:999px}.cl-pill--new{background:#d9f0e1;color:#1a7f4b}.cl-pill--improved{background:#dde9fb;color:#1d4ed8}.cl-pill--fixed{background:#fdeccf;color:#b45309}.cl-cat{font-size:.85rem;color:#9aa0a6}.cl-cb{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cl-toggle{margin-left:auto;cursor:pointer;user-select:none;font-size:.85rem;font-weight:500;color:#1f2433;border:1px solid #cdd5e3;border-radius:9px;padding:.45rem .85rem;white-space:nowrap}.cl-toggle:hover{background:#f6f8fc}.cl-cb:focus-visible~.cl-card__footer .cl-toggle{outline:2px solid #4f6bed;outline-offset:2px}.cl-toggle .less{display:none}.cl-cb:checked~.cl-card__extra{display:block}.cl-cb:checked~.cl-card__footer .cl-toggle .more{display:none}.cl-cb:checked~.cl-card__footer .cl-toggle .less{display:inline}.dark .cl-entry::before{background:#2a2f3a}.dark .cl-entry::after{background:#e5e7eb;box-shadow:0 0 0 4px #000}.dark .cl-rail__date{color:#f5f6f8}.dark .cl-rail__year{color:#9aa0ad}.dark .cl-rail__count{color:#7e8493}.dark .cl-card{background:#11161f;border-color:#242a36}.dark .cl-card__title{color:#f5f6f8}.dark .cl-card__desc,.dark .cl-card__extra p{color:#aab1bd}.dark .cl-card__divider{border-top-color:#262b36}.dark .cl-card__extra a,.dark .cl-doc-link{color:#4ade80}.dark .cl-pill--new{background:#10301d;color:#5cd98c}.dark .cl-pill--improved{background:#13233f;color:#7aa6f5}.dark .cl-pill--fixed{background:#3a2a10;color:#e0a955}.dark .cl-cat{color:#8b909a}.dark .cl-toggle{color:#cbd2de;border-color:#333a47}.dark .cl-toggle:hover{background:#1a2030}@media (max-width:640px){.cl-entry{grid-template-columns:1fr;row-gap:1rem}.cl-entry::after,.cl-entry::before{display:none}.cl-rail{display:flex;align-items:baseline;gap:.5rem;text-align:left}}"}],"page":{"pagePath":"api-reference/uploaded-conversations/submit-conversation-for-evaluation","slug":"/api-reference/uploaded-conversations/submit-conversation-for-evaluation","pageMetadata":{"title":"Submit conversation for evaluation","description":"Submit an uploaded conversation for evaluation.\n","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml post /conversations/uploaded:submit","href":"/api-reference/uploaded-conversations/submit-conversation-for-evaluation","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Submit an uploaded conversation for evaluation.\"\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":"Submit conversation for evaluation","description":"Submit an uploaded conversation for evaluation.\n","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml post /conversations/uploaded:submit","href":"/api-reference/uploaded-conversations/submit-conversation-for-evaluation","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/coval-2e18a559/96d9833460dc4be2/analytics.js"],"openApiReferenceData":{"operation":{"tags":["Uploaded Conversations"],"summary":"Submit conversation for evaluation","description":"Submit an uploaded conversation for evaluation.\n","operationId":"submitUploadedConversation","requestBody":"ae576b6b-82bf-4106-9f76-efe019e72787","responses":{"200":"a6efd925-25e5-4b28-8736-d87efc090d1e","400":"cac4bc87-fdbb-4e85-b467-2d51ac1b47fe","401":"43595c8c-30e4-4c36-9d6a-242df6dcaf49","404":"f3260896-b68c-4762-9808-a37a11d11131","412":"473df54f-d0dd-4009-8179-9942bee89630","413":"a662c53b-ac4c-436e-8c93-159e6660be87","500":"50b58863-5ee5-44c8-984f-3e636f29ac9d"},"method":"post","type":"path","servers":["bd1c6dae-d558-4d15-b2fe-47c4e2f41d73"],"security":["77b446f4-bc74-44f9-8e1d-be768c4310a4"],"path":"/conversations/uploaded:submit","baseUrlOptions":["https://api.coval.dev/v1"],"title":"Submit conversation for evaluation","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"transcript":{"type":"array","items":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["user","assistant","system","tool"],"description":"Speaker role in the conversation.\n\n- `user`: The human user or customer\n- `assistant`: The AI assistant or agent\n- `system`: System instructions (typically at conversation start)\n- `tool`: Tool/function response (must include `tool_call_id`)\n","example":"user","isRequired":true,"uniqueKey":"transcript.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"content":{"oneOf":[{"type":"string","description":"Message content (primary field).\n\nCan be `null` for assistant messages that only contain tool calls.\n","example":"I'd like to check my account balance","uniqueKey":"transcript.items.[INDEX].content.oneOf.0","typeLabel":"string"},{"type":"null","description":"Message content (primary field).\n\nCan be `null` for assistant messages that only contain tool calls.\n","example":"I'd like to check my account balance","uniqueKey":"transcript.items.[INDEX].content.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].content","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","description":"Message content (alternative to content, for compatibility)","example":"I'd like to check my account balance","uniqueKey":"transcript.items.[INDEX].message.oneOf.0","typeLabel":"string"},{"type":"null","description":"Message content (alternative to content, for compatibility)","example":"I'd like to check my account balance","uniqueKey":"transcript.items.[INDEX].message.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].message","typeLabel":"string | null"},"tool_calls":{"oneOf":[{"type":"array","items":{"type":"object","required":["id","type","function"],"properties":{"id":{"type":"string","description":"Unique identifier for this tool call.\n\nThis ID is used to match tool responses back to their corresponding calls.\n","example":"call_abc123","isRequired":true,"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["function"],"description":"Type of tool call (currently only 'function' is supported)","example":"function","isRequired":true,"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"function":{"type":"object","required":["name","arguments"],"properties":{"name":{"type":"string","description":"The name of the function to call","example":"get_weather","isRequired":true,"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].function.name","typeLabel":"string"},"arguments":{"type":"string","description":"JSON string containing the function arguments.\n\n**Note:** This is a JSON-encoded string, not a raw object.\n","example":"{\"location\": \"San Francisco\", \"unit\": \"celsius\"}","isRequired":true,"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].function.arguments","typeLabel":"string"}},"description":"Function details for a tool call.\n\nThe `arguments` field contains a JSON-encoded string of the function parameters.\n","isRequired":true,"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0.items.[INDEX].function","typeLabel":"object"}},"description":"A tool call made by the assistant during a conversation.\n\nFollows the OpenAI tool call format for compatibility with ChatGPT, GPT-4, and other LLM APIs.\n","uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Tool calls made by the assistant in this message.\n\n**Only valid for `role: assistant`.**\n\nWhen an assistant message contains tool calls, the `content` field may be `null` or empty.\nEach tool call must have a unique `id` that will be referenced by the corresponding tool response.\n","example":[{"id":"call_abc123","type":"function","function":{"name":"get_weather","arguments":"{\"location\": \"San Francisco\"}"}}],"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","required":["id","type","function"],"properties":{"id":{"type":"string","description":"Unique identifier for this tool call.\n\nThis ID is used to match tool responses back to their corresponding calls.\n","example":"call_abc123"},"type":{"type":"string","enum":["function"],"description":"Type of tool call (currently only 'function' is supported)","example":"function"},"function":{"type":"object","required":["name","arguments"],"properties":{"name":{"type":"string","description":"The name of the function to call","example":"get_weather"},"arguments":{"type":"string","description":"JSON string containing the function arguments.\n\n**Note:** This is a JSON-encoded string, not a raw object.\n","example":"{\"location\": \"San Francisco\", \"unit\": \"celsius\"}"}},"description":"Function details for a tool call.\n\nThe `arguments` field contains a JSON-encoded string of the function parameters.\n"}},"description":"A tool call made by the assistant during a conversation.\n\nFollows the OpenAI tool call format for compatibility with ChatGPT, GPT-4, and other LLM APIs.\n"},"description":"Tool calls made by the assistant in this message.\n\n**Only valid for `role: assistant`.**\n\nWhen an assistant message contains tool calls, the `content` field may be `null` or empty.\nEach tool call must have a unique `id` that will be referenced by the corresponding tool response.\n","example":[{"id":"call_abc123","type":"function","function":{"name":"get_weather","arguments":"{\"location\": \"San Francisco\"}"}}],"uniqueKey":"transcript.items.[INDEX].tool_calls.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].tool_calls","typeLabel":"object[] | null"},"tool_call_id":{"oneOf":[{"type":"string","description":"ID of the tool call this message responds to.\n\n**Required when `role: tool`.**\n\nMust match the `id` of a tool call from a previous assistant message.\n","example":"call_abc123","uniqueKey":"transcript.items.[INDEX].tool_call_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"ID of the tool call this message responds to.\n\n**Required when `role: tool`.**\n\nMust match the `id` of a tool call from a previous assistant message.\n","example":"call_abc123","uniqueKey":"transcript.items.[INDEX].tool_call_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].tool_call_id","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","description":"Tool or record name for a Coval tool entry (`role: tool` with `is_tool_call` set).\n\nCoval's own simulator records each tool call made during a simulation, such as a persona\nkeypad press (`dtmf_tool`), and each setup payload exchanged with the agent, as a `role: tool`\nmessage in this form.\n","example":"dtmf_tool","uniqueKey":"transcript.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Tool or record name for a Coval tool entry (`role: tool` with `is_tool_call` set).\n\nCoval's own simulator records each tool call made during a simulation, such as a persona\nkeypad press (`dtmf_tool`), and each setup payload exchanged with the agent, as a `role: tool`\nmessage in this form.\n","example":"dtmf_tool","uniqueKey":"transcript.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].name","typeLabel":"string | null"},"is_tool_call":{"oneOf":[{"type":"boolean","description":"Present on a Coval tool entry: `true` for a tool invocation, `false` for a setup payload record.\n\nA Coval tool entry needs no `tool_call_id`; the message `content` carries the call's arguments and\nresult, or the recorded payload. `true` is only valid with `role: tool`.\n","example":true,"uniqueKey":"transcript.items.[INDEX].is_tool_call.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"Present on a Coval tool entry: `true` for a tool invocation, `false` for a setup payload record.\n\nA Coval tool entry needs no `tool_call_id`; the message `content` carries the call's arguments and\nresult, or the recorded payload. `true` is only valid with `role: tool`.\n","example":true,"uniqueKey":"transcript.items.[INDEX].is_tool_call.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].is_tool_call","typeLabel":"boolean | null"},"tool_call_owner":{"oneOf":[{"type":"string","enum":["user","assistant"],"description":"Which side produced a Coval tool entry. Only valid with `role: tool`.\n","example":"user","uniqueKey":"transcript.items.[INDEX].tool_call_owner.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["user","assistant"],"description":"Which side produced a Coval tool entry. Only valid with `role: tool`.\n","example":"user","uniqueKey":"transcript.items.[INDEX].tool_call_owner.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].tool_call_owner","typeLabel":"enum\u003cstring> | null"},"is_interrupted":{"oneOf":[{"type":"boolean","description":"`true` when the speaker was interrupted before finishing this message.","example":false,"uniqueKey":"transcript.items.[INDEX].is_interrupted.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when the speaker was interrupted before finishing this message.","example":false,"uniqueKey":"transcript.items.[INDEX].is_interrupted.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].is_interrupted","typeLabel":"boolean | null"},"is_estimated":{"oneOf":[{"type":"boolean","description":"`true` when `start_time` and `end_time` are estimated rather than measured.","example":false,"uniqueKey":"transcript.items.[INDEX].is_estimated.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"`true` when `start_time` and `end_time` are estimated rather than measured.","example":false,"uniqueKey":"transcript.items.[INDEX].is_estimated.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].is_estimated","typeLabel":"boolean | null"},"start_time":{"oneOf":[{"type":"number","format":"float","description":"When this message started, in seconds from the beginning of the conversation.\n\n**Required for audio-based metrics** (latency, interruption rate) when both transcript and audio are provided.\nWithout this field, the audio will be retranscribed to extract timing information.\n","example":0,"uniqueKey":"transcript.items.[INDEX].start_time.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"When this message started, in seconds from the beginning of the conversation.\n\n**Required for audio-based metrics** (latency, interruption rate) when both transcript and audio are provided.\nWithout this field, the audio will be retranscribed to extract timing information.\n","example":0,"uniqueKey":"transcript.items.[INDEX].start_time.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].start_time","typeLabel":"number\u003cfloat> | null"},"end_time":{"oneOf":[{"type":"number","format":"float","description":"When this message ended, in seconds from the beginning of the conversation.\n\n**Required for audio-based metrics** (latency, interruption rate) when both transcript and audio are provided.\nWithout this field, the audio will be retranscribed to extract timing information.\n","example":3.5,"uniqueKey":"transcript.items.[INDEX].end_time.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"When this message ended, in seconds from the beginning of the conversation.\n\n**Required for audio-based metrics** (latency, interruption rate) when both transcript and audio are provided.\nWithout this field, the audio will be retranscribed to extract timing information.\n","example":3.5,"uniqueKey":"transcript.items.[INDEX].end_time.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].end_time","typeLabel":"number\u003cfloat> | null"},"timestamp":{"oneOf":[{"type":"string","format":"date-time","description":"When this message was spoken (ISO 8601 datetime)","example":"2025-11-03T14:32:15Z","uniqueKey":"transcript.items.[INDEX].timestamp.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When this message was spoken (ISO 8601 datetime)","example":"2025-11-03T14:32:15Z","uniqueKey":"transcript.items.[INDEX].timestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].timestamp","typeLabel":"string\u003cdate-time> | null"},"firstWordStart":{"oneOf":[{"type":"number","format":"float","description":"Alternative field for start offset in seconds from conversation start.\n\nUse either start_time/end_time OR firstWordStart/lastWordEnd, not both.","example":0.5,"uniqueKey":"transcript.items.[INDEX].firstWordStart.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Alternative field for start offset in seconds from conversation start.\n\nUse either start_time/end_time OR firstWordStart/lastWordEnd, not both.","example":0.5,"uniqueKey":"transcript.items.[INDEX].firstWordStart.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].firstWordStart","typeLabel":"number\u003cfloat> | null"},"lastWordEnd":{"oneOf":[{"type":"number","format":"float","description":"Alternative field for end offset in seconds from conversation start.\n\nUse either start_time/end_time OR firstWordStart/lastWordEnd, not both.","example":2.3,"uniqueKey":"transcript.items.[INDEX].lastWordEnd.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","description":"Alternative field for end offset in seconds from conversation start.\n\nUse either start_time/end_time OR firstWordStart/lastWordEnd, not both.","example":2.3,"uniqueKey":"transcript.items.[INDEX].lastWordEnd.oneOf.1","typeLabel":"null"}],"uniqueKey":"transcript.items.[INDEX].lastWordEnd","typeLabel":"number\u003cfloat> | null"}},"description":"A single message in a conversation transcript.\n\n**Content Requirements:**\n- For `user`, `system`, and `tool` roles: Either `content` or `message` must be provided\n- For `assistant` role: Either `content`, `message`, or `tool_calls` must be provided\n- Supports OpenAI message format including tool calls\n\n**Tool Call Flow:**\n1. Assistant sends message with `tool_calls` array (content may be null)\n2. Each tool call has a unique `id` and function details\n3. Tool responses use `role: tool` with matching `tool_call_id`\n\n**Coval Tool Entries:**\n- A `role: tool` message with `is_tool_call` set is an entry recorded by Coval's simulator: a tool\n invocation (`true`) or a setup payload record (`false`)\n- It carries `name` and `tool_call_owner` and needs no `tool_call_id`\n\n**Timing Information:**\n- `start_time` and `end_time` are measured in seconds from the start of the audio (e.g., 0.0, 3.5, 7.2)\n- Both `start_time` and `end_time` are **required** if:\n - You submit both `transcript` AND `audio`/`audio_url`\n - You want audio-based metrics (latency, interruption rate, audio duration)\n - You want to avoid audio retranscription\n- If timing fields are omitted when audio is present, the system will automatically transcribe and diarize the audio to extract timing information\n- `timestamp` (ISO 8601) is separate and used only for external system correlation","uniqueKey":"transcript.items.[INDEX]","typeLabel":"object"},"description":"Conversation transcript as array of messages","minItems":1,"uniqueKey":"transcript","typeLabel":"object[]"},"audio_url":{"type":"string","format":"uri","description":"Public or presigned HTTP/HTTPS URL to audio from any cloud provider.\nEvery resolved address must be publicly routable. Redirects are rejected.\n\nRaw `s3://bucket/key` URLs are limited to Coval-issued uploads in the\nshared or organization-specific audio bucket under\n`audio/\u003cauthenticated_organization_id>/`. For other storage locations,\nsupply a presigned HTTPS URL or use `upload_id` from `POST /v1/audio:upload`.\n\n**Audio Validation Requirements:**\n- **Formats**: WAV or MP3 ONLY (detected via magic bytes, not file extension)\n- **Channels**: Stereo (recommended) or mono. Stereo assigns speaker roles deterministically from channel position (channel 0 = agent, channel 1 = user); mono infers roles by classifying transcript content, which is typically accurate but less reliable than channel-based mapping.\n- **Duration**: 5 seconds minimum, 1 hour (3600 seconds) maximum\n- **File Size**: 200 MB maximum\n- **Validation**: Audio is validated BEFORE processing begins\n- **Rejected Formats**: MP4, M4A, FLAC, OGG, AAC, etc.\n\n**Supported URL Formats:**\n- AWS S3: https://bucket.s3.amazonaws.com/...\n- GCP Cloud Storage: https://storage.googleapis.com/...\n- Azure Blob Storage: https://account.blob.core.windows.net/...\n- Any Public or Presigned HTTPS URL\n\n**Validation Errors** (400 INVALID_ARGUMENT):\n- \"Audio file is empty.\"\n- \"Unsupported audio format: {format}. Only WAV and MP3 files are supported.\"\n- \"Audio too short: {X} seconds. Minimum duration is 5 seconds.\"\n- \"Audio too long: {X} minutes. Maximum duration is 60 minutes.\"\n- \"Audio file too large: {X} MB. Maximum size is 200 MB.\"\n- \"Invalid or corrupt audio file. Unable to detect audio format. Supported formats: WAV and MP3.\"\n- \"Invalid or corrupt audio file. Unable to read audio metadata.\"\n- \"Audio URL not found (404)\" or \"Failed to retrieve audio from URL\"\n","example":"https://recordings.s3.amazonaws.com/call-abc.wav?X-Amz-Algorithm=...","uniqueKey":"audio_url","typeLabel":"string\u003curi>"},"upload_id":{"type":"string","pattern":"^upl_[0-9A-HJKMNP-TV-Z]{26}$","description":"Reference to a previously issued direct upload from `POST /v1/audio:upload`.\n\nUse this when you've uploaded audio bytes directly via a Coval-issued\npresigned PUT URL. The Coval backend resolves the staged upload, validates\nit, and promotes it into managed recordings storage.\n\n**Mutually exclusive** with `audio` and `audio_url` — provide exactly one\naudio source.\n\n**Validation Errors:**\n- 404 NOT_FOUND: `upload_id` does not exist, has expired, has already been consumed,\n or belongs to a different organization (404 is returned in all four cases to\n avoid leaking ID existence across organizations).\n- 400 INVALID_ARGUMENT: Mutually exclusive audio sources provided.\n","example":"upl_01HRAB8N9G7Q4Y3K2J5W6X1ZTC","uniqueKey":"upload_id","typeLabel":"string"},"metrics":{"type":"array","items":{"type":"string","uniqueKey":"metrics.items.[INDEX]","typeLabel":"string"},"description":"Metric IDs or exact legacy metric_name values to evaluate. IDs take precedence.\nLegacy names must resolve to a unique active metric visible in the request workspace.\nDisplay names are not accepted. Unknown, ambiguous, inactive, hidden, deleted, or\ninaccessible selections return 400 INVALID_ARGUMENT.\n\nIf not provided, uses your default metrics configured in the Coval dashboard.\n","example":["29BlkepvvX19ebbLDB0y6Q","metric_type_latency"],"uniqueKey":"metrics","typeLabel":"string[]"},"metadata":{"type":"object","additionalProperties":true,"description":"Custom metadata for conditional metrics and tracking.\n\nUsed for:\n- Triggering conditional metrics\n- Filtering conversations\n- Custom analytics and reporting\n\nReserved key `coval_simulation_id`: set it to the value of the\n`X-Coval-Simulation-Id` SIP header delivered with every inbound\nsimulation call. Organizations that opt in to the simulation\nfilter have submits carrying a matching platform-simulation id\ndropped without creating a conversation (see the 200 response).\n","example":{"campaign":"q4-support","customer_tier":"premium","region":"us-west"},"uniqueKey":"metadata","typeLabel":"object"},"tags":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":200,"pattern":".*\\S.*","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"description":"Optional tags to apply to this conversation for filtering and organization.\n\nTags are normalized case-insensitively and stored on the uploaded\nconversation's backing run. Use them to group uploaded conversations\nby product, workflow, customer segment, or other operational slices.\n","example":["restaurant","support-tier-1"],"uniqueKey":"tags","typeLabel":"string[]"},"external_conversation_id":{"type":"string","description":"External conversation ID from your system.\n\nStored as `conversation_id` in `customer_metadata` JSONField.\nCan be used to correlate with external systems (Twilio, Vonage, etc).\n","example":"external-call-7x8z9a","uniqueKey":"external_conversation_id","typeLabel":"string"},"occurred_at":{"type":"string","format":"date-time","description":"The instant the audio recording begins, in ISO 8601 with sub-second precision. Coval uses it to align the recording with trace spans in the trace viewer and to locate traces around the call.\n\nOptional. Without it, the trace viewer draws the recording without aligning it to spans.\n","example":"2025-11-03T14:32:07.412Z","uniqueKey":"occurred_at","typeLabel":"string\u003cdate-time>"},"agent_id":{"oneOf":[{"type":"string","pattern":"^[A-Za-z0-9-]{22}$","description":"Agent resource ID (22-character ShortUUID) to associate with this conversation.\n\nMust reference an existing agent within your organization. The agent is\nvalidated at submission time:\n- **400 INVALID_ARGUMENT**: Malformed ID (wrong length or characters).\n- **404 NOT_FOUND**: Agent does not exist or belongs to a different organization.\n","example":"gk3jK9mPq2xRt5vW8yZaBc","uniqueKey":"agent_id.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^[A-Za-z0-9-]{22}$","description":"Agent resource ID (22-character ShortUUID) to associate with this conversation.\n\nMust reference an existing agent within your organization. The agent is\nvalidated at submission time:\n- **400 INVALID_ARGUMENT**: Malformed ID (wrong length or characters).\n- **404 NOT_FOUND**: Agent does not exist or belongs to a different organization.\n","example":"gk3jK9mPq2xRt5vW8yZaBc","uniqueKey":"agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"agent_id","typeLabel":"string | null"}},"description":"Request to submit an uploaded conversation for evaluation.\n\n**Requirements:**\n- At least one of: `transcript`, `audio_url`, or `upload_id` must be provided\n- `audio_url` and `upload_id` are mutually exclusive\n\n**Payload Size Limit:** The combined queued payload is subject to a 256 KB limit (including large `metadata` values); oversized payloads return 413 `PAYLOAD_TOO_LARGE`.\n\n**Best Practices:**\n- Provide both transcript and audio_url (or upload_id) when available (enables audio metrics)\n- **Include `start_time` and `end_time` in transcript messages when submitting audio_url** to avoid automatic retranscription\n- Include `external_conversation_id` for correlation with external systems\n- Add metadata for conditional metrics and analytics\n\n**Audio + Transcript Behavior:**\n- If you submit both `transcript` and `audio_url`:\n - **WITH timing** (`start_time`/`end_time` on each message): Transcript is used as-is, audio metrics computed from timing\n - **WITHOUT timing**: Audio is automatically transcribed and diarized, provided transcript is ignored for metrics\n","uniqueKey":"","typeLabel":"object"},"examples":{"transcriptOnly":{"title":"transcriptOnly","value":{"transcript":[{"role":"user","content":"Hi, I'd like to check my account balance"},{"role":"assistant","content":"I can help you with that. Let me pull up your account."},{"role":"assistant","content":"Your current balance is $1,247.53"},{"role":"user","content":"Thank you!"}],"external_conversation_id":"external-call-7x8z9a","occurred_at":"2025-11-03T14:32:07.412Z","metadata":{"campaign":"q4-support","channel":"phone","customer_tier":"premium"},"tags":["restaurant","support-tier-1"]}},"audioUrl":{"title":"audioUrl","value":{"audio_url":"https://recordings.s3.amazonaws.com/calls/2025/11/call-4k2m9p.wav?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=...","external_conversation_id":"twilio-call-CA4k2m9p","occurred_at":"2025-11-03T09:15:03.218Z","metadata":{"department":"sales","product_interest":"enterprise-plan"}}},"transcriptAndAudio":{"title":"transcriptAndAudio","value":{"transcript":[{"role":"user","content":"I'm having trouble logging in","start_time":0,"end_time":2.3},{"role":"assistant","content":"I understand you're experiencing login issues. Let me help troubleshoot that.","start_time":2.8,"end_time":7.5}],"audio_url":"https://storage.googleapis.com/support-recordings/call-mn3p8q.mp3?X-Goog-Algorithm=...","external_conversation_id":"zendesk-ticket-19283","metrics":["29BlkepvvX19ebbLDB0y6Q","mymKvEg6ZA65srXbTX5wSM"],"metadata":{"ticket_id":"19283","priority":"high"}}},"customMetrics":{"title":"customMetrics","value":{"transcript":[{"role":"assistant","content":"Hello! How can I help you today?"},{"role":"user","content":"I want to upgrade my subscription"},{"role":"assistant","content":"Great! Let me show you our available plans."}],"external_conversation_id":"intercom-conv-xyz789","metadata":{"conversation_type":"sales","lead_score":85,"region":"us-west"},"metrics":["29BlkepvvX19ebbLDB0y6Q","mymKvEg6ZA65srXbTX5wSM"]}},"withToolCalls":{"title":"withToolCalls","value":{"transcript":[{"role":"user","content":"What's the weather like in San Francisco?"},{"role":"assistant","content":null,"tool_calls":[{"id":"call_abc123","type":"function","function":{"name":"get_weather","arguments":"{\"location\": \"San Francisco\", \"unit\": \"fahrenheit\"}"}}]},{"role":"tool","tool_call_id":"call_abc123","content":"{\"temperature\": 72, \"condition\": \"sunny\", \"humidity\": 45}"},{"role":"assistant","content":"The weather in San Francisco is currently sunny with a temperature of 72°F and 45% humidity."},{"role":"user","content":"Thanks! Can you also check my account balance?"},{"role":"assistant","content":null,"tool_calls":[{"id":"call_def456","type":"function","function":{"name":"get_account_balance","arguments":"{\"account_type\": \"checking\"}"}}]},{"role":"tool","tool_call_id":"call_def456","content":"{\"balance\": 1247.53, \"currency\": \"USD\", \"as_of\": \"2025-11-03T14:30:00Z\"}"},{"role":"assistant","content":"Your checking account balance is $1,247.53 as of today."}],"external_conversation_id":"chatbot-session-tool-demo","metadata":{"has_tool_calls":true,"tool_count":2}}},"transcriptWithTiming":{"title":"transcriptWithTiming","value":{"transcript":[{"role":"user","content":"Hello, can you help me?","start_time":0,"end_time":1.5},{"role":"assistant","content":"Of course! What do you need assistance with?","start_time":2.1,"end_time":4.8},{"role":"user","content":"I need to update my billing information","start_time":5.2,"end_time":7.3},{"role":"assistant","content":"I can help you with that right away.","start_time":7.9,"end_time":10.2}],"external_conversation_id":"call-timing-example-001","occurred_at":"2025-11-03T16:00:01.905Z","metadata":{"channel":"phone","duration_seconds":10.2}}},"transcriptWithAlternativeTiming":{"title":"transcriptWithAlternativeTiming","value":{"transcript":[{"role":"assistant","content":"Thank you for calling. How may I assist you today?","firstWordStart":0,"lastWordEnd":2.8},{"role":"user","content":"I have a question about my recent order","firstWordStart":3.5,"lastWordEnd":5.9},{"role":"assistant","content":"I'd be happy to help. Can you provide your order number?","firstWordStart":6.4,"lastWordEnd":9.1}],"external_conversation_id":"call-timing-example-002","occurred_at":"2025-11-03T17:30:04.567Z","metadata":{"channel":"phone","order_inquiry":true}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"a6efd925-25e5-4b28-8736-d87efc090d1e":{"description":"Conversation submitted successfully. When the organization opts in\nto the simulation filter and the submit carries a\n`coval_simulation_id` metadata value that matches a platform\nsimulation, no conversation is created and a\n`FilteredSubmitResponse` is returned instead.\n","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["uploaded_conversation"],"properties":{"uploaded_conversation":{"type":"object","properties":{"name":{"type":"string","description":"Resource name in format \"conversations/{conversation_id}\"","example":"conversations/gk3jK9mPq2xRt5vW8yZaBc","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.name","typeLabel":"string"},"conversation_id":{"type":"string","description":"Unique conversation identifier (22-26 characters)","minLength":22,"maxLength":26,"example":"gk3jK9mPq2xRt5vW8yZaBc","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.conversation_id","typeLabel":"string"},"status":{"type":"string","enum":["PENDING","IN_QUEUE","IN_PROGRESS","COMPLETED","FAILED","CANCELLED","DELETED"],"description":"Current status of conversation evaluation.\n\n**Lifecycle:**\n- PENDING: Submitted, awaiting queue\n- IN_QUEUE: In run-setup-queue, awaiting worker\n- IN_PROGRESS: Evaluation running\n- COMPLETED: Successfully completed\n- FAILED: Encountered error\n- CANCELLED: User cancelled (via DELETE on PENDING/IN_PROGRESS)\n- DELETED: Deleted(via DELETE on COMPLETED/FAILED)\n","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.status","typeLabel":"enum\u003cstring>"},"create_time":{"type":"string","format":"date-time","description":"When conversation was submitted (ISO 8601)","example":"2025-11-03T14:32:30Z","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.create_time","typeLabel":"string\u003cdate-time>"},"workspace_id":{"oneOf":[{"type":"string","description":"Effective authorized workspace for a single-resource GET. Derived from the owning run; legacy unassigned runs use the authenticated default workspace after access checks. Null means no workspace proof is supplied, including other resource views.","uniqueKey":"oneOf.0.uploaded_conversation.workspace_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Effective authorized workspace for a single-resource GET. Derived from the owning run; legacy unassigned runs use the authenticated default workspace after access checks. Null means no workspace proof is supplied, including other resource views.","uniqueKey":"oneOf.0.uploaded_conversation.workspace_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.workspace_id","typeLabel":"string | null"},"external_conversation_id":{"oneOf":[{"type":"string","description":"External conversation ID from customer system","example":"external-call-7x8z9a","uniqueKey":"oneOf.0.uploaded_conversation.external_conversation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"External conversation ID from customer system","example":"external-call-7x8z9a","uniqueKey":"oneOf.0.uploaded_conversation.external_conversation_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.external_conversation_id","typeLabel":"string | null"},"occurred_at":{"oneOf":[{"type":"string","format":"date-time","description":"The instant the audio recording begins, in ISO 8601 with sub-second precision. Coval uses it to align the recording with trace spans in the trace viewer and to locate traces around the call.\n\nWhen it was not provided at submit, this is the time Coval received the conversation, and the trace viewer draws the recording without aligning it to spans.\n","example":"2025-11-03T14:32:07.412Z","uniqueKey":"oneOf.0.uploaded_conversation.occurred_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"The instant the audio recording begins, in ISO 8601 with sub-second precision. Coval uses it to align the recording with trace spans in the trace viewer and to locate traces around the call.\n\nWhen it was not provided at submit, this is the time Coval received the conversation, and the trace viewer draws the recording without aligning it to spans.\n","example":"2025-11-03T14:32:07.412Z","uniqueKey":"oneOf.0.uploaded_conversation.occurred_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.occurred_at","typeLabel":"string\u003cdate-time> | null"},"has_audio":{"type":"boolean","description":"Whether audio is available for this conversation.\n\nUse GET /v1/conversations/uploaded/{id}/audio to retrieve presigned URL.\n","example":true,"uniqueKey":"oneOf.0.uploaded_conversation.has_audio","typeLabel":"boolean"},"agent_id":{"oneOf":[{"type":"string","description":"Agent resource ID (22-character ShortUUID), if one was provided at submission","example":null,"uniqueKey":"oneOf.0.uploaded_conversation.agent_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Agent resource ID (22-character ShortUUID), if one was provided at submission","example":null,"uniqueKey":"oneOf.0.uploaded_conversation.agent_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.agent_id","typeLabel":"string | null"},"persona_id":{"oneOf":[{"type":"string","description":"Reference to persona resource (typically null for uploaded conversations)","example":null,"uniqueKey":"oneOf.0.uploaded_conversation.persona_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Reference to persona resource (typically null for uploaded conversations)","example":null,"uniqueKey":"oneOf.0.uploaded_conversation.persona_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.persona_id","typeLabel":"string | null"},"source":{"oneOf":[{"type":"object","description":"The caller/initiating side of the conversation; null when not addressable. Only included in single-resource GET, not LIST.","required":["type","value"],"properties":{"type":{"type":"string","enum":["phone"],"description":"Endpoint kind discriminator","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.0.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"Phone number in E.164 format","example":"+15551234567","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.0.value","typeLabel":"string"}},"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.0","typeLabel":"object"},{"type":"object","description":"The caller/initiating side of the conversation; null when not addressable. Only included in single-resource GET, not LIST.","required":["type","value"],"properties":{"type":{"type":"string","enum":["sip"],"description":"Endpoint kind discriminator","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.1.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"SIP URI","example":"sip:agent@voip.example.com","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.1.value","typeLabel":"string"}},"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.1","typeLabel":"object"},{"type":"object","description":"The caller/initiating side of the conversation; null when not addressable. Only included in single-resource GET, not LIST.","required":["type","value"],"properties":{"type":{"type":"string","enum":["websocket"],"description":"Endpoint kind discriminator","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.2.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"WebSocket URL","example":"wss://agent.example.com/stream","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.2.value","typeLabel":"string"}},"uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.2","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.uploaded_conversation.source.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.source","typeLabel":"object · object · object · null"},"destination":{"oneOf":[{"type":"object","description":"The agent side of the conversation; null when not addressable. Only included in single-resource GET, not LIST.","required":["type","value"],"properties":{"type":{"type":"string","enum":["phone"],"description":"Endpoint kind discriminator","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.0.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"Phone number in E.164 format","example":"+15551234567","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.0.value","typeLabel":"string"}},"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.0","typeLabel":"object"},{"type":"object","description":"The agent side of the conversation; null when not addressable. Only included in single-resource GET, not LIST.","required":["type","value"],"properties":{"type":{"type":"string","enum":["sip"],"description":"Endpoint kind discriminator","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.1.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"SIP URI","example":"sip:agent@voip.example.com","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.1.value","typeLabel":"string"}},"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.1","typeLabel":"object"},{"type":"object","description":"The agent side of the conversation; null when not addressable. Only included in single-resource GET, not LIST.","required":["type","value"],"properties":{"type":{"type":"string","enum":["websocket"],"description":"Endpoint kind discriminator","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.2.type","typeLabel":"enum\u003cstring>"},"value":{"type":"string","description":"WebSocket URL","example":"wss://agent.example.com/stream","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.2.value","typeLabel":"string"}},"uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.2","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.uploaded_conversation.destination.oneOf.3","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.destination","typeLabel":"object · object · object · null"},"progress":{"oneOf":[{"type":"object","description":"Progress tracking (included when include_progress=true)","required":["total_metrics","failed_metrics","completed_metrics","in_progress_metrics"],"properties":{"total_metrics":{"type":"integer","description":"Total number of metrics being evaluated","example":5,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.0.total_metrics","typeLabel":"integer"},"completed_metrics":{"type":"integer","description":"Number of metrics completed successfully","example":5,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.0.completed_metrics","typeLabel":"integer"},"failed_metrics":{"type":"integer","description":"Number of metrics that failed evaluation","example":0,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.0.failed_metrics","typeLabel":"integer"},"in_progress_metrics":{"type":"integer","description":"Number of metrics currently running","example":0,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.0.in_progress_metrics","typeLabel":"integer"},"skipped_metrics":{"default":0,"description":"Number of metrics that were skipped (e.g., audio-dependent metric on a transcript-only conversation). Distinct from failed_metrics: skipped is expected/non-actionable.","type":"integer","uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.0.skipped_metrics","typeLabel":"integer"}},"uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"oneOf.0.uploaded_conversation.progress.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.progress","typeLabel":"object | null"},"metadata":{"type":"object","additionalProperties":true,"description":"Customer-provided metadata","example":{"campaign":"q4-support","channel":"phone"},"uniqueKey":"oneOf.0.uploaded_conversation.metadata","typeLabel":"object"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.uploaded_conversation.tags.items.[INDEX]","typeLabel":"string"},"description":"Tags applied to this conversation","example":["restaurant","support-tier-1"],"uniqueKey":"oneOf.0.uploaded_conversation.tags","typeLabel":"string[]"},"metric_ids":{"type":"array","items":{"type":"string","minLength":22,"maxLength":26,"uniqueKey":"oneOf.0.uploaded_conversation.metric_ids.items.[INDEX]","typeLabel":"string"},"description":"List of metric IDs configured for this conversation.\n\nUse GET /v1/conversations/uploaded/{id}/metrics to retrieve computed metric values.\n","example":["29BlkepvvX19ebbLDB0y6Q","mymKvEg6ZA65srXbTX5wSM","fstokU4ev5UmT8sUBexiwV"],"uniqueKey":"oneOf.0.uploaded_conversation.metric_ids","typeLabel":"string[]"},"metric_outputs":{"oneOf":[{"type":"array","description":"Full outputs matching the requested metric_id. Present only when the list\nrequest sets include=metric_outputs; omitted from the default summary view.\n","items":{"type":"object","required":["metric_id","metric_output_id","status"],"properties":{"metric_output_id":{"type":"string","description":"Unique metric output identifier (26-char ULID)","minLength":26,"maxLength":26,"example":"01JCQR8Z9PQSTNVWXY12345678","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].metric_output_id","typeLabel":"string"},"metric_id":{"type":"string","description":"Metric definition identifier (22-char ID)","minLength":22,"maxLength":26,"example":"29BlkepvvX19ebbLDB0y6Q","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].metric_id","typeLabel":"string"},"status":{"type":"string","enum":["IN QUEUE","IN PROGRESS","COMPLETED","SKIPPED","FAILED","CANCELLED"],"description":"Status of metric computation","example":"COMPLETED","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"metric_version_ulid":{"oneOf":[{"type":"string","minLength":26,"maxLength":26,"description":"ULID of the metric version this output was scored against (null for outputs produced before metric versioning landed)","example":"01JCQR8Z9PQSTNVWXY12345678","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].metric_version_ulid.oneOf.0","typeLabel":"string"},{"type":"null","minLength":26,"maxLength":26,"description":"ULID of the metric version this output was scored against (null for outputs produced before metric versioning landed)","example":"01JCQR8Z9PQSTNVWXY12345678","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].metric_version_ulid.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].metric_version_ulid","typeLabel":"string | null"},"value":{"oneOf":[{"type":"number","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","example":2.35,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"number"},{"type":"string","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","example":2.35,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value.oneOf.2.items.[INDEX]","typeLabel":"string"},"description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","example":2.35,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value.oneOf.2","typeLabel":"string[]"},{"type":"string","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","enum":[null],"example":2.35,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value.oneOf.3","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","enum":[null],"example":2.35,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value.oneOf.4","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].value","typeLabel":"number | string | string[] | enum\u003cstring> | null"},"status_reason":{"oneOf":[{"type":"string","description":"Stored reason for the current status, including the actionable reason a metric was skipped or failed. Null when no reason was recorded.","example":"No OTel trace spans were found for this simulation.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].status_reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Stored reason for the current status, including the actionable reason a metric was skipped or failed. Null when no reason was recorded.","example":"No OTel trace spans were found for this simulation.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].status_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].status_reason","typeLabel":"string | null"},"explanation":{"oneOf":[{"type":"string","description":"The LLM judge's reasoning for this metric output, as a flat string. Null for metrics that produce no explanation (non-judge metrics) or when the output is not yet computed. This is a convenience surfacing of the reasoning that otherwise lives nested under result.llm.answer_explanation (or result.explanation); it is populated in both the list and single-output responses so callers do not have to request the full result object to read it.","example":"The agent never confirmed the caller's address before ending the call.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].explanation.oneOf.0","typeLabel":"string"},{"type":"null","description":"The LLM judge's reasoning for this metric output, as a flat string. Null for metrics that produce no explanation (non-judge metrics) or when the output is not yet computed. This is a convenience surfacing of the reasoning that otherwise lives nested under result.llm.answer_explanation (or result.explanation); it is populated in both the list and single-output responses so callers do not have to request the full result object to read it.","example":"The agent never confirmed the caller's address before ending the call.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].explanation.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].explanation","typeLabel":"string | null"},"evidence_references":{"oneOf":[{"type":"array","description":"Stable frame, trace-span, or metric-output identities supporting an Agent Judge decision.","items":{"oneOf":[{"type":"object","required":["frame_id"],"properties":{"frame_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.0.frame_id","typeLabel":"string"},"type":{"type":"string","enum":["frame"],"default":"frame","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["trace_id","span_id"],"properties":{"trace_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.1.trace_id","typeLabel":"string"},"span_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.1.span_id","typeLabel":"string"},"type":{"type":"string","enum":["trace_span"],"default":"trace_span","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"},{"type":"object","required":["type","metric_output_ulid"],"properties":{"type":{"type":"string","enum":["metric_output"],"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"metric_output_ulid":{"type":"string","minLength":1,"maxLength":26,"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.2.metric_output_ulid","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX].oneOf.2","typeLabel":"object"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Stable frame, trace-span, or metric-output identities supporting an Agent Judge decision.","items":{"oneOf":[{"type":"object","required":["frame_id"],"properties":{"type":{"type":"string","enum":["frame"],"default":"frame"},"frame_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["trace_id","span_id"],"properties":{"type":{"type":"string","enum":["trace_span"],"default":"trace_span"},"trace_id":{"type":"string","minLength":1},"span_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["type","metric_output_ulid"],"properties":{"type":{"type":"string","enum":["metric_output"]},"metric_output_ulid":{"type":"string","minLength":1,"maxLength":26}},"additionalProperties":false}]},"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].evidence_references","typeLabel":"object[] | null"},"result":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Structured metric result. Its keys depend on the metric type — for LLM-judge metrics the judge's reasoning is at result.llm.answer_explanation and the evaluation prompt at result.llm.prompt. Null for metrics that produce no structured result.","example":{"llm":{"answer_explanation":"The agent never confirmed the caller's address before ending the call.","prompt":"Did the agent confirm the caller's address?"}},"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].result.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Structured metric result. Its keys depend on the metric type — for LLM-judge metrics the judge's reasoning is at result.llm.answer_explanation and the evaluation prompt at result.llm.prompt. Null for metrics that produce no structured result.","example":{"llm":{"answer_explanation":"The agent never confirmed the caller's address before ending the call.","prompt":"Did the agent confirm the caller's address?"}},"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].result.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].result","typeLabel":"object | null"},"runtime_metadata":{"oneOf":[{"additionalProperties":true,"type":"object","description":"How the metric was calculated at runtime. Only populated when view=FULL.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].runtime_metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":true,"type":"null","description":"How the metric was calculated at runtime. Only populated when view=FULL.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].runtime_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].runtime_metadata","typeLabel":"object | null"},"subvalues_by_timestamp":{"oneOf":[{"items":{"description":"A single metric measurement anchored to a time range.\n\nUsed for time-series and per-message metric data such as audio-timeline\nhighlighting and transcript message highlighting.","properties":{"start_offset":{"description":"Start position in seconds","type":"number","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].start_offset","typeLabel":"number"},"end_offset":{"description":"End position in seconds","type":"number","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].end_offset","typeLabel":"number"},"output_type":{"description":"Value type: float, string, or set","type":"string","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].output_type","typeLabel":"string"},"float_value":{"default":0,"description":"Numeric value (when output_type is float)","type":"number","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].float_value","typeLabel":"number"},"string_value":{"default":"","description":"String value (when output_type is string)","type":"string","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].string_value","typeLabel":"string"},"role":{"oneOf":[{"type":"string","description":"Speaker role for this interval (e.g. user, assistant)","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].role.oneOf.0","typeLabel":"string"},{"type":"null","description":"Speaker role for this interval (e.g. user, assistant)","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].role.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].role","typeLabel":"string | null"},"message_index":{"oneOf":[{"type":"integer","description":"0-based transcript message index","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].message_index.oneOf.0","typeLabel":"integer"},{"type":"null","description":"0-based transcript message index","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].message_index.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].message_index","typeLabel":"integer | null"},"metadata":{"oneOf":[{"additionalProperties":true,"type":"object","description":"Extra per-span context (e.g. LLM observation explanation)","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":true,"type":"null","description":"Extra per-span context (e.g. LLM observation explanation)","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX].metadata","typeLabel":"object | null"}},"required":["start_offset","end_offset","output_type"],"type":"object","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","description":"Time-series metric values anchored to time ranges. Capped at 500 entries; see subvalues_by_timestamp_truncated.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.0","typeLabel":"object[]"},{"items":{"description":"A single metric measurement anchored to a time range.\n\nUsed for time-series and per-message metric data such as audio-timeline\nhighlighting and transcript message highlighting.","properties":{"start_offset":{"description":"Start position in seconds","type":"number"},"end_offset":{"description":"End position in seconds","type":"number"},"output_type":{"description":"Value type: float, string, or set","type":"string"},"float_value":{"default":0,"description":"Numeric value (when output_type is float)","type":"number"},"string_value":{"default":"","description":"String value (when output_type is string)","type":"string"},"role":{"oneOf":[{"type":"string","description":"Speaker role for this interval (e.g. user, assistant)"},{"type":"null","description":"Speaker role for this interval (e.g. user, assistant)"}]},"message_index":{"oneOf":[{"type":"integer","description":"0-based transcript message index"},{"type":"null","description":"0-based transcript message index"}]},"metadata":{"oneOf":[{"additionalProperties":true,"type":"object","description":"Extra per-span context (e.g. LLM observation explanation)"},{"additionalProperties":true,"type":"null","description":"Extra per-span context (e.g. LLM observation explanation)"}]}},"required":["start_offset","end_offset","output_type"],"type":"object"},"type":"null","description":"Time-series metric values anchored to time ranges. Capped at 500 entries; see subvalues_by_timestamp_truncated.","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp","typeLabel":"object[] | null"},"subvalues_by_timestamp_total_count":{"default":0,"description":"Total subvalues on the underlying row before truncation. 0 when the row has no subvalues.","type":"integer","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp_total_count","typeLabel":"integer"},"subvalues_by_timestamp_truncated":{"default":false,"description":"True when the stored row had more than 500 subvalues and the response array was truncated.","type":"boolean","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX].subvalues_by_timestamp_truncated","typeLabel":"boolean"}},"description":"Simplified metric output for conversations API.\n","uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Full outputs matching the requested metric_id. Present only when the list\nrequest sets include=metric_outputs; omitted from the default summary view.\n","items":{"type":"object","required":["metric_id","metric_output_id","status"],"properties":{"metric_output_id":{"type":"string","description":"Unique metric output identifier (26-char ULID)","minLength":26,"maxLength":26,"example":"01JCQR8Z9PQSTNVWXY12345678"},"metric_id":{"type":"string","description":"Metric definition identifier (22-char ID)","minLength":22,"maxLength":26,"example":"29BlkepvvX19ebbLDB0y6Q"},"metric_version_ulid":{"oneOf":[{"type":"string","minLength":26,"maxLength":26,"description":"ULID of the metric version this output was scored against (null for outputs produced before metric versioning landed)","example":"01JCQR8Z9PQSTNVWXY12345678"},{"type":"null","minLength":26,"maxLength":26,"description":"ULID of the metric version this output was scored against (null for outputs produced before metric versioning landed)","example":"01JCQR8Z9PQSTNVWXY12345678"}]},"value":{"oneOf":[{"type":"number","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","example":2.35},{"type":"string","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","example":2.35},{"type":"array","items":{"type":"string"},"description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","example":2.35},{"type":"string","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","enum":[null],"example":2.35},{"type":"null","description":"Metric value (can be float, string, or list of strings depending on metric type, or null if failed)\n","enum":[null],"example":2.35}]},"status":{"type":"string","enum":["IN QUEUE","IN PROGRESS","COMPLETED","SKIPPED","FAILED","CANCELLED"],"description":"Status of metric computation","example":"COMPLETED"},"status_reason":{"oneOf":[{"type":"string","description":"Stored reason for the current status, including the actionable reason a metric was skipped or failed. Null when no reason was recorded.","example":"No OTel trace spans were found for this simulation."},{"type":"null","description":"Stored reason for the current status, including the actionable reason a metric was skipped or failed. Null when no reason was recorded.","example":"No OTel trace spans were found for this simulation."}]},"explanation":{"oneOf":[{"type":"string","description":"The LLM judge's reasoning for this metric output, as a flat string. Null for metrics that produce no explanation (non-judge metrics) or when the output is not yet computed. This is a convenience surfacing of the reasoning that otherwise lives nested under result.llm.answer_explanation (or result.explanation); it is populated in both the list and single-output responses so callers do not have to request the full result object to read it.","example":"The agent never confirmed the caller's address before ending the call."},{"type":"null","description":"The LLM judge's reasoning for this metric output, as a flat string. Null for metrics that produce no explanation (non-judge metrics) or when the output is not yet computed. This is a convenience surfacing of the reasoning that otherwise lives nested under result.llm.answer_explanation (or result.explanation); it is populated in both the list and single-output responses so callers do not have to request the full result object to read it.","example":"The agent never confirmed the caller's address before ending the call."}]},"evidence_references":{"oneOf":[{"type":"array","description":"Stable frame, trace-span, or metric-output identities supporting an Agent Judge decision.","items":{"oneOf":[{"type":"object","required":["frame_id"],"properties":{"type":{"type":"string","enum":["frame"],"default":"frame"},"frame_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["trace_id","span_id"],"properties":{"type":{"type":"string","enum":["trace_span"],"default":"trace_span"},"trace_id":{"type":"string","minLength":1},"span_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["type","metric_output_ulid"],"properties":{"type":{"type":"string","enum":["metric_output"]},"metric_output_ulid":{"type":"string","minLength":1,"maxLength":26}},"additionalProperties":false}]}},{"type":"null","description":"Stable frame, trace-span, or metric-output identities supporting an Agent Judge decision.","items":{"oneOf":[{"type":"object","required":["frame_id"],"properties":{"type":{"type":"string","enum":["frame"],"default":"frame"},"frame_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["trace_id","span_id"],"properties":{"type":{"type":"string","enum":["trace_span"],"default":"trace_span"},"trace_id":{"type":"string","minLength":1},"span_id":{"type":"string","minLength":1}},"additionalProperties":false},{"type":"object","required":["type","metric_output_ulid"],"properties":{"type":{"type":"string","enum":["metric_output"]},"metric_output_ulid":{"type":"string","minLength":1,"maxLength":26}},"additionalProperties":false}]}}]},"result":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Structured metric result. Its keys depend on the metric type — for LLM-judge metrics the judge's reasoning is at result.llm.answer_explanation and the evaluation prompt at result.llm.prompt. Null for metrics that produce no structured result.","example":{"llm":{"answer_explanation":"The agent never confirmed the caller's address before ending the call.","prompt":"Did the agent confirm the caller's address?"}}},{"type":"null","additionalProperties":true,"description":"Structured metric result. Its keys depend on the metric type — for LLM-judge metrics the judge's reasoning is at result.llm.answer_explanation and the evaluation prompt at result.llm.prompt. Null for metrics that produce no structured result.","example":{"llm":{"answer_explanation":"The agent never confirmed the caller's address before ending the call.","prompt":"Did the agent confirm the caller's address?"}}}]},"runtime_metadata":{"oneOf":[{"additionalProperties":true,"type":"object","description":"How the metric was calculated at runtime. Only populated when view=FULL."},{"additionalProperties":true,"type":"null","description":"How the metric was calculated at runtime. Only populated when view=FULL."}]},"subvalues_by_timestamp":{"oneOf":[{"items":{"description":"A single metric measurement anchored to a time range.\n\nUsed for time-series and per-message metric data such as audio-timeline\nhighlighting and transcript message highlighting.","properties":{"start_offset":{"description":"Start position in seconds","type":"number"},"end_offset":{"description":"End position in seconds","type":"number"},"output_type":{"description":"Value type: float, string, or set","type":"string"},"float_value":{"default":0,"description":"Numeric value (when output_type is float)","type":"number"},"string_value":{"default":"","description":"String value (when output_type is string)","type":"string"},"role":{"oneOf":[{"type":"string","description":"Speaker role for this interval (e.g. user, assistant)"},{"type":"null","description":"Speaker role for this interval (e.g. user, assistant)"}]},"message_index":{"oneOf":[{"type":"integer","description":"0-based transcript message index"},{"type":"null","description":"0-based transcript message index"}]},"metadata":{"oneOf":[{"additionalProperties":true,"type":"object","description":"Extra per-span context (e.g. LLM observation explanation)"},{"additionalProperties":true,"type":"null","description":"Extra per-span context (e.g. LLM observation explanation)"}]}},"required":["start_offset","end_offset","output_type"],"type":"object"},"type":"array","description":"Time-series metric values anchored to time ranges. Capped at 500 entries; see subvalues_by_timestamp_truncated."},{"items":{"description":"A single metric measurement anchored to a time range.\n\nUsed for time-series and per-message metric data such as audio-timeline\nhighlighting and transcript message highlighting.","properties":{"start_offset":{"description":"Start position in seconds","type":"number"},"end_offset":{"description":"End position in seconds","type":"number"},"output_type":{"description":"Value type: float, string, or set","type":"string"},"float_value":{"default":0,"description":"Numeric value (when output_type is float)","type":"number"},"string_value":{"default":"","description":"String value (when output_type is string)","type":"string"},"role":{"oneOf":[{"type":"string","description":"Speaker role for this interval (e.g. user, assistant)"},{"type":"null","description":"Speaker role for this interval (e.g. user, assistant)"}]},"message_index":{"oneOf":[{"type":"integer","description":"0-based transcript message index"},{"type":"null","description":"0-based transcript message index"}]},"metadata":{"oneOf":[{"additionalProperties":true,"type":"object","description":"Extra per-span context (e.g. LLM observation explanation)"},{"additionalProperties":true,"type":"null","description":"Extra per-span context (e.g. LLM observation explanation)"}]}},"required":["start_offset","end_offset","output_type"],"type":"object"},"type":"null","description":"Time-series metric values anchored to time ranges. Capped at 500 entries; see subvalues_by_timestamp_truncated."}]},"subvalues_by_timestamp_total_count":{"default":0,"description":"Total subvalues on the underlying row before truncation. 0 when the row has no subvalues.","type":"integer"},"subvalues_by_timestamp_truncated":{"default":false,"description":"True when the stored row had more than 500 subvalues and the response array was truncated.","type":"boolean"}},"description":"Simplified metric output for conversations API.\n"},"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_outputs","typeLabel":"object[] | null"},"metric_values":{"oneOf":[{"type":"array","description":"Every metric's value on this conversation, inline. Present when the list request\nsets include=metric_values or filters by metric value (filter=metric.\u003cid> ...);\nomitted from the default summary view. On this metric-aware path each conversation is\na summary projection: has_audio is reported false and persona_id / source / destination\nare null regardless of the underlying record — fetch GET /v1/conversations/uploaded/{id} for\nauthoritative audio, persona, and endpoint values.\n","items":{"type":"object","required":["metric_id"],"properties":{"metric_id":{"type":"string","description":"Metric definition identifier","example":"29BlkepvvX19ebbLDB0y6Q","isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].metric_id","typeLabel":"string"},"value":{"oneOf":[{"type":"number","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","example":0.92,"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value.oneOf.0","typeLabel":"number"},{"type":"string","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","example":0.92,"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value.oneOf.1","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value.oneOf.2.items.[INDEX]","typeLabel":"string"},"description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","example":0.92,"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value.oneOf.2","typeLabel":"string[]"},{"type":"string","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","enum":[null],"example":0.92,"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value.oneOf.3","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","enum":[null],"example":0.92,"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value.oneOf.4","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX].value","typeLabel":"number | string | string[] | enum\u003cstring> | null"}},"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Every metric's value on this conversation, inline. Present when the list request\nsets include=metric_values or filters by metric value (filter=metric.\u003cid> ...);\nomitted from the default summary view. On this metric-aware path each conversation is\na summary projection: has_audio is reported false and persona_id / source / destination\nare null regardless of the underlying record — fetch GET /v1/conversations/uploaded/{id} for\nauthoritative audio, persona, and endpoint values.\n","items":{"type":"object","required":["metric_id"],"properties":{"metric_id":{"type":"string","description":"Metric definition identifier","example":"29BlkepvvX19ebbLDB0y6Q"},"value":{"oneOf":[{"type":"number","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","example":0.92},{"type":"string","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","example":0.92},{"type":"array","items":{"type":"string"},"description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","example":0.92},{"type":"string","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","enum":[null],"example":0.92},{"type":"null","description":"Metric value (float, string, or list of strings depending on metric type; null if unscored or failed)","enum":[null],"example":0.92}]}}},"uniqueKey":"oneOf.0.uploaded_conversation.metric_values.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.metric_values","typeLabel":"object[] | null"},"error":{"oneOf":[{"type":"string","description":"Error message (only present if status=FAILED)","example":null,"uniqueKey":"oneOf.0.uploaded_conversation.error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Error message (only present if status=FAILED)","example":null,"uniqueKey":"oneOf.0.uploaded_conversation.error.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.error","typeLabel":"string | null"},"transcript":{"oneOf":[{"items":{"additionalProperties":true,"type":"object","uniqueKey":"oneOf.0.uploaded_conversation.transcript.oneOf.0.items.[INDEX]","typeLabel":"object"},"type":"array","description":"Conversation transcript messages. Only included in single-resource GET, not LIST.","uniqueKey":"oneOf.0.uploaded_conversation.transcript.oneOf.0","typeLabel":"object[]"},{"items":{"additionalProperties":true,"type":"object"},"type":"null","description":"Conversation transcript messages. Only included in single-resource GET, not LIST.","uniqueKey":"oneOf.0.uploaded_conversation.transcript.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.uploaded_conversation.transcript","typeLabel":"object[] | null"}},"description":"Conversation resource object.\n","required":["conversation_id","create_time","status","name"],"isRequired":true,"uniqueKey":"oneOf.0.uploaded_conversation","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Returned with HTTP 200 when a submit is dropped by the simulation\nfilter. No conversation is created and nothing is billed.\n","required":["filtered","reason","simulation_id"],"properties":{"filtered":{"type":"boolean","description":"Always true; the conversation was not created","isRequired":true,"uniqueKey":"oneOf.1.filtered","typeLabel":"boolean"},"reason":{"type":"string","description":"Why the submit was filtered","example":"coval_simulation","isRequired":true,"uniqueKey":"oneOf.1.reason","typeLabel":"string"},"simulation_id":{"type":"string","description":"The platform simulation the submit matched","example":"CbnW6XcVKTv4gAZGRrXbut","isRequired":true,"uniqueKey":"oneOf.1.simulation_id","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"success":{"title":"success","value":{"uploaded_conversation":{"name":"conversations/gk3jK9mPq2xRt5vW8yZaBc","conversation_id":"gk3jK9mPq2xRt5vW8yZaBc","status":"PENDING","create_time":"2025-11-03T14:32:30Z","external_conversation_id":"external-call-7x8z9a","occurred_at":"2025-11-03T14:32:00Z","has_audio":true,"agent_id":null,"persona_id":null,"metadata":{"campaign":"q4-support","channel":"phone","customer_tier":"premium"},"tags":["restaurant","support-tier-1"]}}},"filtered":{"title":"filtered","value":{"filtered":true,"reason":"coval_simulation","simulation_id":"CbnW6XcVKTv4gAZGRrXbut"}}},"exampleType":"examples"}},"exampleType":"examples"},"cac4bc87-fdbb-4e85-b467-2d51ac1b47fe":{"description":"Invalid request arguments","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Error code","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","NOT_FOUND","ALREADY_EXISTS","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"],"example":"INVALID_ARGUMENT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message","example":"Missing required input data","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field that caused the error","example":"transcript","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"description":{"type":"string","description":"Detailed description of the error","example":"At least one of transcript, audio, or audio_url must be provided","uniqueKey":"error.details.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Additional error details","default":[],"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingInput":{"title":"missingInput","value":{"error":{"code":"INVALID_ARGUMENT","message":"Missing required input data","details":[{"field":"transcript","description":"At least one of transcript or audio_url must be provided"}]}}},"invalidFilter":{"title":"invalidFilter","value":{"error":{"code":"INVALID_ARGUMENT","message":"Invalid filter expression","details":[{"field":"filter","description":"Unknown field 'invalid_field'. Valid fields: status, create_time, occurred_at, external_conversation_id"}]}}},"invalidPageSize":{"title":"invalidPageSize","value":{"error":{"code":"INVALID_ARGUMENT","message":"Invalid page_size","details":[{"field":"page_size","description":"page_size must be between 1 and 250"}]}}},"audioFormatInvalid":{"title":"audioFormatInvalid","value":{"error":{"code":"INVALID_ARGUMENT","message":"Unsupported audio format: MP4. Only WAV and MP3 files are supported.","details":[{"field":"audio_url","description":"Audio format detected as MP4 via magic byte analysis. Convert to WAV or MP3."}]}}},"audioTooShort":{"title":"audioTooShort","value":{"error":{"code":"INVALID_ARGUMENT","message":"Audio too short: 3.0 seconds. Minimum duration is 5 seconds.","details":[{"field":"audio_url","description":"Audio file duration is below the 5 second minimum requirement"}]}}},"audioTooLong":{"title":"audioTooLong","value":{"error":{"code":"INVALID_ARGUMENT","message":"Audio too long: 75.0 minutes. Maximum duration is 60 minutes.","details":[{"field":"audio_url","description":"Audio file duration exceeds the 1 hour maximum limit"}]}}},"audioTooLarge":{"title":"audioTooLarge","value":{"error":{"code":"INVALID_ARGUMENT","message":"Audio file too large: 250.0 MB. Maximum size is 200 MB.","details":[{"field":"audio_url","description":"Audio file size exceeds 200 MB limit"}]}}},"audioEmpty":{"title":"audioEmpty","value":{"error":{"code":"INVALID_ARGUMENT","message":"Audio file is empty.","details":[{"field":"audio_url","description":"Audio file contains no data"}]}}},"audioCorrupt":{"title":"audioCorrupt","value":{"error":{"code":"INVALID_ARGUMENT","message":"Invalid or corrupt audio file. Unable to read audio metadata.","details":[{"field":"audio_url","description":"Audio file headers could not be read or are corrupted"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"43595c8c-30e4-4c36-9d6a-242df6dcaf49":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Error code","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","NOT_FOUND","ALREADY_EXISTS","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"],"example":"INVALID_ARGUMENT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message","example":"Missing required input data","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field that caused the error","example":"transcript","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"description":{"type":"string","description":"Detailed description of the error","example":"At least one of transcript, audio, or audio_url must be provided","uniqueKey":"error.details.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Additional error details","default":[],"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UNAUTHENTICATED","message":"Invalid or missing API key","details":[]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHENTICATED","message":"Invalid or missing API key","details":[]}}}},"exampleType":"examples"}},"exampleType":"examples"},"f3260896-b68c-4762-9808-a37a11d11131":{"description":"Referenced resource not found","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Error code","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","NOT_FOUND","ALREADY_EXISTS","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"],"example":"INVALID_ARGUMENT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message","example":"Missing required input data","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field that caused the error","example":"transcript","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"description":{"type":"string","description":"Detailed description of the error","example":"At least one of transcript, audio, or audio_url must be provided","uniqueKey":"error.details.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Additional error details","default":[],"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"agentNotFound":{"title":"agentNotFound","value":{"error":{"code":"NOT_FOUND","message":"Agent not found: gk3jK9mPq2xRt5vW8yZaBc","details":[{"field":"agent_id","description":"Agent not found: gk3jK9mPq2xRt5vW8yZaBc"}]}}},"uploadNotFound":{"title":"uploadNotFound","value":{"error":{"code":"NOT_FOUND","message":"Upload not found: upl_01HRAB8N9G7Q4Y3K2J5W6X1ZTC","details":[{"field":"upload_id","description":"Upload not found: upl_01HRAB8N9G7Q4Y3K2J5W6X1ZTC"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"473df54f-d0dd-4009-8179-9942bee89630":{"description":"FAILED_PRECONDITION. Metric registrations require operator repair.\nContact Coval support; retrying without repairing the configuration will fail again.\nApplies after simulation filtering and quota admission.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Error code","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","NOT_FOUND","ALREADY_EXISTS","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"],"example":"INVALID_ARGUMENT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message","example":"Missing required input data","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field that caused the error","example":"transcript","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"description":{"type":"string","description":"Detailed description of the error","example":"At least one of transcript, audio, or audio_url must be provided","uniqueKey":"error.details.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Additional error details","default":[],"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_ARGUMENT","message":"Missing required input data","details":[]}}}},"exampleType":"generated"}},"exampleType":"generated"},"a662c53b-ac4c-436e-8c93-159e6660be87":{"description":"Request payload exceeds size limit","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Error code","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","NOT_FOUND","ALREADY_EXISTS","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"],"example":"INVALID_ARGUMENT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message","example":"Missing required input data","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field that caused the error","example":"transcript","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"description":{"type":"string","description":"Detailed description of the error","example":"At least one of transcript, audio, or audio_url must be provided","uniqueKey":"error.details.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Additional error details","default":[],"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"PAYLOAD_TOO_LARGE","message":"Request payload exceeds maximum size limit","details":[{"field":"metadata","description":"Request payload exceeds maximum size limit. Consider reducing metadata size."}]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"PAYLOAD_TOO_LARGE","message":"Request payload exceeds maximum size limit","details":[{"field":"metadata","description":"Request payload exceeds maximum size limit. Consider reducing metadata size."}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"50b58863-5ee5-44c8-984f-3e636f29ac9d":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Error code","enum":["INVALID_ARGUMENT","UNAUTHENTICATED","NOT_FOUND","ALREADY_EXISTS","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"],"example":"INVALID_ARGUMENT","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error message","example":"Missing required input data","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"Field that caused the error","example":"transcript","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"description":{"type":"string","description":"Detailed description of the error","example":"At least one of transcript, audio, or audio_url must be provided","uniqueKey":"error.details.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"description":"Additional error details","default":[],"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INTERNAL_ERROR","message":"An internal error occurred while processing the request","details":[]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_ERROR","message":"An internal error occurred while processing the request","details":[]}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"77b446f4-bc74-44f9-8e1d-be768c4310a4":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key for authentication.\n","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"bd1c6dae-d558-4d15-b2fe-47c4e2f41d73":{"url":"https://api.coval.dev/v1","description":"Production API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key for authentication.\n","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","description":"API key for authentication.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-Key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/v1/conversations-v1.yaml"},"subdomain":"coval-2e18a559","siteName":"Coval Documentation","title":"Submit conversation for evaluation - Coval Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T21:49:57.456Z","originalFileLocation":"api-reference/uploaded-conversations/submit-conversation-for-evaluation.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=\"light\"}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=\"Submit an uploaded conversation for evaluation.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Coval Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_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/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Submit conversation for evaluation - Coval Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Submit an uploaded conversation for evaluation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Coval Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://coval-2e18a559.mintlify.app/_mintlify/api/og/v2?division=Uploaded+Conversations\u0026amp;title=Submit+conversation+for+evaluation\u0026amp;description=Submit+an+uploaded+conversation+for+evaluation.%0A\u0026amp;theme=6eac43fcf99f568552f38b9e\u0026amp;signature=384639778f3d2588f2b9d2270914b93bf9915691d971b072c74e0ba0c12bc0ea\">\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=\"Submit conversation for evaluation - Coval Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Submit an uploaded conversation for evaluation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://coval-2e18a559.mintlify.app/_mintlify/api/og/v2?division=Uploaded+Conversations\u0026amp;title=Submit+conversation+for+evaluation\u0026amp;description=Submit+an+uploaded+conversation+for+evaluation.%0A\u0026amp;theme=6eac43fcf99f568552f38b9e\u0026amp;signature=384639778f3d2588f2b9d2270914b93bf9915691d971b072c74e0ba0c12bc0ea\">\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/coval-2e18a559/vkF1RiAFS33s2q-K/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Coval Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/uploaded-conversations/submit-conversation-for-evaluation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.coval.ai/#organization\",\"name\":\"Coval Documentation\",\"url\":\"https://docs.coval.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/coval-2e18a559/Notp6opJUCHArykW/logo/coval-logo-vector.svg?fit=max\u0026auto=format\u0026n=Notp6opJUCHArykW\u0026q=85\u0026s=f08474458e9c5bbff1e1d7119fdc8012\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.coval.ai#website\",\"name\":\"Coval Documentation\",\"url\":\"https://docs.coval.ai\",\"publisher\":{\"@id\":\"https://docs.coval.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation#webpage\",\"url\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation\",\"name\":\"Submit conversation for evaluation\",\"description\":\"Submit an uploaded conversation for evaluation.\",\"dateModified\":\"2026-10-21T21:49:57.456Z\",\"isPartOf\":{\"@id\":\"https://docs.coval.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Uploaded Conversations\",\"item\":\"https://docs.coval.ai/api-reference/audio/upload-audio\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submit conversation for evaluation\",\"item\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation#apireference\",\"headline\":\"Submit conversation for evaluation\",\"name\":\"Submit conversation for evaluation\",\"description\":\"Submit an uploaded conversation for evaluation.\",\"url\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.coval.ai/api-reference/uploaded-conversations/submit-conversation-for-evaluation#webpage\"},\"dateModified\":\"2026-10-21T21:49:57.456Z\",\"publisher\":{\"@id\":\"https://docs.coval.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.coval.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Coval Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Coval Documentation","nav":{"global":null,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":"/welcome"}]},{"tab":"API","icon":"square-terminal","groups":[{"group":"API","pages":[{"sidebarTitle":"Introduction","title":"API Reference","href":"/api-reference/v1/introduction"},{"title":"Conversation API compatibility","sidebarTitle":"Conversation compatibility","href":"/api-reference/v1/conversations-compatibility"}]},{"group":"Runs","icon":"play","pages":[{"title":"List runs","deprecated":null,"version":null,"openapi":"/api-reference/v1/runs-v1.yaml get /runs","href":"/api-reference/runs/list-runs"},{"title":"Launch run","deprecated":null,"version":null,"openapi":"/api-reference/v1/runs-v1.yaml post /runs","href":"/api-reference/runs/launch-run"},{"title":"Get run","deprecated":null,"version":null,"openapi":"/api-reference/v1/runs-v1.yaml get /runs/{run_id}","href":"/api-reference/runs/get-run"},{"title":"Update run","deprecated":null,"version":null,"openapi":"/api-reference/v1/runs-v1.yaml patch /runs/{run_id}","href":"/api-reference/runs/update-run"},{"title":"Delete run","deprecated":null,"version":null,"openapi":"/api-reference/v1/runs-v1.yaml delete /runs/{run_id}","href":"/api-reference/runs/delete-run"},{"title":"List run tag values","deprecated":null,"version":null,"openapi":"/api-reference/v1/runs-v1.yaml get /runs/tags","href":"/api-reference/runs/list-run-tag-values"}]},{"group":"Simulated Conversations","icon":"rocket","pages":[{"title":"List simulations","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /conversations/simulated","href":"/api-reference/simulated-conversations/list-simulations"},{"title":"Get simulation","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /conversations/simulated/{simulation_id}","href":"/api-reference/simulated-conversations/get-simulation"},{"title":"Update simulation","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml patch /conversations/simulated/{simulation_id}","href":"/api-reference/simulated-conversations/update-simulation"},{"title":"Delete or cancel simulation","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml delete /conversations/simulated/{simulation_id}","href":"/api-reference/simulated-conversations/delete-or-cancel-simulation"},{"title":"Batch rerun metrics","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml post /conversations/simulated:rerunMetrics","href":"/api-reference/simulated-conversations/batch-rerun-metrics"},{"title":"Discover SDK WebSocket connection","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /simulations/{simulation_id}/connect","href":"/api-reference/simulated-conversations/discover-sdk-websocket-connection"},{"title":"Rerun a simulation","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml post /conversations/simulated/{simulation_id}/resimulate","href":"/api-reference/simulated-conversations/rerun-a-simulation"},{"title":"Get audio file URL","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /conversations/simulated/{simulation_id}/audio","href":"/api-reference/simulated-conversations/get-audio-file-url"},{"title":"Retrieve a named simulation attribute","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /simulations/{simulation_id}/attributes/{attribute_name}","href":"/api-reference/simulated-conversations/retrieve-a-named-simulation-attribute"},{"group":"Metric Outputs","pages":[{"title":"List metrics","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /conversations/simulated/{simulation_id}/metrics","href":"/api-reference/metric-outputs/list-metrics"},{"title":"Get simulation metric output(s)","deprecated":null,"version":null,"openapi":"/api-reference/v1/simulations-v1.yaml get /conversations/simulated/{simulation_id}/metrics/{metric_output_id}","href":"/api-reference/metric-outputs/get-simulation-metric-outputs"}]}]},{"group":"Uploaded Conversations","icon":"messages","pages":[{"title":"Upload audio","description":"Issue an opaque `upload_id` and a short-lived presigned PUT URL for direct audio upload.\n","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml post /audio:upload","href":"/api-reference/audio/upload-audio"},{"title":"Submit conversation for evaluation","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml post /conversations/uploaded:submit","href":"/api-reference/uploaded-conversations/submit-conversation-for-evaluation"},{"title":"List conversations","description":"List conversations with optional filtering, pagination, and ordering.\n","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml get /conversations/uploaded","href":"/api-reference/uploaded-conversations/list-conversations"},{"title":"Get conversation details","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml get /conversations/uploaded/{conversation_id}","href":"/api-reference/uploaded-conversations/get-conversation-details"},{"title":"Attach audio or add metadata to a conversation","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml patch /conversations/uploaded/{conversation_id}","href":"/api-reference/uploaded-conversations/attach-audio-or-add-metadata-to-a-conversation"},{"title":"Delete or cancel conversation","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml delete /conversations/uploaded/{conversation_id}","href":"/api-reference/uploaded-conversations/delete-or-cancel-conversation"},{"title":"Get conversation audio","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml get /conversations/uploaded/{conversation_id}/audio","href":"/api-reference/audio/get-conversation-audio"},{"group":"Metrics","pages":[{"title":"List conversation metrics","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml get /conversations/uploaded/{conversation_id}/metrics","href":"/api-reference/uploaded-conversations/list-conversation-metrics"},{"title":"Get conversation metric output(s)","deprecated":null,"version":null,"openapi":"/api-reference/v1/conversations-v1.yaml get /conversations/uploaded/{conversation_id}/metrics/{metric_output_id}","href":"/api-reference/uploaded-conversations/get-conversation-metric-outputs"}]}]},{"group":"Agents","icon":"robot","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml get /agents","href":"/api-reference/agents/list-agents"},{"title":"Connect an agent","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml post /agents","href":"/api-reference/agents/connect-an-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml get /agents/{agent_id}","href":"/api-reference/agents/get-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml patch /agents/{agent_id}","href":"/api-reference/agents/update-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml delete /agents/{agent_id}","href":"/api-reference/agents/delete-agent"},{"title":"Duplicate an agent","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml post /agents/{agent_id}/duplicate","href":"/api-reference/agents/duplicate-an-agent"},{"group":"Versions","pages":[{"title":"List agent versions","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml get /agents/{agent_id}/versions","href":"/api-reference/agents/list-agent-versions"},{"title":"Revert agent version","deprecated":null,"version":null,"openapi":"/api-reference/v1/agents-v1.yaml post /agents/{agent_id}/versions/{version_id}/revert","href":"/api-reference/agents/revert-agent-version"}]}]},{"group":"Mutations","icon":"flask-vial","pages":[{"title":"List mutations","deprecated":null,"version":null,"openapi":"/api-reference/v1/mutations-v1.yaml get /agents/{agent_id}/mutations","href":"/api-reference/mutations/list-mutations"},{"title":"Create mutation","deprecated":null,"version":null,"openapi":"/api-reference/v1/mutations-v1.yaml post /agents/{agent_id}/mutations","href":"/api-reference/mutations/create-mutation"},{"title":"Get mutation","deprecated":null,"version":null,"openapi":"/api-reference/v1/mutations-v1.yaml get /agents/{agent_id}/mutations/{mutation_id}","href":"/api-reference/mutations/get-mutation"},{"title":"Update mutation","deprecated":null,"version":null,"openapi":"/api-reference/v1/mutations-v1.yaml patch /agents/{agent_id}/mutations/{mutation_id}","href":"/api-reference/mutations/update-mutation"},{"title":"Delete mutation","deprecated":null,"version":null,"openapi":"/api-reference/v1/mutations-v1.yaml delete /agents/{agent_id}/mutations/{mutation_id}","href":"/api-reference/mutations/delete-mutation"}]},{"group":"Test Sets","icon":"database","pages":[{"title":"List test sets","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml get /test-sets","href":"/api-reference/test-sets/list-test-sets"},{"title":"Create test set","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml post /test-sets","href":"/api-reference/test-sets/create-test-set"},{"title":"Get test set","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml get /test-sets/{test_set_id}","href":"/api-reference/test-sets/get-test-set"},{"title":"Update test set","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml patch /test-sets/{test_set_id}","href":"/api-reference/test-sets/update-test-set"},{"title":"Delete test set","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml delete /test-sets/{test_set_id}","href":"/api-reference/test-sets/delete-test-set"},{"title":"Duplicate a test set","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml post /test-sets/{test_set_id}/duplicate","href":"/api-reference/test-sets/duplicate-a-test-set"},{"title":"Associate agents with a test set","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml post /test-sets/{test_set_id}/agents:add","href":"/api-reference/test-sets/associate-agents-with-a-test-set"},{"title":"List test set records","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml get /test-sets/{test_set_id}/records","href":"/api-reference/test-sets/list-test-set-records"},{"group":"Versions","pages":[{"title":"List test set versions","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml get /test-sets/{test_set_id}/versions","href":"/api-reference/test-sets/list-test-set-versions"},{"title":"Revert test set version","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml post /test-sets/{test_set_id}/versions/{version_id}/revert","href":"/api-reference/test-sets/revert-test-set-version"}]},{"group":"Agents","pages":[{"title":"List associated agents","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml get /test-sets/{test_set_id}/agents","href":"/api-reference/test-sets/list-associated-agents"},{"title":"Remove an agent association","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-sets-v1.yaml delete /test-sets/{test_set_id}/agents/{agent_id}","href":"/api-reference/test-sets/remove-an-agent-association"}]}]},{"group":"Test Cases","icon":"flask","pages":[{"title":"List test cases","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-cases-v1.yaml get /test-cases","href":"/api-reference/test-cases/list-test-cases"},{"title":"Create test case","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-cases-v1.yaml post /test-cases","href":"/api-reference/test-cases/create-test-case"},{"title":"Get test case","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-cases-v1.yaml get /test-cases/{test_case_id}","href":"/api-reference/test-cases/get-test-case"},{"title":"Update test case","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-cases-v1.yaml patch /test-cases/{test_case_id}","href":"/api-reference/test-cases/update-test-case"},{"title":"Delete test case","deprecated":null,"version":null,"openapi":"/api-reference/v1/test-cases-v1.yaml delete /test-cases/{test_case_id}","href":"/api-reference/test-cases/delete-test-case"}]},{"group":"Personas","icon":"circle-user","pages":[{"title":"List personas","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas","href":"/api-reference/personas/list-personas"},{"title":"Create persona","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml post /personas","href":"/api-reference/personas/create-persona"},{"title":"Get persona","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas/{persona_id}","href":"/api-reference/personas/get-persona"},{"title":"Update persona","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml patch /personas/{persona_id}","href":"/api-reference/personas/update-persona"},{"title":"Delete persona","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml delete /personas/{persona_id}","href":"/api-reference/personas/delete-persona"},{"title":"List background sounds","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas/background-sounds","href":"/api-reference/personas/list-background-sounds"},{"title":"Create background sound upload","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml post /personas/background-sounds","href":"/api-reference/personas/create-background-sound-upload"},{"title":"Update background sound","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml patch /personas/background-sounds/{background_sound_id}","href":"/api-reference/personas/update-background-sound"},{"title":"List phone number mappings","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas/phone-numbers","href":"/api-reference/personas/list-phone-number-mappings"},{"title":"List available voices","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas/voices","href":"/api-reference/personas/list-available-voices"},{"title":"List persona tag values","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas/tags","href":"/api-reference/personas/list-persona-tag-values"},{"title":"Duplicate a persona","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml post /personas/{persona_id}/duplicate","href":"/api-reference/personas/duplicate-a-persona"},{"title":"Complete background sound upload","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml post /personas/background-sounds/{background_sound_id}/complete","href":"/api-reference/personas/complete-background-sound-upload"},{"group":"Versions","pages":[{"title":"List persona versions","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml get /personas/{persona_id}/versions","href":"/api-reference/personas/list-persona-versions"},{"title":"Revert persona version","deprecated":null,"version":null,"openapi":"/api-reference/v1/personas-v1.yaml post /personas/{persona_id}/versions/{version_id}/revert","href":"/api-reference/personas/revert-persona-version"}]}]},{"group":"Metrics","icon":"ballot-check","pages":[{"title":"List metrics","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics","href":"/api-reference/metrics/list-metrics"},{"title":"Create metric","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics","href":"/api-reference/metrics/create-metric"},{"title":"List metric template variables","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/template-variables","href":"/api-reference/metrics/list-metric-template-variables"},{"title":"Get metric","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}","href":"/api-reference/metrics/get-metric"},{"title":"Update metric","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml patch /metrics/{metric_id}","href":"/api-reference/metrics/update-metric"},{"title":"Delete metric","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml delete /metrics/{metric_id}","href":"/api-reference/metrics/delete-metric"},{"title":"List recently-deleted metrics","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/recently-deleted","href":"/api-reference/metrics/list-recently-deleted-metrics"},{"title":"List available metric models","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /models/metric","href":"/api-reference/metrics/list-available-metric-models"},{"title":"List metric flows","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/flows","href":"/api-reference/metrics/list-metric-flows"},{"title":"Create a metric flow","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/flows","href":"/api-reference/metrics/create-a-metric-flow"},{"title":"Update a metric flow","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml patch /metrics/flows/{flow_id}","href":"/api-reference/metrics/update-a-metric-flow"},{"title":"Delete a metric flow","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml delete /metrics/flows/{flow_id}","href":"/api-reference/metrics/delete-a-metric-flow"},{"title":"Test a draft SQL metric query","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/sql:test","href":"/api-reference/metrics/test-a-draft-sql-metric-query"},{"title":"Get the SQL metric schema","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/sql-schema","href":"/api-reference/metrics/get-the-sql-metric-schema"},{"title":"Batch-get metric outputs by ULID","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/outputs:batchGet","href":"/api-reference/metrics/batch-get-metric-outputs-by-ulid"},{"title":"List metric tag values","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/tags","href":"/api-reference/metrics/list-metric-tag-values"},{"title":"Duplicate a metric","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/{metric_id}/duplicate","href":"/api-reference/metrics/duplicate-a-metric"},{"title":"Restore a recently-deleted metric","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/{metric_id}/restore","href":"/api-reference/metrics/restore-a-recently-deleted-metric"},{"title":"Trigger test metric execution","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/{metric_id}/test","href":"/api-reference/metrics/trigger-test-metric-execution"},{"group":"Versions","pages":[{"title":"List metric versions","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}/versions","href":"/api-reference/metrics/list-metric-versions"},{"title":"Revert metric version","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/{metric_id}/versions/{version_id}/revert","href":"/api-reference/metrics/revert-metric-version"}]},{"group":"Thresholds","pages":[{"title":"List metric thresholds","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}/thresholds","href":"/api-reference/metrics/list-metric-thresholds"},{"title":"Create metric threshold","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/{metric_id}/thresholds","href":"/api-reference/metrics/create-metric-threshold"},{"title":"Get metric threshold","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}/threshold","href":"/api-reference/metrics/get-metric-threshold"},{"title":"Update metric threshold","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml patch /metrics/{metric_id}/threshold","href":"/api-reference/metrics/update-metric-threshold"},{"title":"Delete metric threshold","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml delete /metrics/{metric_id}/thresholds/{threshold_id}","href":"/api-reference/metrics/delete-metric-threshold"}]},{"group":"Baselines","pages":[{"title":"List metric baselines","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}/baselines","href":"/api-reference/metrics/list-metric-baselines"},{"title":"Create metric baseline","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml post /metrics/{metric_id}/baselines","href":"/api-reference/metrics/create-metric-baseline"},{"title":"Get metric baseline","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}/baselines/{baseline_id}","href":"/api-reference/metrics/get-metric-baseline"},{"title":"Update metric baseline","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml patch /metrics/{metric_id}/baselines/{baseline_id}","href":"/api-reference/metrics/update-metric-baseline"},{"title":"Delete metric baseline","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml delete /metrics/{metric_id}/baselines/{baseline_id}","href":"/api-reference/metrics/delete-metric-baseline"},{"title":"Get baseline history","deprecated":null,"version":null,"openapi":"/api-reference/v1/metrics-v1.yaml get /metrics/{metric_id}/baselines/{baseline_id}/history","href":"/api-reference/metrics/get-baseline-history"}]}]},{"group":"Run Templates","icon":"puzzle-piece","pages":[{"title":"List run templates","deprecated":null,"version":null,"openapi":"/api-reference/v1/run-templates-v1.yaml get /run-templates","href":"/api-reference/run-templates/list-run-templates"},{"title":"Create run template","deprecated":null,"version":null,"openapi":"/api-reference/v1/run-templates-v1.yaml post /run-templates","href":"/api-reference/run-templates/create-run-template"},{"title":"Get run template","deprecated":null,"version":null,"openapi":"/api-reference/v1/run-templates-v1.yaml get /run-templates/{run_template_id}","href":"/api-reference/run-templates/get-run-template"},{"title":"Update run template","deprecated":null,"version":null,"openapi":"/api-reference/v1/run-templates-v1.yaml patch /run-templates/{run_template_id}","href":"/api-reference/run-templates/update-run-template"},{"title":"Delete run template","deprecated":null,"version":null,"openapi":"/api-reference/v1/run-templates-v1.yaml delete /run-templates/{run_template_id}","href":"/api-reference/run-templates/delete-run-template"}]},{"group":"Scheduled Runs","icon":"clock","pages":[{"title":"List scheduled runs","deprecated":null,"version":null,"openapi":"/api-reference/v1/scheduled-runs-v1.yaml get /scheduled-runs","href":"/api-reference/scheduled-runs/list-scheduled-runs"},{"title":"Create scheduled run","deprecated":null,"version":null,"openapi":"/api-reference/v1/scheduled-runs-v1.yaml post /scheduled-runs","href":"/api-reference/scheduled-runs/create-scheduled-run"},{"title":"Get scheduled run","deprecated":null,"version":null,"openapi":"/api-reference/v1/scheduled-runs-v1.yaml get /scheduled-runs/{scheduled_run_id}","href":"/api-reference/scheduled-runs/get-scheduled-run"},{"title":"Update scheduled run","deprecated":null,"version":null,"openapi":"/api-reference/v1/scheduled-runs-v1.yaml patch /scheduled-runs/{scheduled_run_id}","href":"/api-reference/scheduled-runs/update-scheduled-run"},{"title":"Delete scheduled run","deprecated":null,"version":null,"openapi":"/api-reference/v1/scheduled-runs-v1.yaml delete /scheduled-runs/{scheduled_run_id}","href":"/api-reference/scheduled-runs/delete-scheduled-run"},{"title":"List a scheduled run's produced runs","deprecated":null,"version":null,"openapi":"/api-reference/v1/scheduled-runs-v1.yaml get /scheduled-runs/{scheduled_run_id}/runs","href":"/api-reference/scheduled-runs/list-a-scheduled-runs-produced-runs"}]},{"group":"Reviews","icon":"clipboard-check","pages":[{"title":"List review annotations","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-annotations","href":"/api-reference/review-annotations/list-review-annotations"},{"title":"Create review annotation","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml post /review-annotations","href":"/api-reference/review-annotations/create-review-annotation"},{"title":"Get review annotation","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-annotations/{annotation_id}","href":"/api-reference/review-annotations/get-review-annotation"},{"title":"Update review annotation","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml patch /review-annotations/{annotation_id}","href":"/api-reference/review-annotations/update-review-annotation"},{"title":"Delete review annotation","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml delete /review-annotations/{annotation_id}","href":"/api-reference/review-annotations/delete-review-annotation"},{"title":"List review projects","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-projects","href":"/api-reference/review-projects/list-review-projects"},{"title":"Create review project","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml post /review-projects","href":"/api-reference/review-projects/create-review-project"},{"title":"Get review project","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-projects/{project_id}","href":"/api-reference/review-projects/get-review-project"},{"title":"Update review project","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml patch /review-projects/{project_id}","href":"/api-reference/review-projects/update-review-project"},{"title":"Delete review project","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml delete /review-projects/{project_id}","href":"/api-reference/review-projects/delete-review-project"},{"title":"Get review disagreement state","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml post /review-projects/disagreement-state","href":"/api-reference/review-projects/get-review-disagreement-state"},{"title":"Get metric health stats","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-annotations/metric-health-stats","href":"/api-reference/review-annotations/get-metric-health-stats"},{"title":"Get annotations with metric outputs","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml post /review-annotations:withMetricOutputs","href":"/api-reference/review-annotations/get-annotations-with-metric-outputs"},{"title":"Get project metric agreement","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-projects/{project_id}/metric-agreement","href":"/api-reference/review-projects/get-project-metric-agreement"},{"title":"Get review project progress","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-projects/{project_id}/progress","href":"/api-reference/review-projects/get-review-project-progress"},{"title":"Get project insights","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml get /review-projects/{project_id}/insights","href":"/api-reference/review-projects/get-project-insights"},{"title":"Complete a review-project conversation","deprecated":null,"version":null,"openapi":"/api-reference/v1/reviews-v1.yaml post /review-projects/{project_id}/complete-conversation","href":"/api-reference/review-projects/complete-a-review-project-conversation"}]},{"group":"Dashboards","icon":"chart-line","pages":[{"title":"List dashboards","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml get /dashboards","href":"/api-reference/dashboards/list-dashboards"},{"title":"Create dashboard","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml post /dashboards","href":"/api-reference/dashboards/create-dashboard"},{"title":"Get dashboard","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml get /dashboards/{dashboard_id}","href":"/api-reference/dashboards/get-dashboard"},{"title":"Update dashboard","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml patch /dashboards/{dashboard_id}","href":"/api-reference/dashboards/update-dashboard"},{"title":"Delete dashboard","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml delete /dashboards/{dashboard_id}","href":"/api-reference/dashboards/delete-dashboard"},{"group":"Widgets","pages":[{"title":"List widgets","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml get /dashboards/{dashboard_id}/widgets","href":"/api-reference/widgets/list-widgets"},{"title":"Create widget","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml post /dashboards/{dashboard_id}/widgets","href":"/api-reference/widgets/create-widget"},{"title":"Get widget","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml get /dashboards/{dashboard_id}/widgets/{widget_id}","href":"/api-reference/widgets/get-widget"},{"title":"Update widget","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml patch /dashboards/{dashboard_id}/widgets/{widget_id}","href":"/api-reference/widgets/update-widget"},{"title":"Delete widget","deprecated":null,"version":null,"openapi":"/api-reference/v1/dashboards-v1.yaml delete /dashboards/{dashboard_id}/widgets/{widget_id}","href":"/api-reference/widgets/delete-widget"}]}]},{"group":"Alerts","icon":"bell","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml get /alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Create an alert","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml post /alerts","href":"/api-reference/alerts/create-an-alert"},{"title":"Get an alert","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml get /alerts/{alert_id}","href":"/api-reference/alerts/get-an-alert"},{"title":"Update an alert","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml patch /alerts/{alert_id}","href":"/api-reference/alerts/update-an-alert"},{"title":"Delete an alert","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml delete /alerts/{alert_id}","href":"/api-reference/alerts/delete-an-alert"},{"title":"List alert events","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml get /alerts/{alert_id}/events","href":"/api-reference/alert-events/list-alert-events"},{"title":"Test evaluate an alert","deprecated":null,"version":null,"openapi":"/api-reference/v1/alerts-v1.yaml post /alerts/{alert_id}/test-evaluate","href":"/api-reference/alerts/test-evaluate-an-alert"}]},{"group":"Reports","icon":"file-chart-column","pages":[{"title":"List reports","deprecated":null,"version":null,"openapi":"/api-reference/v1/reports-v1.yaml get /reports","href":"/api-reference/reports/list-reports"},{"title":"Create report","deprecated":null,"version":null,"openapi":"/api-reference/v1/reports-v1.yaml post /reports","href":"/api-reference/reports/create-report"},{"title":"Get report","deprecated":null,"version":null,"openapi":"/api-reference/v1/reports-v1.yaml get /reports/{report_id}","href":"/api-reference/reports/get-report"},{"title":"Update report","deprecated":null,"version":null,"openapi":"/api-reference/v1/reports-v1.yaml patch /reports/{report_id}","href":"/api-reference/reports/update-report"},{"title":"Delete report","deprecated":null,"version":null,"openapi":"/api-reference/v1/reports-v1.yaml delete /reports/{report_id}","href":"/api-reference/reports/delete-report"},{"title":"List report rows","deprecated":null,"version":null,"openapi":"/api-reference/v1/reports-v1.yaml get /reports/{report_id}/rows","href":"/api-reference/reports/list-report-rows"}]},{"group":"Tags","icon":"tags","pages":[{"title":"List tags","deprecated":null,"version":null,"openapi":"/api-reference/v1/tags-v1.yaml get /tags","href":"/api-reference/tags/list-tags"},{"title":"Create tag","deprecated":null,"version":null,"openapi":"/api-reference/v1/tags-v1.yaml post /tags","href":"/api-reference/tags/create-tag"},{"title":"Get tag","deprecated":null,"version":null,"openapi":"/api-reference/v1/tags-v1.yaml get /tags/{tag_id}","href":"/api-reference/tags/get-tag"},{"title":"Update tag","deprecated":null,"version":null,"openapi":"/api-reference/v1/tags-v1.yaml patch /tags/{tag_id}","href":"/api-reference/tags/update-tag"},{"title":"Delete tag","deprecated":null,"version":null,"openapi":"/api-reference/v1/tags-v1.yaml delete /tags/{tag_id}","href":"/api-reference/tags/delete-tag"}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/api-reference/v1/webhooks-v1.yaml get /webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create a webhook","deprecated":null,"version":null,"openapi":"/api-reference/v1/webhooks-v1.yaml post /webhooks","href":"/api-reference/webhooks/create-a-webhook"},{"title":"Update a webhook","deprecated":null,"version":null,"openapi":"/api-reference/v1/webhooks-v1.yaml patch /webhooks/{webhook_id}","href":"/api-reference/webhooks/update-a-webhook"},{"title":"Delete a webhook","deprecated":null,"version":null,"openapi":"/api-reference/v1/webhooks-v1.yaml delete /webhooks/{webhook_id}","href":"/api-reference/webhooks/delete-a-webhook"}]},{"group":"Traces","icon":"bezier-curve","pages":[{"title":"Ingest OTLP traces","deprecated":null,"version":null,"openapi":"/api-reference/v1/traces-v1.yaml post /traces","href":"/api-reference/traces/ingest-otlp-traces"},{"title":"Search trace-bearing calls","deprecated":null,"version":null,"openapi":"/api-reference/v1/traces-v1.yaml post /traces/search","href":"/api-reference/traces/search-trace-bearing-calls"},{"title":"Inspect trace quality and signal coverage","deprecated":null,"version":null,"openapi":"/api-reference/v1/traces-v1.yaml get /traces/summary","href":"/api-reference/traces/inspect-trace-quality-and-signal-coverage"},{"title":"List trace spans for a simulation output","deprecated":null,"version":null,"openapi":"/api-reference/v1/traces-v1.yaml get /traces/spans","href":"/api-reference/traces/list-trace-spans-for-a-simulation-output"}]},{"group":"Conversations Config","icon":"building","pages":[{"title":"List organization users","deprecated":null,"version":null,"openapi":"/api-reference/v1/organization-v1.yaml get /organization/users","href":"/api-reference/organization-users/list-organization-users"},{"title":"Get conversation metrics config","deprecated":null,"version":null,"openapi":"/api-reference/v1/organization-v1.yaml get /organization/conversation-metrics","href":"/api-reference/organization-conversations-config/get-conversation-metrics-config"},{"title":"Update conversation metrics config","deprecated":null,"version":null,"openapi":"/api-reference/v1/organization-v1.yaml patch /organization/conversation-metrics","href":"/api-reference/organization-conversations-config/update-conversation-metrics-config"},{"title":"Get conversation metrics config using the legacy path","deprecated":true,"version":null,"openapi":"/api-reference/v1/organization-v1.yaml get /organization/monitoring-metrics","href":"/api-reference/organization-conversations-config/get-conversation-metrics-config-using-the-legacy-path"},{"title":"Update conversation metrics config using the legacy path","deprecated":true,"version":null,"openapi":"/api-reference/v1/organization-v1.yaml patch /organization/monitoring-metrics","href":"/api-reference/organization-conversations-config/update-conversation-metrics-config-using-the-legacy-path"}]},{"group":"API Keys","icon":"key","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/v1/api-keys-v1.yaml get /api-keys","href":"/api-reference/api-keys/list-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"/api-reference/v1/api-keys-v1.yaml post /api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Update API key status","deprecated":null,"version":null,"openapi":"/api-reference/v1/api-keys-v1.yaml patch /api-keys/{api_key_id}","href":"/api-reference/api-keys/update-api-key-status"},{"title":"Delete API key","deprecated":null,"version":null,"openapi":"/api-reference/v1/api-keys-v1.yaml delete /api-keys/{api_key_id}","href":"/api-reference/api-keys/delete-api-key"}]},{"group":"Workspaces","icon":"layer-group","pages":[{"title":"List workspaces","deprecated":null,"version":null,"openapi":"/api-reference/v1/workspaces-v1.yaml get /workspaces","href":"/api-reference/workspaces/list-workspaces"},{"title":"Create workspace","deprecated":null,"version":null,"openapi":"/api-reference/v1/workspaces-v1.yaml post /workspaces","href":"/api-reference/workspaces/create-workspace"},{"title":"Get workspace","deprecated":null,"version":null,"openapi":"/api-reference/v1/workspaces-v1.yaml get /workspaces/{workspace_id}","href":"/api-reference/workspaces/get-workspace"},{"title":"Update workspace","deprecated":null,"version":null,"openapi":"/api-reference/v1/workspaces-v1.yaml patch /workspaces/{workspace_id}","href":"/api-reference/workspaces/update-workspace"},{"title":"Delete workspace","deprecated":null,"version":null,"openapi":"/api-reference/v1/workspaces-v1.yaml delete /workspaces/{workspace_id}","href":"/api-reference/workspaces/delete-workspace"},{"title":"Archive workspace","deprecated":null,"version":null,"openapi":"/api-reference/v1/workspaces-v1.yaml post /workspaces/{workspace_id}/archive","href":"/api-reference/workspaces/archive-workspace"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Get Slack integration status","deprecated":null,"version":null,"openapi":"/api-reference/v1/slack-v1.yaml get /integrations/slack","href":"/api-reference/integrations/get-slack-integration-status"},{"title":"Disconnect Slack integration","deprecated":null,"version":null,"openapi":"/api-reference/v1/slack-v1.yaml delete /integrations/slack","href":"/api-reference/integrations/disconnect-slack-integration"},{"title":"Connect a Slack workspace","deprecated":null,"version":null,"openapi":"/api-reference/v1/slack-v1.yaml post /integrations/slack/connect","href":"/api-reference/integrations/connect-a-slack-workspace"}]}]},{"tab":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"Developers","icon":"code","pages":[{"title":"Developers","href":"/sdks/overview"}]},{"tab":"Agents","icon":"microchip","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"Connectors","icon":"diagram-project","pages":[{"title":"Connectors","href":"/mcp/overview"}]}]},"title":"Submit conversation for evaluation - Coval Documentation","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"]}