This endpoint counts against your monthly analytics quota. Each call is counted even if no data is returned. Returns 429 when the limit is reached. See Rate Limits & Quotas.
Only COMPLETED transcriptions with a non-null evaluation score are included. IN_PROGRESS and FAILED transcriptions are excluded.
Results are capped at 20,000 transcriptions. If data.metadata.query_limit_reached is true, the report is based on a partial dataset.
Use data.charts.heatmap to identify which days and hours show the lowest performance — useful for targeting training or adjusting scheduling.
data.charts.heatmap is built from each transcription’s created_at hour — recordings submitted with a date-onlyperiod_date all land at hour "0" (midnight UTC). Send a time with period_date if you want an accurate hour axis.
data.comparison.delta may be an empty object {} when either the current or previous period has no calls.
The optional start_date / end_date filters (YYYY-MM-DD, both inclusive, each independent) scope the entire response to a date window — every metric is computed over the filtered set only. They match on each transcription’s created_at, which is exactly what period_date sets at upload time, so a call uploaded in June but dated April is correctly returned by a Q2 filter. data.metadata.filtered tells you whether a filter was applied — distinguishing “no data” from “the filter excluded everything”.
fail_rate changed meaning. In data.criteria_breakdown, fail_rate (and the new pass_rate) are now computed over evaluated_count — the calls where the criterion was actually scored — instead of total calls, so they are guaranteed within 0–100 (remove any client-side clamp). The array now lists every criterion, including never-failed ones, sorted worst-first with no-data entries last. When evaluated_count is 0, the rates and avg_score are null — that means no data, not a perfect score.
Per-criterion scores are only materialized for transcriptions evaluated after this feature’s release — there is no backfill. Older calls still count in kpis, charts, comparison, and raw_data, but contribute nothing to criteria_breakdown or criteria_evolution — so total_calls: 25 alongside a criterion with evaluated_count: 5 is correct, not a bug.
data.criteria_evolution is an object keyed by criterion ID, not an array — unlike every other collection in the response. Interpret avg_score via each criterion’s type: 0.0–1.0 compliance rate for boolean/strict, 1.0–5.0 for scale — the two scales must not share a chart axis.
data.criteria_breakdown only includes criteria that still exist on the evaluator. Deleted criteria are excluded.
Optional. Only analyse transcriptions from this date onwards. YYYY-MM-DD, inclusive — starts at 00:00:00 UTC on this day. Matches on each transcription's created_at (which period_date sets at upload time). Month-only values (2026-04) are rejected with 400. Omit for no lower bound.
Optional. Only analyse transcriptions up to this date. YYYY-MM-DD, inclusive — ends at 23:59:59 UTC on this day. Month-only values are rejected with 400. Omit for no upper bound. A start_date later than end_date is not an error — it simply matches nothing and returns the standard empty response. There is no quarter parameter: a quarter is just a range (2026-04-01 → 2026-06-30).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Heify Docs","colors":{"primary":"#3B82F6","light":"#60A5FA","dark":"#2563EB"},"logo":{"light":"https://mintcdn.com/heify/8fipfniSVMLrex-g/logo/light.svg?fit=max\u0026auto=format\u0026n=8fipfniSVMLrex-g\u0026q=85\u0026s=3239fc52dcd6309d024795459614038d","dark":"https://mintcdn.com/heify/8fipfniSVMLrex-g/logo/dark.svg?fit=max\u0026auto=format\u0026n=8fipfniSVMLrex-g\u0026q=85\u0026s=28818c1e279567bb2c6104530b7ea8d0"},"favicon":"https://mintcdn.com/heify/SlX89gyPo8IeHqZ-/favicon.png?fit=max\u0026auto=format\u0026n=SlX89gyPo8IeHqZ-\u0026q=85\u0026s=a3cc859f6117001d46d83feb47c4ebbb","api":{"openapi":["api-reference/openapi-configurations.json","api-reference/openapi-transcriptions.json","api-reference/openapi-evaluators.json","api-reference/openapi-participants.json"],"playground":{"display":"interactive"},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://api.heify.com"}},"navbar":{"links":[{"href":"https://www.heify.com/contact.html","label":"Contact"}],"primary":{"type":"button","label":"Get API Key","href":"https://sandbox.heify.com/sandbox/api-keys"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/heify"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"chart-line","href":"https://sandbox.heify.com"},{"anchor":"Support","icon":"headset","href":"https://www.heify.com/contact.html"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"heify","hasAudioNarration":false,"actualSubdomain":"heify","customDomains":["docs.heify.com"],"gitSource":{"type":"github","owner":"pablosierrafernandez","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a858fff4866d053b8e4da71","collectionId":"ae164c56-04e8-4106-9ac6-49be695e58db","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a858fff4866d053b8e4da71"},"entitlements":{},"buildId":"6a858fff4866d053b8e4da71:success","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":23},{"language":"default","tag":"Sandbox","count":11},{"language":"default","tag":"Documentation","count":10},{"language":"default","tag":"Transcriptions","count":8},{"language":"default","tag":"Configurations","count":6},{"language":"default","tag":"Evaluators","count":6},{"language":"default","tag":"Getting Started","count":6},{"language":"default","tag":"Modules","count":6},{"language":"default","tag":"Participants","count":5},{"language":"default","tag":"Core Objects","count":4}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/evaluator/analytics","slug":"/api-reference/evaluator/analytics","pageMetadata":{"title":"Evaluator Analysis","description":"Generate a performance dashboard for a specific evaluator across all its evaluations.","openapi":"api-reference/openapi-evaluators.json POST /analytics-evaluator","href":"/api-reference/evaluator/analytics"},"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: \"Generate a performance dashboard for a specific evaluator across all its evaluations.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Note,Tip,Warning}=_components;if(!Note)_missingMdxReference(`Note`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`This endpoint counts against your monthly analytics quota. Each call is counted even if no data is returned. Returns `,_jsx(_components.code,{children:`429`}),` when the limit is reached. See `,_jsx(_components.a,{href:`/platform/rate-limits`,children:`Rate Limits \u0026 Quotas`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Only `,_jsx(_components.strong,{children:`COMPLETED`}),` transcriptions with a non-null evaluation score are included. IN_PROGRESS and FAILED transcriptions are excluded.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Results are capped at `,_jsx(_components.strong,{children:`20,000 transcriptions`}),`. If `,_jsx(_components.code,{children:`data.metadata.query_limit_reached`}),` is `,_jsx(_components.code,{children:`true`}),`, the report is based on a partial dataset.`]})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`data.charts.heatmap`}),` to identify which days and hours show the lowest performance — useful for targeting training or adjusting scheduling.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data.charts.heatmap`}),` is built from each transcription’s `,_jsx(_components.code,{children:`created_at`}),` hour — recordings submitted with a `,_jsx(_components.strong,{children:`date-only`}),` `,_jsx(_components.a,{href:`/api-reference/transcription/request-upload-url#recording-date-period_date`,children:_jsx(_components.code,{children:`period_date`})}),` all land at hour `,_jsx(_components.code,{children:`\"0\"`}),` (midnight UTC). Send a time with `,_jsx(_components.code,{children:`period_date`}),` if you want an accurate hour axis.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data.comparison.delta`}),` may be an empty object `,_jsx(_components.code,{children:`{}`}),` when either the current or previous period has no calls.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The optional `,_jsx(_components.code,{children:`start_date`}),` / `,_jsx(_components.code,{children:`end_date`}),` filters (`,_jsx(_components.code,{children:`YYYY-MM-DD`}),`, both inclusive, each independent) scope the `,_jsx(_components.strong,{children:`entire response`}),` to a date window — every metric is computed over the filtered set only. They match on each transcription’s `,_jsx(_components.code,{children:`created_at`}),`, which is exactly what `,_jsx(_components.code,{children:`period_date`}),` sets at upload time, so a call uploaded in June but dated April is correctly returned by a Q2 filter. `,_jsx(_components.code,{children:`data.metadata.filtered`}),` tells you whether a filter was applied — distinguishing “no data” from “the filter excluded everything”.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`fail_rate`}),` changed meaning.`]}),` In `,_jsx(_components.code,{children:`data.criteria_breakdown`}),`, `,_jsx(_components.code,{children:`fail_rate`}),` (and the new `,_jsx(_components.code,{children:`pass_rate`}),`) are now computed over `,_jsx(_components.code,{children:`evaluated_count`}),` — the calls where the criterion was actually scored — instead of total calls, so they are guaranteed within 0–100 (remove any client-side clamp). The array now lists `,_jsx(_components.strong,{children:`every`}),` criterion, including never-failed ones, sorted worst-first with no-data entries last. When `,_jsx(_components.code,{children:`evaluated_count`}),` is `,_jsx(_components.code,{children:`0`}),`, the rates and `,_jsx(_components.code,{children:`avg_score`}),` are `,_jsx(_components.code,{children:`null`}),` — that means `,_jsx(_components.strong,{children:`no data, not a perfect score`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Per-criterion scores are only materialized for transcriptions evaluated `,_jsx(_components.strong,{children:`after this feature’s release`}),` — there is no backfill. Older calls still count in `,_jsx(_components.code,{children:`kpis`}),`, `,_jsx(_components.code,{children:`charts`}),`, `,_jsx(_components.code,{children:`comparison`}),`, and `,_jsx(_components.code,{children:`raw_data`}),`, but contribute nothing to `,_jsx(_components.code,{children:`criteria_breakdown`}),` or `,_jsx(_components.code,{children:`criteria_evolution`}),` — so `,_jsx(_components.code,{children:`total_calls: 25`}),` alongside a criterion with `,_jsx(_components.code,{children:`evaluated_count: 5`}),` is correct, not a bug.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data.criteria_evolution`}),` is an `,_jsx(_components.strong,{children:`object keyed by criterion ID`}),`, not an array — unlike every other collection in the response. Interpret `,_jsx(_components.code,{children:`avg_score`}),` via each criterion’s `,_jsx(_components.code,{children:`type`}),`: `,_jsx(_components.code,{children:`0.0`}),`–`,_jsx(_components.code,{children:`1.0`}),` compliance rate for `,_jsx(_components.code,{children:`boolean`}),`/`,_jsx(_components.code,{children:`strict`}),`, `,_jsx(_components.code,{children:`1.0`}),`–`,_jsx(_components.code,{children:`5.0`}),` for `,_jsx(_components.code,{children:`scale`}),` — the two scales must not share a chart axis.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data.criteria_breakdown`}),` only includes criteria that still exist on the evaluator. Deleted criteria are excluded.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Evaluator Analysis","description":"Generate a performance dashboard for a specific evaluator across all its evaluations.","openapi":"api-reference/openapi-evaluators.json POST /analytics-evaluator","href":"/api-reference/evaluator/analytics"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Evaluator Analysis","description":"Generate a performance dashboard for a specific evaluator across all its evaluations.","requestBody":"4e26d609-233a-4f6d-bf27-3598708f702a","responses":{"200":"7791467a-5689-4346-94fe-129cd6a7c0b2"},"method":"post","type":"path","servers":["ad9f95e4-60ad-4a56-a6c4-5b363f271d09"],"security":["a1ae920a-335b-4948-b966-ac8fbfada121"],"path":"/analytics-evaluator","baseUrlOptions":["https://api.heify.com"],"title":"Evaluator Analysis","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"evaluator_id":{"type":"string","format":"uuid","description":"The evaluator to analyze. Must belong to the authenticated account.","isRequired":true,"uniqueKey":"evaluator_id","typeLabel":"string\u003cuuid>"},"start_date":{"type":"string","format":"date","example":"2026-04-01","description":"Optional. Only analyse transcriptions from this date onwards. `YYYY-MM-DD`, **inclusive** — starts at `00:00:00` UTC on this day. Matches on each transcription's `created_at` (which `period_date` sets at upload time). Month-only values (`2026-04`) are rejected with `400`. Omit for no lower bound.","uniqueKey":"start_date","typeLabel":"string\u003cdate>"},"end_date":{"type":"string","format":"date","example":"2026-06-30","description":"Optional. Only analyse transcriptions up to this date. `YYYY-MM-DD`, **inclusive** — ends at `23:59:59` UTC on this day. Month-only values are rejected with `400`. Omit for no upper bound. A `start_date` later than `end_date` is not an error — it simply matches nothing and returns the standard empty response. There is no `quarter` parameter: a quarter is just a range (`2026-04-01` → `2026-06-30`).","uniqueKey":"end_date","typeLabel":"string\u003cdate>"}},"required":["evaluator_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"AnalyzeEvaluator":{"title":"AnalyzeEvaluator","value":{"evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06"}},"AnalyzeEvaluatorDateRange":{"title":"AnalyzeEvaluatorDateRange","value":{"evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","start_date":"2026-04-01","end_date":"2026-06-30"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7791467a-5689-4346-94fe-129cd6a7c0b2":{"description":"Analysis generated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"metadata":{"type":"object","description":"Report generation metadata.","properties":{"total_records_analyzed":{"type":"integer","description":"Number of COMPLETED evaluated transcriptions included in the report.","uniqueKey":"data.metadata.total_records_analyzed","typeLabel":"integer"},"query_limit_reached":{"type":"boolean","description":"`true` if results were capped at the maximum query limit (20,000). The report is based on a partial dataset.","uniqueKey":"data.metadata.query_limit_reached","typeLabel":"boolean"},"filtered":{"type":"boolean","description":"`true` when a `start_date` and/or `end_date` filter was applied; `false` when the full history was analysed. Lets a client tell \"this evaluator genuinely has no data\" apart from \"the filter excluded everything\".","uniqueKey":"data.metadata.filtered","typeLabel":"boolean"},"generated_at":{"type":"string","format":"date-time","description":"Timestamp when the report was generated (ISO 8601).","uniqueKey":"data.metadata.generated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.metadata","typeLabel":"object"},"kpis":{"type":"object","description":"Top-level performance indicators.","properties":{"total_calls":{"type":"integer","description":"Total evaluated transcriptions for this evaluator.","uniqueKey":"data.kpis.total_calls","typeLabel":"integer"},"avg_score":{"type":"number","description":"Average evaluation score across all transcriptions (0–100).","uniqueKey":"data.kpis.avg_score","typeLabel":"number"},"pass_rate":{"type":"number","description":"Percentage of transcriptions that passed (score ≥ 50 AND no critical fail).","uniqueKey":"data.kpis.pass_rate","typeLabel":"number"},"total_critical_fails":{"type":"integer","description":"Number of transcriptions with a `strict` criterion failure.","uniqueKey":"data.kpis.total_critical_fails","typeLabel":"integer"},"pending_critical_reviews":{"type":"integer","description":"Critical fails where `group` is `PENDING_REVIEW` or `null` — not yet reviewed.","uniqueKey":"data.kpis.pending_critical_reviews","typeLabel":"integer"}},"uniqueKey":"data.kpis","typeLabel":"object"},"charts":{"type":"object","properties":{"timeline":{"type":"array","description":"Daily aggregated performance data, sorted by date ascending.","items":{"type":"object","properties":{"date":{"type":"string","description":"Date (YYYY-MM-DD).","uniqueKey":"data.charts.timeline.items.[INDEX].date","typeLabel":"string"},"avg_score":{"type":"number","description":"Average evaluation score on this day.","uniqueKey":"data.charts.timeline.items.[INDEX].avg_score","typeLabel":"number"},"volume":{"type":"integer","description":"Number of calls on this day.","uniqueKey":"data.charts.timeline.items.[INDEX].volume","typeLabel":"integer"},"critical_fails":{"type":"integer","description":"Number of critical failures on this day.","uniqueKey":"data.charts.timeline.items.[INDEX].critical_fails","typeLabel":"integer"}},"uniqueKey":"data.charts.timeline.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.charts.timeline","typeLabel":"object[]"},"heatmap":{"type":"object","description":"Average score by day of week and hour of day. Keys are lowercase English day names (`monday`–`sunday`). Values are objects where keys are hour strings (`\"0\"`–`\"23\"`) and values are average scores. Only days/hours with data are included. The grid is built from each transcription's `created_at` — recordings submitted with a **date-only** `period_date` land at hour `\"0\"` (midnight UTC), so send a time with `period_date` if you want an accurate hour axis.","additionalProperties":{"type":"object","additionalProperties":{"type":"number","uniqueKey":"data.charts.heatmap.additionalProperties.additionalProperties","typeLabel":"number"},"uniqueKey":"data.charts.heatmap.additionalProperties","typeLabel":"object"},"uniqueKey":"data.charts.heatmap","typeLabel":"object"}},"uniqueKey":"data.charts","typeLabel":"object"},"participants":{"type":"array","description":"Participant performance ranking sorted by `avg_score` descending. Only participants with at least 1 call are included.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Participant ID.","uniqueKey":"data.participants.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"tag":{"type":"string","description":"Participant label.","uniqueKey":"data.participants.items.[INDEX].tag","typeLabel":"string"},"calls":{"type":"integer","description":"Number of evaluated calls.","uniqueKey":"data.participants.items.[INDEX].calls","typeLabel":"integer"},"avg_score":{"type":"number","description":"Average evaluation score.","uniqueKey":"data.participants.items.[INDEX].avg_score","typeLabel":"number"},"critical_fails":{"type":"integer","description":"Number of critical failures.","uniqueKey":"data.participants.items.[INDEX].critical_fails","typeLabel":"integer"},"critical_fail_rate":{"type":"number","description":"Critical fails as a percentage of total calls.","uniqueKey":"data.participants.items.[INDEX].critical_fail_rate","typeLabel":"number"},"consistency":{"type":"number","description":"Standard deviation of scores — lower means more consistent. `0.0` if only one call.","uniqueKey":"data.participants.items.[INDEX].consistency","typeLabel":"number"},"avg_duration":{"oneOf":[{"type":"integer","description":"Average call duration in seconds.","uniqueKey":"data.participants.items.[INDEX].avg_duration.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Average call duration in seconds.","uniqueKey":"data.participants.items.[INDEX].avg_duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.participants.items.[INDEX].avg_duration","typeLabel":"integer | null"}},"uniqueKey":"data.participants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.participants","typeLabel":"object[]"},"criteria_breakdown":{"type":"array","description":"Per-criterion performance. Contains **every** criterion still existing on the evaluator — including criteria that never failed — sorted by `fail_rate` descending (worst first); entries with no data sort last. Deleted criteria are excluded. Rates are computed over `evaluated_count` (calls where the criterion was actually scored), **not** total calls, so they are always within 0–100. Per-criterion scores are only materialized for transcriptions evaluated after this feature's release — older calls contribute nothing here (no backfill), even though they still count in the global `kpis`. A dashboard can legitimately show `total_calls: 25` alongside a criterion with `evaluated_count: 5`.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Criterion ID.","uniqueKey":"data.criteria_breakdown.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","description":"Criterion name.","uniqueKey":"data.criteria_breakdown.items.[INDEX].name","typeLabel":"string"},"type":{"type":"string","enum":["boolean","scale","strict"],"description":"Criterion type. Needed to interpret `avg_score`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"evaluator_id":{"type":"string","description":"ID of the evaluator that owns this criterion — always the evaluator queried on this endpoint; included for symmetry with `/analytics-participant`, where several evaluators appear. Never `null`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].evaluator_id","typeLabel":"string"},"evaluator_tag":{"type":"string","description":"Name (`tag`) of the owning evaluator. Never `null`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].evaluator_tag","typeLabel":"string"},"evaluated_count":{"type":"integer","description":"Number of analysed calls in which this criterion was actually scored. **This is the denominator** for `fail_rate` and `pass_rate`. `0` means no data in the analysed range — typically calls evaluated before per-criterion scores were materialized.","uniqueKey":"data.criteria_breakdown.items.[INDEX].evaluated_count","typeLabel":"integer"},"fail_count":{"type":"integer","description":"Number of calls where the criterion failed.","uniqueKey":"data.criteria_breakdown.items.[INDEX].fail_count","typeLabel":"integer"},"fail_rate":{"oneOf":[{"type":"number","description":"`fail_count / evaluated_count × 100`. Guaranteed within `[0, 100]`. `null` when `evaluated_count` is `0` — that means **no data, not a perfect score**; rendering it as `0%` would report an unknown as flawless.","uniqueKey":"data.criteria_breakdown.items.[INDEX].fail_rate.oneOf.0","typeLabel":"number"},{"type":"null","description":"`fail_count / evaluated_count × 100`. Guaranteed within `[0, 100]`. `null` when `evaluated_count` is `0` — that means **no data, not a perfect score**; rendering it as `0%` would report an unknown as flawless.","uniqueKey":"data.criteria_breakdown.items.[INDEX].fail_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.criteria_breakdown.items.[INDEX].fail_rate","typeLabel":"number | null"},"pass_count":{"type":"integer","description":"`evaluated_count − fail_count`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].pass_count","typeLabel":"integer"},"pass_rate":{"oneOf":[{"type":"number","description":"`pass_count / evaluated_count × 100`. Complementary to `fail_rate` (they sum to 100). `null` when `evaluated_count` is `0`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].pass_rate.oneOf.0","typeLabel":"number"},{"type":"null","description":"`pass_count / evaluated_count × 100`. Complementary to `fail_rate` (they sum to 100). `null` when `evaluated_count` is `0`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].pass_rate.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.criteria_breakdown.items.[INDEX].pass_rate","typeLabel":"number | null"},"avg_score":{"oneOf":[{"type":"number","description":"Mean score of the criterion over the analysed range, on its **native scale** per `type`: `0.0`–`1.0` compliance rate for `boolean`/`strict` (`0.80` = met in 80% of calls), `1.0`–`5.0` mean rating for `scale`. The two scales cannot share an axis or a comparison — branch on `type`. `null` when `evaluated_count` is `0`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].avg_score.oneOf.0","typeLabel":"number"},{"type":"null","description":"Mean score of the criterion over the analysed range, on its **native scale** per `type`: `0.0`–`1.0` compliance rate for `boolean`/`strict` (`0.80` = met in 80% of calls), `1.0`–`5.0` mean rating for `scale`. The two scales cannot share an axis or a comparison — branch on `type`. `null` when `evaluated_count` is `0`.","uniqueKey":"data.criteria_breakdown.items.[INDEX].avg_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.criteria_breakdown.items.[INDEX].avg_score","typeLabel":"number | null"}},"uniqueKey":"data.criteria_breakdown.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.criteria_breakdown","typeLabel":"object[]"},"criteria_evolution":{"type":"object","description":"Per-criterion monthly score time series. **An object keyed by criterion ID, not an array** — unlike every other collection in this response. Sparse by design: only criteria with scored data in the analysed range appear, and only months with data appear in `periods` (no zero-filled gaps). Months are derived from each transcription's `created_at` — i.e. from `period_date` when set at upload — and respect `start_date`/`end_date`. `{}` when no analysed transcription has materialized per-criterion scores, which is expected when all calls were evaluated before this feature's release (no backfill).","additionalProperties":{"type":"object","properties":{"name":{"type":"string","description":"Criterion name.","uniqueKey":"data.criteria_evolution.additionalProperties.name","typeLabel":"string"},"type":{"type":"string","enum":["boolean","scale","strict"],"description":"Criterion type. Determines the `avg_score` scale.","uniqueKey":"data.criteria_evolution.additionalProperties.type","typeLabel":"enum\u003cstring>"},"evaluator_id":{"type":"string","description":"ID of the evaluator that owns this criterion.","uniqueKey":"data.criteria_evolution.additionalProperties.evaluator_id","typeLabel":"string"},"evaluator_tag":{"type":"string","description":"Name of the owning evaluator.","uniqueKey":"data.criteria_evolution.additionalProperties.evaluator_tag","typeLabel":"string"},"periods":{"type":"array","description":"Monthly time series, already sorted chronologically ascending. Monthly granularity only — there is no `granularity` parameter; group months client-side for a quarterly view.","items":{"type":"object","properties":{"period":{"type":"string","description":"The month, always `YYYY-MM`.","uniqueKey":"data.criteria_evolution.additionalProperties.periods.items.[INDEX].period","typeLabel":"string"},"avg_score":{"type":"number","description":"Mean score for this criterion in this month, on its native scale per `type`: `0.0`–`1.0` for `boolean`/`strict`, `1.0`–`5.0` for `scale`.","uniqueKey":"data.criteria_evolution.additionalProperties.periods.items.[INDEX].avg_score","typeLabel":"number"},"count":{"type":"integer","description":"Number of calls scored for this criterion in this month.","uniqueKey":"data.criteria_evolution.additionalProperties.periods.items.[INDEX].count","typeLabel":"integer"}},"uniqueKey":"data.criteria_evolution.additionalProperties.periods.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.criteria_evolution.additionalProperties.periods","typeLabel":"object[]"}},"uniqueKey":"data.criteria_evolution.additionalProperties","typeLabel":"object"},"uniqueKey":"data.criteria_evolution","typeLabel":"object"},"score_distribution":{"type":"object","description":"Fixed-bin histogram of evaluation scores.","properties":{"0-20":{"type":"integer","uniqueKey":"data.score_distribution.0-20","typeLabel":"integer"},"21-40":{"type":"integer","uniqueKey":"data.score_distribution.21-40","typeLabel":"integer"},"41-60":{"type":"integer","uniqueKey":"data.score_distribution.41-60","typeLabel":"integer"},"61-80":{"type":"integer","uniqueKey":"data.score_distribution.61-80","typeLabel":"integer"},"81-100":{"type":"integer","uniqueKey":"data.score_distribution.81-100","typeLabel":"integer"}},"uniqueKey":"data.score_distribution","typeLabel":"object"},"comparison":{"type":"object","description":"Month-over-month comparison (current calendar month vs. previous).","properties":{"current_period":{"type":"object","properties":{"calls":{"type":"integer","uniqueKey":"data.comparison.current_period.calls","typeLabel":"integer"},"avg_score":{"type":"number","uniqueKey":"data.comparison.current_period.avg_score","typeLabel":"number"},"pass_rate":{"type":"number","uniqueKey":"data.comparison.current_period.pass_rate","typeLabel":"number"}},"uniqueKey":"data.comparison.current_period","typeLabel":"object"},"previous_period":{"type":"object","properties":{"calls":{"type":"integer","uniqueKey":"data.comparison.previous_period.calls","typeLabel":"integer"},"avg_score":{"type":"number","uniqueKey":"data.comparison.previous_period.avg_score","typeLabel":"number"},"pass_rate":{"type":"number","uniqueKey":"data.comparison.previous_period.pass_rate","typeLabel":"number"}},"uniqueKey":"data.comparison.previous_period","typeLabel":"object"},"delta":{"type":"object","description":"Score and pass-rate change vs. previous period. Empty `{}` when either period has no data.","properties":{"avg_score":{"type":"number","uniqueKey":"data.comparison.delta.avg_score","typeLabel":"number"},"pass_rate":{"type":"number","uniqueKey":"data.comparison.delta.pass_rate","typeLabel":"number"}},"uniqueKey":"data.comparison.delta","typeLabel":"object"}},"uniqueKey":"data.comparison","typeLabel":"object"},"duration_insights":{"type":"object","description":"Score analysis segmented by call duration using dynamic P25/P75 percentile thresholds.","properties":{"thresholds":{"type":"object","properties":{"p25":{"type":"number","description":"25th percentile duration in seconds (short/medium boundary).","uniqueKey":"data.duration_insights.thresholds.p25","typeLabel":"number"},"p75":{"type":"number","description":"75th percentile duration in seconds (medium/long boundary).","uniqueKey":"data.duration_insights.thresholds.p75","typeLabel":"number"}},"uniqueKey":"data.duration_insights.thresholds","typeLabel":"object"},"short":{"type":"object","description":"Calls at or below P25.","properties":{"count":{"type":"integer","uniqueKey":"data.duration_insights.short.count","typeLabel":"integer"},"avg_score":{"type":"number","uniqueKey":"data.duration_insights.short.avg_score","typeLabel":"number"}},"uniqueKey":"data.duration_insights.short","typeLabel":"object"},"medium":{"type":"object","description":"Calls between P25 and P75.","properties":{"count":{"type":"integer","uniqueKey":"data.duration_insights.medium.count","typeLabel":"integer"},"avg_score":{"type":"number","uniqueKey":"data.duration_insights.medium.avg_score","typeLabel":"number"}},"uniqueKey":"data.duration_insights.medium","typeLabel":"object"},"long":{"type":"object","description":"Calls at or above P75.","properties":{"count":{"type":"integer","uniqueKey":"data.duration_insights.long.count","typeLabel":"integer"},"avg_score":{"type":"number","uniqueKey":"data.duration_insights.long.avg_score","typeLabel":"number"}},"uniqueKey":"data.duration_insights.long","typeLabel":"object"}},"uniqueKey":"data.duration_insights","typeLabel":"object"},"raw_data":{"type":"array","description":"Full list of individual transcription records included in this report.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Transcription ID.","uniqueKey":"data.raw_data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"date":{"type":"string","format":"date-time","description":"Transcription creation date (ISO 8601).","uniqueKey":"data.raw_data.items.[INDEX].date","typeLabel":"string\u003cdate-time>"},"score":{"type":"number","description":"Evaluation score (0–100).","uniqueKey":"data.raw_data.items.[INDEX].score","typeLabel":"number"},"critical":{"type":"boolean","description":"`true` if a `strict` criterion failed.","uniqueKey":"data.raw_data.items.[INDEX].critical","typeLabel":"boolean"},"duration":{"oneOf":[{"type":"integer","description":"Audio duration in seconds.","uniqueKey":"data.raw_data.items.[INDEX].duration.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Audio duration in seconds.","uniqueKey":"data.raw_data.items.[INDEX].duration.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.raw_data.items.[INDEX].duration","typeLabel":"integer | null"},"participant_tag":{"oneOf":[{"type":"string","description":"Participant label, if a participant was linked to this transcription.","uniqueKey":"data.raw_data.items.[INDEX].participant_tag.oneOf.0","typeLabel":"string"},{"type":"null","description":"Participant label, if a participant was linked to this transcription.","uniqueKey":"data.raw_data.items.[INDEX].participant_tag.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.raw_data.items.[INDEX].participant_tag","typeLabel":"string | null"},"participant_id":{"oneOf":[{"type":"string","format":"uuid","description":"Participant ID, if linked.","uniqueKey":"data.raw_data.items.[INDEX].participant_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","format":"uuid","description":"Participant ID, if linked.","uniqueKey":"data.raw_data.items.[INDEX].participant_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.raw_data.items.[INDEX].participant_id","typeLabel":"string\u003cuuid> | null"},"group":{"oneOf":[{"type":"string","description":"Lifecycle group (`PENDING_REVIEW`, `UNDER_REVIEW`, `ARCHIVED`, or `null`). See [Transcription — group](/core/transcription#group).","uniqueKey":"data.raw_data.items.[INDEX].group.oneOf.0","typeLabel":"string"},{"type":"null","description":"Lifecycle group (`PENDING_REVIEW`, `UNDER_REVIEW`, `ARCHIVED`, or `null`). See [Transcription — group](/core/transcription#group).","uniqueKey":"data.raw_data.items.[INDEX].group.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.raw_data.items.[INDEX].group","typeLabel":"string | null"},"status":{"type":"string","description":"Transcription status. Always `COMPLETED` in this context.","uniqueKey":"data.raw_data.items.[INDEX].status","typeLabel":"string"},"failed_criteria":{"type":"array","items":{"type":"string","uniqueKey":"data.raw_data.items.[INDEX].failed_criteria.items.[INDEX]","typeLabel":"string"},"description":"Names of criteria that failed in this transcription.","uniqueKey":"data.raw_data.items.[INDEX].failed_criteria","typeLabel":"string[]"}},"uniqueKey":"data.raw_data.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.raw_data","typeLabel":"object[]"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Success":{"title":"Success","value":{"data":{"metadata":{"total_records_analyzed":6,"query_limit_reached":false,"filtered":false,"generated_at":"2026-03-22T01:08:17.482723"},"kpis":{"total_calls":6,"avg_score":53.1,"pass_rate":83.3,"total_critical_fails":0,"pending_critical_reviews":0},"charts":{"timeline":[{"date":"2026-03-07","avg_score":53.3,"volume":3,"critical_fails":0},{"date":"2026-03-12","avg_score":52.8,"volume":1,"critical_fails":0}],"heatmap":{"saturday":{"12":52.8,"22":53.3},"thursday":{"20":52.8}}},"participants":[{"id":"580cc0e1-3a60-49d9-8e20-1745252f0aae","tag":"Pedro Borrado","calls":4,"avg_score":53.2,"critical_fails":0,"critical_fail_rate":0,"consistency":13.13,"avg_duration":587}],"criteria_breakdown":[{"id":"2faa4a20-7445-4beb-a09e-2af26872dba3","name":"Saludo Corporativo inicial2","type":"boolean","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","evaluated_count":6,"fail_count":6,"fail_rate":100,"pass_count":0,"pass_rate":0,"avg_score":0},{"id":"5718a64e-43e6-4959-90a6-19946b44249c","name":"Escucha Activa","type":"scale","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","evaluated_count":6,"fail_count":2,"fail_rate":33.3,"pass_count":4,"pass_rate":66.7,"avg_score":3.5},{"id":"58f6bc79-3eda-4e67-b762-52466145850a","name":"cierre de inversion","type":"strict","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","evaluated_count":6,"fail_count":0,"fail_rate":0,"pass_count":6,"pass_rate":100,"avg_score":1},{"id":"d34172c8-6bf7-486e-aced-d35dc8c2c283","name":"Manejo de Objeciones","type":"scale","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","evaluated_count":0,"fail_count":0,"fail_rate":null,"pass_count":0,"pass_rate":null,"avg_score":null}],"criteria_evolution":{"2faa4a20-7445-4beb-a09e-2af26872dba3":{"name":"Saludo Corporativo inicial2","type":"boolean","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","periods":[{"period":"2026-03","avg_score":0,"count":6}]},"5718a64e-43e6-4959-90a6-19946b44249c":{"name":"Escucha Activa","type":"scale","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","periods":[{"period":"2026-03","avg_score":3.5,"count":6}]},"58f6bc79-3eda-4e67-b762-52466145850a":{"name":"cierre de inversion","type":"strict","evaluator_id":"2abb5563-dd64-47bb-bb17-94252e168b06","evaluator_tag":"pitch temporal","periods":[{"period":"2026-03","avg_score":1,"count":6}]}},"score_distribution":{"0-20":0,"21-40":1,"41-60":4,"61-80":1,"81-100":0},"comparison":{"current_period":{"calls":6,"avg_score":53.1,"pass_rate":83.3},"previous_period":{"calls":0,"avg_score":0,"pass_rate":0},"delta":{}},"duration_insights":{"thresholds":{"p25":543,"p75":602},"short":{"count":3,"avg_score":52.8},"medium":{"count":1,"avg_score":65},"long":{"count":2,"avg_score":47.5}},"raw_data":[{"id":"e927a34c-8f2f-4045-8a15-c0f7a182bab2","date":"2026-03-12T20:33:14.145386+00:00","score":52.8,"critical":false,"duration":542,"participant_tag":"Pedro Borrado","participant_id":"580cc0e1-3a60-49d9-8e20-1745252f0aae","group":null,"status":"COMPLETED","failed_criteria":["Saludo Corporativo inicial2"]},{"id":"67ff08bf-c1e5-441d-a8ba-c9909254ed1d","date":"2026-03-07T22:54:33.882702+00:00","score":65,"critical":false,"duration":578,"participant_tag":"Pedro Borrado","participant_id":"580cc0e1-3a60-49d9-8e20-1745252f0aae","group":null,"status":"COMPLETED","failed_criteria":["Saludo Corporativo inicial2"]}]}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a1ae920a-335b-4948-b966-ac8fbfada121":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]}}},"servers":{"ad9f95e4-60ad-4a56-a6c4-5b363f271d09":{"url":"https://api.heify.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","scopes":[]},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKeyAuth","name":"x-api-key"}],"title":"apiKeyAuth"}]},"originalFileLocation":"api-reference/openapi-evaluators.json"},"subdomain":"heify","siteName":"Heify Docs","title":"Evaluator Analysis - Heify Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-16T09:23:59.559Z","originalFileLocation":"api-reference/evaluator/analytics.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Generate a performance dashboard for a specific evaluator across all its evaluations.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Heify Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_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/heify/L0uPIXNiZtcgAM5I/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Evaluator Analysis - Heify Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Generate a performance dashboard for a specific evaluator across all its evaluations.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Heify Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.heify.com/api-reference/evaluator/analytics\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://heify.mintlify.app/_mintlify/api/og/v2?division=Evaluators\u0026amp;title=Evaluator+Analysis\u0026amp;description=Generate+a+performance+dashboard+for+a+specific+evaluator+across+all+its+evaluations.\u0026amp;theme=10435d334a6726ab229dc0b4\u0026amp;signature=6558720d550c31bf11e64b66897afaa7641aff2c7762e252cfdc5d6215867167\">\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=\"Evaluator Analysis - Heify Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Generate a performance dashboard for a specific evaluator across all its evaluations.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://heify.mintlify.app/_mintlify/api/og/v2?division=Evaluators\u0026amp;title=Evaluator+Analysis\u0026amp;description=Generate+a+performance+dashboard+for+a+specific+evaluator+across+all+its+evaluations.\u0026amp;theme=10435d334a6726ab229dc0b4\u0026amp;signature=6558720d550c31bf11e64b66897afaa7641aff2c7762e252cfdc5d6215867167\">\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/heify/L0uPIXNiZtcgAM5I/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Heify Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3B82F6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.heify.com/api-reference/evaluator/analytics\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/evaluator/analytics.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.heify.com/#organization\",\"name\":\"Heify Docs\",\"url\":\"https://docs.heify.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/heify/8fipfniSVMLrex-g/logo/light.svg?fit=max\u0026auto=format\u0026n=8fipfniSVMLrex-g\u0026q=85\u0026s=3239fc52dcd6309d024795459614038d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.heify.com#website\",\"name\":\"Heify Docs\",\"url\":\"https://docs.heify.com\",\"publisher\":{\"@id\":\"https://docs.heify.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.heify.com/api-reference/evaluator/analytics#webpage\",\"url\":\"https://docs.heify.com/api-reference/evaluator/analytics\",\"name\":\"Evaluator Analysis\",\"description\":\"Generate a performance dashboard for a specific evaluator across all its evaluations.\",\"dateModified\":\"2026-07-16T09:23:59.559Z\",\"isPartOf\":{\"@id\":\"https://docs.heify.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.heify.com/api-reference/evaluator/analytics#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.heify.com/api-reference/evaluator/analytics#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Evaluators\",\"item\":\"https://docs.heify.com/api-reference/evaluator/create\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Evaluator Analysis\",\"item\":\"https://docs.heify.com/api-reference/evaluator/analytics\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.heify.com/api-reference/evaluator/analytics#apireference\",\"headline\":\"Evaluator Analysis\",\"name\":\"Evaluator Analysis\",\"description\":\"Generate a performance dashboard for a specific evaluator across all its evaluations.\",\"url\":\"https://docs.heify.com/api-reference/evaluator/analytics\",\"mainEntityOfPage\":{\"@id\":\"https://docs.heify.com/api-reference/evaluator/analytics#webpage\"},\"dateModified\":\"2026-07-16T09:23:59.559Z\",\"publisher\":{\"@id\":\"https://docs.heify.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.heify.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Heify Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Heify Docs","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"chart-line","href":"https://sandbox.heify.com"},{"anchor":"Support","icon":"headset","href":"https://www.heify.com/contact.html"}]},"tabs":[{"tab":"Documentation","icon":"book","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Configurations","icon":"gear","pages":[{"title":"Create Configuration","openapi":"api-reference/openapi-configurations.json POST /create-configuration","href":"/api-reference/configuration/create"},{"title":"Get Configuration","openapi":"api-reference/openapi-configurations.json POST /get-configuration","href":"/api-reference/configuration/get"},{"title":"List Configurations","openapi":"api-reference/openapi-configurations.json POST /list-configurations","href":"/api-reference/configuration/list"},{"title":"Update Configuration","openapi":"api-reference/openapi-configurations.json POST /update-configuration","href":"/api-reference/configuration/update"},{"title":"Delete Configuration","openapi":"api-reference/openapi-configurations.json POST /delete-configuration","href":"/api-reference/configuration/delete"},{"title":"Configuration Analysis","openapi":"api-reference/openapi-configurations.json POST /analytics","href":"/api-reference/configuration/analytics"}]},{"group":"Evaluators","icon":"clipboard-check","pages":[{"title":"Create Evaluator","openapi":"api-reference/openapi-evaluators.json POST /create-evaluator","href":"/api-reference/evaluator/create"},{"title":"Get Evaluator","openapi":"api-reference/openapi-evaluators.json POST /get-evaluator","href":"/api-reference/evaluator/get"},{"title":"List Evaluators","openapi":"api-reference/openapi-evaluators.json POST /list-evaluators","href":"/api-reference/evaluator/list"},{"title":"Update Evaluator","openapi":"api-reference/openapi-evaluators.json POST /update-evaluator","href":"/api-reference/evaluator/update"},{"title":"Delete Evaluator","description":"Permanently delete an evaluator and all its criteria.","openapi":"api-reference/openapi-evaluators.json POST /delete-evaluator","href":"/api-reference/evaluator/delete"},{"title":"Evaluator Analysis","openapi":"api-reference/openapi-evaluators.json POST /analytics-evaluator","href":"/api-reference/evaluator/analytics"}]},{"group":"Participants","icon":"user","pages":[{"title":"Create Participant","description":"Create a new participant profile to track a person across transcriptions — a support agent, salesperson, trainee, or any individual.","openapi":"api-reference/openapi-participants.json POST /create-participant","href":"/api-reference/participant/create"},{"title":"List Participants","openapi":"api-reference/openapi-participants.json POST /list-participants","href":"/api-reference/participant/list"},{"title":"Update Participant","openapi":"api-reference/openapi-participants.json POST /update-participant","href":"/api-reference/participant/update"},{"title":"Delete Participant","openapi":"api-reference/openapi-participants.json POST /delete-participant","href":"/api-reference/participant/delete"},{"title":"Participant Analysis","openapi":"api-reference/openapi-participants.json POST /analytics-participant","href":"/api-reference/participant/analytics"}]},{"group":"Transcriptions","icon":"microphone","pages":[{"title":"Submit from public URL","openapi":"api-reference/openapi-transcriptions.json POST /submit","href":"/api-reference/transcription/submit"},{"title":"Submit from local file","openapi":"api-reference/openapi-transcriptions.json POST /request-upload-url","href":"/api-reference/transcription/request-upload-url"},{"title":"Get Transcription","openapi":"api-reference/openapi-transcriptions.json POST /get-transcription","href":"/api-reference/transcription/details"},{"title":"List Transcriptions","openapi":"api-reference/openapi-transcriptions.json POST /list-transcriptions","href":"/api-reference/transcription/list"},{"title":"Update Transcription Group","openapi":"api-reference/openapi-transcriptions.json POST /update-transcription-group","href":"/api-reference/transcription/update-group"},{"title":"Delete Transcription","openapi":"api-reference/openapi-transcriptions.json POST /delete-transcription","href":"/api-reference/transcription/delete"}]}]},{"tab":"Sandbox","icon":"flask","pages":[{"title":"Sandbox","href":"/sandbox"}]},{"tab":"Recorder","icon":"circle-dot","pages":[{"title":"Recorder","href":"/recorder"}]}]},"basePath":"","title":"Evaluator Analysis - Heify Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}