Override a scorecard item
import MoreVoice from "@morevoice/sdk";
const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment
const scorecard = await mv.qa.overrideScorecardItem("call_7Hk2Lm9Qp", "item_key_123", { note: "Also asked about the decision maker.", score: 4,});console.log(scorecard);from morevoice import MoreVoice
client = MoreVoice() # MOREVOICE_API_KEY from the environment
scorecard = client.qa.override_scorecard_item("call_7Hk2Lm9Qp", "item_key_123", { "note": "Also asked about the decision maker.", "score": 4,})print(scorecard)curl -X PATCH https://api.morevoice.ai/v1/calls/call_7Hk2Lm9Qp/scorecard/items/item_key_123 \ -H "Authorization: Bearer $MOREVOICE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "note": "Also asked about the decision maker.", "score": 4}'Sets one rubric item’s score (0–5, or null for not applicable) as a supervisor would, or removes the override with clear: true. The call’s score and pass are recomputed; the change is in the scorecard’s history.
Try it in the API playground with a test-mode key.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”A call ID (call_…).
The rubric item’s key.
Header Parameters
Section titled “Header Parameters”The API version to use for this request. Defaults to the version the API key is pinned to.
Example
2026-11-01Request Body
Section titled “Request Body”A supervisor override of one item’s score. The call’s score is recomputed.
object
Example
{ "note": "Also asked about the decision maker.", "score": 4}Responses
Section titled “Responses”OK
A call’s post-call QA scorecard: the rubric’s items scored with verified evidence, compliance, disposition and coaching.
object
A call ID (prefix call_).
object
What to say instead.
An ISO-8601 timestamp in UTC.
Keys of the critical items that failed the call.
The scorecard’s ID (one per call).
One per rubric item.
object
The rubric item’s key.
0–5 as the model scored it.
0–5 (null: not applicable), after any override.
Relative importance on the 0–100 scale.
true in live mode, false in test mode.
0–100 as the model scored it.
object
0–100 after supervisor overrides (null: nothing applicable).
skipped: too short to score (error says why); error: scoring failed.
An ISO-8601 timestamp in UTC.
Example
{ "call_id": "call_5Fh7Jk9Lm1Np3Qr5St7Vx9", "coaching": [ { "better": "Who else decides on this?", "tip": "Confirm the budget owner" } ], "compliance": { "issues": [], "verdict": "pass" }, "copilot_profile_id": null, "created": "2026-11-03T09:16:40.000Z", "critical_failed": [], "customer_sentiment": "positive", "disposition": "appointment", "error": null, "id": "qa_5Fh7Jk9Lm1Np3Qr5St7Vx9", "items": [ { "critical": false, "evidence": [ { "line": 7, "offset_ms": 41200, "quote": "What do you pay today?", "speaker": "agent" } ], "key": "discovery", "label": "Discovery", "model_score": 3, "override": { "at": "2026-11-03T10:02:00.000Z", "by": "Dana Levi", "note": "Also asked about the decision maker.", "score": 4 }, "reasoning": "Asked about the current provider and the budget before the offer.", "score": 4, "weight": 40 } ], "livemode": true, "model": "gpt-4.1", "model_score": 77.5, "next_steps": [ "Send the demo invite" ], "object": "scorecard", "objections": [ { "agent_response": "Compared it with today's costs.", "handled": true, "text": "It sounds expensive" } ], "pass_threshold": 70, "passed": true, "rubric_source": "default", "score": 82.5, "status": "done", "strengths": [ "Clear opening" ], "summary": "The customer agreed to a demo on Monday.", "updated": "2026-11-03T10:02:00.000Z"}The request is invalid: a parameter is missing, malformed or unknown, or the version header is unknown.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "parameter_missing", "doc_url": "https://docs.morevoice.ai/api/errors#parameter-missing", "message": "Missing required parameter: to.", "param": "to", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "invalid_request_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
No valid API key was sent.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "invalid_api_key", "doc_url": "https://docs.morevoice.ai/api/errors#invalid-api-key", "message": "Invalid API key.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "authentication_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
The key may not do this (a missing scope, a plan limit, or a compliance block).
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "missing_scope", "doc_url": "https://docs.morevoice.ai/api/errors#missing-scope", "message": "This API key lacks the calls:write scope.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "permission_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
No object with this ID exists in this organisation and mode.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "resource_missing", "doc_url": "https://docs.morevoice.ai/api/errors#resource-missing", "message": "No such object: 'call_4Gk2'.", "param": "id", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "not_found" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.
Too many requests, or no call capacity right now. Retry after the Retry-After delay.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "rate_limited", "doc_url": "https://docs.morevoice.ai/api/errors#rate-limited", "message": "Too many requests. Retry after 1 second.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "rate_limit_error" }}Headers
Section titled “Headers”Seconds to wait before retrying.
The request’s ID (req_…). Quote it when you contact support.
Something went wrong on MoreVoice’s side. Retry with the same Idempotency-Key.
Every /v1 error.
object
object
A stable, machine-readable code from the error-code catalogue.
Structured context, e.g. required_scope or the compliance verdict.
object
A link to the documentation of this code.
A human-readable explanation. Do not parse it.
The request parameter the error relates to, e.g. to or metadata[order_id].
The X-Request-Id of this request. Quote it when you contact support.
The category of the error.
Example
{ "error": { "code": "internal_error", "doc_url": "https://docs.morevoice.ai/api/errors#internal-error", "message": "Something went wrong on MoreVoice's side.", "request_id": "req_7Hk2LmN9pQ4rS6tV8wX0yZ", "type": "api_error" }}Headers
Section titled “Headers”The request’s ID (req_…). Quote it when you contact support.